Angular

https://github.com/angular/angular

16.2.0-next.1 (2023-06-28)

benchpress

Commit Description
fix - dd850b2ab7 correctly report GC memory amounts (#50760)

core

Commit Description
fix - 29340a0678 expose input transform function on ComponentFactory and ComponentMirror (#50713)

elements

Commit Description
fix - d64864e95e support input transform functions (#50713)

platform-browser

Commit Description
fix - 2b55103e94 wait until animation completion before destroying renderer (#50677)
fix - 0380564f85 wait until animation completion before destroying renderer (#50860)

16.1.3 (2023-06-28)

core

Commit Description
fix - dd6fc5785f expose input transform function on ComponentFactory and ComponentMirror (#50713)

elements

Commit Description
fix - e1bbe47c23 support input transform functions (#50713)

platform-browser

Commit Description
fix - 79dd6a847a wait until animation completion before destroying renderer (#50677)
fix - a797f41d1b wait until animation completion before destroying renderer (#50860)

16.2.0-next.0 (2023-06-21)

compiler-cli

Commit Description
fix - 12bad6576d libraries compiled with v16.1+ breaking with Angular framework v16.0.x (#50714)

router

Commit Description
feat - 0b14e4ef74 exposes the fixture of the RouterTestingHarness (#50280)

16.1.2 (2023-06-21)

http

Commit Description
fix - 9488a3fd46 Send query params on fetch request (#50740)
fix - 5ae001829c use serializeBody to support JSON payload in FetchBackend (#50776)

16.1.1 (2023-06-14)

compiler-cli

Commit Description
fix - 71360b3a3e libraries compiled with v16.1+ breaking with Angular framework v16.0.x (#50715)

core

Commit Description
fix - d9bed48eb5 extend toSignal to accept any Subscribable (#50162)

migrations

Commit Description
fix - 5e1d8444ae Prevent a component from importing itself. (#50554)

16.1.0 (2023-06-13)

compiler

Commit Description
fix - 4e663297c5 error when reading compiled input transforms metadata in JIT mode (#50600)
fix - 721bc72649 resolve deprecation warning with TypeScript 5.1 (#50460)

core

Commit Description
feat - 68017d4e75 add ability to transform input values (#50420)
feat - 69dadd2502 support TypeScript 5.1 (#50156)
fix - c0ebe34cbd add additional component metadata to component ID generation (#50336)

http

Commit Description
feat - 85c5427582 Introduction of the fetch Backend for the HttpClient (#50247)

16.0.6 (2023-06-13)

core

Commit Description
fix - 05ac0868c9 avoid duplicated content during hydration while processing a component with i18n (#50644)

16.1.0-rc.0 (2023-06-08)

compiler

Commit Description
fix - 540e643347 do not remove comments in component styles (#50346)
fix - 4e663297c5 error when reading compiled input transforms metadata in JIT mode (#50600)

core

Commit Description
fix - 79a706c847 incorrectly throwing error for self-referencing component (#50559)
fix - edceb486dd wait for HTTP in ngOnInit correctly before server render (#50573)

http

Commit Description
feat - 85c5427582 Introduction of the fetch Backend for the HttpClient (#50247)

platform-server

Commit Description
fix - 0875b519b9 surface errors during rendering (#50587)

16.0.5 (2023-06-08)

compiler

Commit Description
fix - 703b8fcac1 do not remove comments in component styles (#50346)

core

Commit Description
fix - 2b6da93e19 incorrectly throwing error for self-referencing component (#50559)
fix - c992109d6c wait for HTTP in ngOnInit correctly before server render (#50573)

platform-server

Commit Description
fix - c0d4086c6e surface errors during rendering (#50587)

16.1.0-next.3 (2023-06-01)

animations

Commit Description
fix - bada9199f5 Trigger leave animation when ViewContainerRef is injected (#48705)

common

Commit Description
fix - 72b4ff4b9e untrack subscription and unsubscription in async pipe (#50522)

compiler

Commit Description
fix - 721bc72649 resolve deprecation warning with TypeScript 5.1 (#50460)

core

Commit Description
feat - 68017d4e75 add ability to transform input values (#50420)
fix - 28c68f709c update ApplicationRef.isStable to account for rendering pending tasks (#50425)

16.0.4 (2023-06-01)

animations

Commit Description
fix - df65c4fc8f Trigger leave animation when ViewContainerRef is injected (#48705)

common

Commit Description
fix - 7e1bc513de untrack subscription and unsubscription in async pipe (#50522)

core

Commit Description
fix - 9970b29ace update ApplicationRef.isStable to account for rendering pending tasks (#50425)

16.1.0-next.2 (2023-05-24)

core

Commit Description
fix - 75fdbcb8f2 fix Self flag inside embedded views with custom injectors (#50270)
fix - 8b44ba3170 host directives incorrectly validating aliased bindings (#50364)

http

Commit Description
fix - 2cdb4c5911 create macrotask during request handling instead of load start (#50406)

16.0.3 (2023-05-24)

core

Commit Description
fix - c11041e372 adds missing symbols for animation standalone bundling test (#50434)
fix - 98e8fdf40e fix Self flag inside embedded views with custom injectors (#50270)
fix - 199ff4fe7f host directives incorrectly validating aliased bindings (#50364)

http

Commit Description
fix - 080bbd2137 create macrotask during request handling instead of load start (#50406)

16.1.0-next.1 (2023-05-17)

core

Commit Description
fix - c0ebe34cbd add additional component metadata to component ID generation (#50336)
fix - 03f1e240b3 allow onDestroy unregistration while destroying (#50237)
fix - 165b8b647c allow passing value of any type to isSignal function (#50035)

16.0.2 (2023-05-17)

core

Commit Description
fix - c1016d4e57 add additional component metadata to component ID generation (#50340)
fix - cc41758b59 allow onDestroy unregistration while destroying (#50237)
fix - 7d679bdb59 allow passing value of any type to isSignal function (#50035)

16.1.0-next.0 (2023-05-10)

core

Commit Description
feat - 69dadd2502 support TypeScript 5.1 (#50156)

16.0.1 (2023-05-10)

core

Commit Description
fix - 52c74d3b4a add additional component metadata to component ID generation (#50203)
fix - 048b6b1e0d bootstrapApplication call not rejected when error is thrown in importProvidersFrom module (#50120)
fix - d68796782f handle hydration of root components with injected ViewContainerRef (#50136)
fix - f751ce6445 handle projection of hydrated containters into components that skip hydration (#50199)
fix - 346ab73dd9 only try to retrieve transferred state on the browser (#50144)

16.0.0 (2023-05-03)

Commit Description
refactor - 48aa96ea13 remove Angular Compatibility Compiler (ngcc) (#49101)
refactor - 2703fd6260 remove deprecated EventManager method addGlobalEventListener (#49645)

common

Commit Description
feat - 5dce2a5a3a Provide MockPlatformLocation by default in BrowserTestingModule (#49137)
fix - d47fef72cb strict type checking for ngtemplateoutlet (#48374)
refactor - c41a21658c remove deprecated XhrFactory export from http entrypoint (#49251)

compiler

Commit Description
feat - 1a6ca68154 add support for compile-time required inputs (#49304)
feat - 13dd614cd1 add support for compile-time required inputs (#49453)
feat - 8f539c11f4 add support for compile-time required inputs (#49468)
feat - 79cdfeb392 drop support for TypeScript 4.8 (#49155)
feat - 1407a9aeaf support multiple configuration files in extends (#49125)
fix - 9de1e9da8f incorrectly matching directives on attribute bindings (#49713)
fix - 6623810e4d Produce diagnositc if directive used in host binding is not exported (#49527)

compiler-cli

Commit Description
feat - 03d1d00ad9 Add an extended diagnostic for nSkipHydration (#49512)
fix - ed817e32fe Catch FatalDiagnosticError during template type checking (#49527)
perf - 49fe974501 optimize NgModule emit for standalone components (#49837)

core

Commit Description
feat - 89d291c367 add assertInInjectionContext (#49529)
feat - 4e9531f777 add mergeApplicationConfig method (#49253)
feat - d7d6514add Add ability to configure NgZone in bootstrapApplication (#49557)
feat - bc5ddabdcb add Angular Signals to the public API (#49150)
feat - 17e9862653 add API to provide CSP nonce for inline stylesheets (#49444)
feat - 605c536420 add migration to remove moduleId references (#49496)
feat - 99d874fe3b add support for TypeScript 5.0 (#49126)
feat - d1617c449d allow removal of previously registered DestroyRef callbacks (#49493)
feat - b2327f4df1 Allow typeguards on QueryList.filter (#48042)
feat - 061f3d1086 Drop public factories property for IterableDiffers : Breaking change (#49598)
feat - fdf61974d1 drop support for zone.js versions <=0.12.0 (#49331)
feat - 9c5fd50de4 effects can optionally return a cleanup function (#49625)
feat - c024574f46 expose makeStateKey, StateKey and TransferState (#49563)
feat - a5f1737d1c expose onDestroy on ApplicationRef (#49677)
feat - e883198460 implement takeUntilDestroyed in rxjs-interop (#49154)
feat - 0814f20594 introduce runInInjectionContext and deprecate prior version (#49396)
feat - 0f5c8003cc introduce concept of DestroyRef (#49158)
feat - 9b65b84cb9 Mark components for check if they read a signal (#49153)
feat - 8997bdc03b prototype implementation of @angular/core/rxjs-interop (#49154)
feat - 585e34bf6c remove entryComponents (#49484)
feat - aad05ebeb4 support usage of non-experimental decorators with TypeScript 5.0 (#49492)
fix - 6d7be42da7 add newline to hydration mismatch error (#49965)
fix - f8e25864e8 allow async functions in effects (#49783)
fix - 84216dabfc catch errors from source signals outside of .next (#49769)
fix - be23b7ce65 ComponentRef.setInput only sets input when not equal to previous (#49607)
fix - 316c91b1a4 deprecate moduleId @Component property (#49496)
fix - fd9dcd36cd Ensure effects can be created when Zone is not defined (#49890)
fix - 9180f98f0e ensure takeUntilDestroyed unregisters onDestroy listener on unsubscribe (#49901)
fix - 4721c48a24 error if document body is null (#49818)
fix - 2650f1afc1 execute input setters in non-reactive context (#49906)
fix - f8b95b9da6 execute query setters in non-reactive context (#49906)
fix - ef91a2e0fe execute template creation in non-reactive context (#49883)
fix - 87549af73c Fix capitalization of toObservableOptions (#49832)
fix - 0e5f9ba6f4 generate consistent component IDs (#48253)
fix - fedc75624c include inner ViewContainerRef anchor nodes into ViewRef.rootNodes output (#49867)
fix - df1dfc4c17 make sure that lifecycle hooks are not tracked (#49701)
fix - c34d7e0822 onDestroy should be registered only on valid DestroyRef (#49804)
fix - 2f2ef14f9e resolve InitialRenderPendingTasks promise on complete (#49784)
fix - c7d8d3ee37 toObservable should allow writes to signals in the effect (#49769)
fix - b4531f1d82 typing of TestBed Common token. (#49997)
fix - a4e749ffca When using setInput, mark view dirty in same was as markForCheck (#49711)
perf - 9b9c818f99 change RendererType2.styles to accept a only a flat array (#49072)
refactor - 82d6fbb109 generate a static application ID (#49422)
refactor - 3b863ddc1e Remove ReflectiveInjector symbol (#48103)
refactor - f594725951 remove Node.js v14 support (#49255)

forms

Commit Description
feat - 07a1aa3004 Improve typings form (async)Validators (#48679)

http

Commit Description
feat - aff1512950 allow HttpClient to cache requests (#49509)
fix - 15c91a53ae delay accessing pendingTasks.whenAllTasksComplete (#49784)
fix - 9f0c6d1ed1 ensure new cache state is returned on each request (#49749)
fix - 45a6ac09fd force macro task creation during HTTP request (#49546)
fix - 2a580b6f0b HTTP cache was being disabled prematurely (#49826)
fix - 2eb9b8b402 wait for all XHR requests to finish before stabilizing application (#49776)

migrations

Commit Description
feat - 5e5dac278d Migration to remove Router guard and resolver interfaces (#49337)

platform-browser

Commit Description
feat - 761e02d912 add a public API function to enable non-destructive hydration (#49666)
feat - 630af63fae deprecate withServerTransition call (#49422)
feat - 81e7d15ef6 enable HTTP request caching when using provideClientHydration (#49699)
fix - 74c925c19c export deprecated TransferState as type (#50015)
fix - 2312eb53ef KeyEventsPlugin should keep the same behavior (#49330)
fix - c934a8e72b only add ng-app-id to style on server side (#49465)
fix - 9165ff2517 reuse server generated component styles (#48253)
fix - e8e36811d5 set nonce attribute in a platform compatible way (#49624)
refactor - 3aa85a8087 move ApplicationConfig to core (#49253)
refactor - 9bd9a11f4e remove deprecated BrowserTransferStateModule symbol (#49718)

platform-server

Commit Description
feat - b5278cc115 renderApplication now accepts a bootstrapping method (#49248)
feat - 056d68002f add provideServerSupport function to provide server capabilities to an application (#49380)
feat - 7870fb07fe rename provideServerSupport to provideServerRendering (#49678)
fix - a08a8ff108 bundle @angular/domino in via esbuild (#49229)
fix - 5ea624f313 remove dependency on @angular/platform-browser-dynamic (#50064)
refactor - e99460865e deprecate useAbsoluteUrl and baseUrl (#49546)
refactor - 41f27ad086 remove renderApplication overload that accepts a component (#49463)
refactor - 17abe6dc96 remove deprecated renderModuleFactory (#49247)

router

Commit Description
feat - ea32c3289a Expose information about the last successful Navigation (#49235)
feat - 455c728525 helper functions to convert class guards to functional (#48709)
feat - f982a3f965 Opt-in for binding Router information to component inputs (#49633)
fix - 1f055b90b6 Ensure anchor scrolling happens on ignored same URL navigations (#48025)
fix - 6193a3d406 fix = not parsed in router segment name (#47332)
fix - c0b1b7becf Remove deprecated ComponentFactoryResolver from APIs (#49239)
fix - 1e32709e0e remove RouterEvent from Event union type (#46061)
fix - 3c7e637374 Route matching should only happen once when navigating (#49163)
fix - 1600687fe5 Route matching should only happen once when navigating (#49163)
fix - 31f210bf2c Router.createUrlTree should work with any ActivatedRoute (#48508)

service-worker

Commit Description
feat - 5e7fc259ea add function to provide service worker (#48247)

Breaking Changes

  • Angular Compatibility Compiler (ngcc) has been removed and as a result Angular View Engine libraries will no longer work
  • Deprecated EventManager method addGlobalEventListener has been removed as it is not used by Ivy.

bazel

  • Several changes to the Angular Package Format (APF)
    • Removal of FESM2015
    • Replacing ES2020 with ES2022
    • Replacing FESM2020 with FESM2022
  • Several changes to the Angular Package Format (APF)
    • Removal of FESM2015
    • Replacing ES2020 with ES2022
    • Replacing FESM2020 with FESM2022

common

  • MockPlatformLocation is now provided by default in tests.
    Existing tests may have behaviors which rely on
    BrowserPlatformLocation instead. For example, direct access to the
    window.history in either the test or the component rather than going
    through the Angular APIs (Location.getState()). The quickest fix is to
    update the providers in the test suite to override the provider again
    TestBed.configureTestingModule({providers: [{provide: PlatformLocation, useClass: BrowserPlatformLocation}]}).
    The ideal fix would be to update the code to instead be compatible with
    MockPlatformLocation instead.
  • If the 'ngTemplateOutletContext' is different from the context, it will result in a compile-time error.

Before the change, the following template was compiling:

interface MyContext {
  $implicit: string;
}

@Component({
  standalone: true,
  imports: [NgTemplateOutlet],
  selector: 'person',
  template: `
    <ng-container
      *ngTemplateOutlet="
        myTemplateRef;
        context: { $implicit: 'test', xxx: 'xxx' }
      "></ng-container>
  `,
})
export class PersonComponent {
  myTemplateRef!: TemplateRef<MyContext>;
}

However, it does not compile now because the 'xxx' property does not exist in 'MyContext', resulting in the error: 'Type '{ $implicit: string; xxx: string; }' is not assignable to type 'MyContext'.'

The solution is either:

  • add the 'xxx' property to 'MyContext' with the correct type or
  • add '$any(...)' inside the template to make the error disappear. However, adding '$any(...)' does not correct the error but only preserves the previous behavior of the code.
  • Deprecated XhrFactory export from @angular/common/http has been removed. Use XhrFactory from @angular/common instead.

compiler

    • TypeScript 4.8 is no longer supported.

core

  • QueryList.filter now supports type guard functions, which will result in type narrowing. Previously if you used type guard functions, it resulted in no changes to the return type. Now the type would be narrowed, which might require updates to the application code that relied on the old behavior.

  • zone.js versions 0.11.x and 0.12.x are not longer supported.

    • entryComponents has been deleted from the @NgModule and @Component public APIs. Any usages can be removed since they weren't doing anyting.
    • ANALYZE_FOR_ENTRY_COMPONENTS injection token has been deleted. Any references can be removed.
  • ComponentRef.setInput will only set the input on the
    component if it is different from the previous value (based on Object.is
    equality). If code relies on the input always being set, it should be
    updated to copy objects or wrap primitives in order to ensure the input
    value differs from the previous call to setInput.

  • RendererType2.styles no longer accepts a nested arrays.

  • The APP_ID token value is no longer randomly generated. If you are bootstrapping multiple application on the same page you will need to set to provide the APP_ID yourself.

    bootstrapApplication(ComponentA, {
      providers: [
       { provide: APP_ID, useValue: 'app-a' },
       // ... other providers ...
      ]
    });
    
  • The ReflectiveInjector and related symbols were removed. Please update the code to avoid references to the ReflectiveInjector symbol. Use Injector.create as a replacement to create an injector instead.

  • Node.js v14 support has been removed

    Node.js v14 is planned to be End-of-Life on 2023-04-30. Angular will stop supporting Node.js v14 in Angular v16. Angular v16 will continue to officially support Node.js versions v16 and v18.

platform-browser

  • The deprecated BrowserTransferStateModule was removed, since it's no longer needed. The TransferState class can be injected without providing the module. The BrowserTransferStateModule was empty starting from v14 and you can just remove the reference to that module from your applications.

platform-server

  • Users that are using SSR with JIT mode will now need to add import to @angular/compiler before bootstrapping the application.

    NOTE: this does not effect users using the Angular CLI.

  • renderApplication method no longer accepts a root component as first argument. Instead, provide a bootstrapping function that returns a Promise<ApplicationRef>.

    Before

    const output: string = await renderApplication(RootComponent, options);
    

    Now

    const bootstrap = () => bootstrapApplication(RootComponent, appConfig);
    const output: string = await renderApplication(bootstrap, options);
    
  • renderModuleFactory has been removed. Use renderModule instead.

router

  • The Scroll event's routerEvent property may also be
    a NavigationSkipped event. Previously, it was only a NavigationEnd
    event.
  • ComponentFactoryResolver has been removed from Router APIs.
    Component factories are not required to create an instance of a component
    dynamically. Passing a factory resolver via resolver argument is no longer needed
    and code can instead use ViewContainerRef.createComponent without the
    factory resolver.
  • The RouterEvent type is no longer present in the Event union type representing all router event types. If you have code using something like filter((e: Event): e is RouterEvent => e instanceof RouterEvent), you'll need to update it to filter((e: Event|RouterEvent): e is RouterEvent => e instanceof RouterEvent).
  • Tests which mock ActivatedRoute instances may need to be adjusted
    because Router.createUrlTree now does the right thing in more
    scenarios. This means that tests with invalid/incomplete ActivatedRoute mocks
    may behave differently than before. Additionally, tests may now navigate
    to a real URL where before they would navigate to the root. Ensure that
    tests provide expected routes to match.
    There is rarely production impact, but it has been found that relative
    navigations when using an ActivatedRoute that does not appear in the
    current router state were effectively ignored in the past. By creating
    the correct URLs, this sometimes resulted in different navigation
    behavior in the application. Most often, this happens when attempting to
    create a navigation that only updates query params using an empty
    command array, for example router.navigate([], {relativeTo: route, queryParams: newQueryParams}). In this case, the relativeTo property
    should be removed.

Deprecations

core

  • makeStateKey, StateKey and TransferState exports have been moved from @angular/platform-browser to @angular/core. Please update the imports.
- import {makeStateKey, StateKey, TransferState} from '@angular/platform-browser';
+ import {makeStateKey, StateKey, TransferState} from '@angular/core';
  • EnvironmentInjector.runInContext is now deprecated, with
    runInInjectionContext functioning as a direct replacement:

    // Previous method version (deprecated):
    envInjector.runInContext(fn);
    // New standalone function:
    runInInjectionContext(envInjector, fn);
    
  • The @Directive/@Component moduleId property is now
    deprecated. It did not have any effect for multiple major versions and
    will be removed in v17.

platform-browser

  • BrowserModule.withServerTransition has been deprecated. APP_ID should be used instead to set the application ID.
    NB: Unless, you render multiple Angular applications on the same page, setting an application ID is not necessary.

    Before:

    imports: [
      BrowserModule.withServerTransition({ appId: 'serverApp' }),
      ...
    ]
    

    After:

    imports: [
      BrowserModule,
      { provide: APP_ID, useValue: 'serverApp' },
      ...
    ],
    
  • ApplicationConfig has moved, please import ApplicationConfig from @angular/core instead.

platform-server

  • PlatformConfig.baseUrl and PlatformConfig.useAbsoluteUrl platform-server config options are deprecated as these were not used.

15.2.9 (2023-05-03)

common

Commit Description
fix - 9107e931ca fix incorrectly reported distortion for padded images (#49889)

compiler-cli

Commit Description
fix - 7c58885797 catch fatal diagnostic when getting diagnostics for components (#50046)

16.0.0-rc.4 (2023-05-01)

common

Commit Description
fix - 80ed0a4868 fix incorrectly reported distortion for padded images (#49889)

compiler-cli

Commit Description
fix - 6da1054a42 catch fatal diagnostic when getting diagnostics for components (#50046)

platform-server

Commit Description
fix - 5ea624f313 remove dependency on @angular/platform-browser-dynamic (#50064)

Breaking Changes

platform-server

  • Users that are using SSR with JIT mode will now need to add import to @angular/compiler before bootstrapping the application.

    NOTE: this does not effect users using the Angular CLI.

16.0.0-rc.3 (2023-04-27)

core

Commit Description
fix - 6d7be42da7 add newline to hydration mismatch error (#49965)
fix - 9180f98f0e ensure takeUntilDestroyed unregisters onDestroy listener on unsubscribe (#49901)
fix - b4531f1d82 typing of TestBed Common token. (#49997)

platform-browser

Commit Description
fix - 74c925c19c export deprecated TransferState as type (#50015)

16.0.0-rc.2 (2023-04-19)

compiler-cli

Commit Description
perf - 49fe974501 optimize NgModule emit for standalone components (#49837)

core

Commit Description
fix - fd9dcd36cd Ensure effects can be created when Zone is not defined (#49890)
fix - 2650f1afc1 execute input setters in non-reactive context (#49906)
fix - f8b95b9da6 execute query setters in non-reactive context (#49906)
fix - ef91a2e0fe execute template creation in non-reactive context (#49883)
fix - a3c3ab757c handle invalid classes in class array bindings (#49924)
fix - fedc75624c include inner ViewContainerRef anchor nodes into ViewRef.rootNodes output (#49867)

router

Commit Description
fix - 98223c11ca canceledNavigationResolution: 'computed' with redirects to the current URL (#49793)

15.2.8 (2023-04-19)

core

Commit Description
fix - 2fff8fadbe handle invalid classes in class array bindings (#49924)

http

Commit Description
fix - 05a0225deb prevent headers from throwing an error when initializing numerical values (#49379)

router

Commit Description
fix - 09a42d988e canceledNavigationResolution: 'computed' with redirects to the current URL (#49793)

16.0.0-rc.1 (2023-04-14)

core

Commit Description
fix - 4721c48a24 error if document body is null (#49818)
fix - 87549af73c Fix capitalization of toObservableOptions (#49832)
fix - c34d7e0822 onDestroy should be registered only on valid DestroyRef (#49804)

http

Commit Description
fix - 2a580b6f0b HTTP cache was being disabled prematurely (#49826)
fix - 95bc7e2c03 prevent headers from throwing an error when initializing numerical values (#49379)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Danilo Bassi, Kristiyan Kostadinov, Matthieu Riegler, Pawel Kozlowski and Payam Valadkhan

16.0.0-rc.0 (2023-04-12)

compiler

Commit Description
fix - 9de1e9da8f incorrectly matching directives on attribute bindings (#49713)
fix - 6623810e4d Produce diagnositc if directive used in host binding is not exported (#49527)

compiler-cli

Commit Description
fix - ed817e32fe Catch FatalDiagnosticError during template type checking (#49527)

core

Commit Description
fix - f8e25864e8 allow async functions in effects (#49783)
fix - 84216dabfc catch errors from source signals outside of .next (#49769)
fix - 2f2ef14f9e resolve InitialRenderPendingTasks promise on complete (#49784)
fix - c7d8d3ee37 toObservable should allow writes to signals in the effect (#49769)

http

Commit Description
fix - 15c91a53ae delay accessing pendingTasks.whenAllTasksComplete (#49784)
fix - 9f0c6d1ed1 ensure new cache state is returned on each request (#49749)
fix - 2eb9b8b402 wait for all XHR requests to finish before stabilizing application (#49776)

router

Commit Description
fix - 6193a3d406 fix = not parsed in router segment name (#47332)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Brandon Roberts, De Wildt, Jessica Janiuk, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Nikola Kološnjaji, Paul Gschwendtner, Pawel Kozlowski and dewildt

15.2.7 (2023-04-12)

compiler

Commit Description
fix - b0c1a90f55 Produce diagnositc if directive used in host binding is not exported (#49792)

compiler-cli

Commit Description
fix - a40529af2e Catch FatalDiagnosticError during template type checking (#49792)

core

Commit Description
fix - 702ec90110 When using setInput, mark view dirty in same way as markForCheck (#49747)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Kristiyan Kostadinov, Matthieu Riegler and Nikola Kološnjaji

16.0.0-next.7 (2023-04-05)

Breaking Changes

core

  • QueryList.filter now supports type guard functions, which will result in type narrowing. Previously if you used type guard functions, it resulted in no changes to the return type. Now the type would be narrowed, which might require updates to the application code that relied on the old behavior.
  • The ReflectiveInjector and related symbols were removed. Please update the code to avoid references to the ReflectiveInjector symbol. Use Injector.create as a replacement to create an injector instead.

platform-browser

  • The deprecated BrowserTransferStateModule was removed, since it's no longer needed. The TransferState class can be injected without providing the module. The BrowserTransferStateModule was empty starting from v14 and you can just remove the reference to that module from your applications.

core

Commit Description
feat - b2327f4df1 Allow typeguards on QueryList.filter (#48042)
feat - b35fa73968 change the URL sanitization to only block javascript: URLs (#49659)
feat - 061f3d1086 Drop public factories property for IterableDiffers : Breaking change (#49598)
feat - a5f1737d1c expose onDestroy on ApplicationRef (#49677)
feat - aad05ebeb4 support usage of non-experimental decorators with TypeScript 5.0 (#49492)
fix - df1dfc4c17 make sure that lifecycle hooks are not tracked (#49701)
fix - a4e749ffca When using setInput, mark view dirty in same was as markForCheck (#49711)
refactor - 3b863ddc1e Remove ReflectiveInjector symbol (#48103)

http

Commit Description
feat - aff1512950 allow HttpClient to cache requests (#49509)

platform-browser

Commit Description
feat - 761e02d912 add a public API function to enable non-destructive hydration (#49666)
feat - 81e7d15ef6 enable HTTP request caching when using provideClientHydration (#49699)
refactor - 9bd9a11f4e remove deprecated BrowserTransferStateModule symbol (#49718)

platform-server

Commit Description
feat - 7870fb07fe rename provideServerSupport to provideServerRendering (#49678)

router

Commit Description
fix - b203e4c19d create correct URL relative to path with empty child (#49691)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, Guillaume Weghsteen, Jessica Janiuk, JoostK, Matthieu Riegler, Pawel Kozlowski, Robin Richtsfeld, Sandra Limacher and vikram menon

15.2.6 (2023-04-05)

core

Commit Description
feat - d9efa1b0d7 change the URL sanitization to only block javascript: URLs (#49659)

router

Commit Description
fix - cad7274ef9 create correct URL relative to path with empty child (#49691)
fix - 9b61379096 Ensure initial navigation clears current navigation when blocking (#49572)

Special Thanks

Andrew Scott, Guillaume Weghsteen, John Manners, Johnny Gérard, Matthieu Riegler, Robin Richtsfeld, Sandra Limacher, Sarthak Thakkar, Vinit Neogi and vikram menon

13.4.0 (2023-04-06)

common

Commit Description
feat - ae34dbca1b Backport NgOptimizedImage to v13

Special Thanks

Alex Castle and Paul Gschwendtner

16.0.0-next.6 (2023-04-03)

Breaking Changes

  • Deprecated EventManager method addGlobalEventListener has been removed as it is not used by Ivy.

Commit Description
refactor - 2703fd6260 remove deprecated EventManager method addGlobalEventListener (#49645)

core

Commit Description
feat - d7d6514add Add ability to configure NgZone in bootstrapApplication (#49557)
feat - e883198460 implement takeUntilDestroyed in rxjs-interop (#49154)
feat - 8997bdc03b prototype implementation of @angular/core/rxjs-interop (#49154)

forms

Commit Description
feat - 07a1aa3004 Improve typings form (async)Validators (#48679)

router

Commit Description
feat - f982a3f965 Opt-in for binding Router information to component inputs (#49633)
fix - fa3909e8b4 Ensure initial navigation clears current navigation when blocking (#49572)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, John Manners, Johnny Gérard, Kristiyan Kostadinov, Matthieu Riegler, Pawel Kozlowski, Sarthak Thakkar and Vinit Neogi

16.0.0-next.5 (2023-03-29)

Breaking Changes

bazel

  • Several changes to the Angular Package Format (APF)
    • Removal of FESM2015
    • Replacing ES2020 with ES2022
    • Replacing FESM2020 with FESM2022
  • Several changes to the Angular Package Format (APF)
    • Removal of FESM2015
    • Replacing ES2020 with ES2022
    • Replacing FESM2020 with FESM2022

common

  • If the 'ngTemplateOutletContext' is different from the context, it will result in a compile-time error.

Before the change, the following template was compiling:

interface MyContext {
  $implicit: string;
}

@Component({
  standalone: true,
  imports: [NgTemplateOutlet],
  selector: 'person',
  template: `
    <ng-container
      *ngTemplateOutlet="
        myTemplateRef;
        context: { $implicit: 'test', xxx: 'xxx' }
      "></ng-container>
  `,
})
export class PersonComponent {
  myTemplateRef!: TemplateRef<MyContext>;
}

However, it does not compile now because the 'xxx' property does not exist in 'MyContext', resulting in the error: 'Type '{ $implicit: string; xxx: string; }' is not assignable to type 'MyContext'.'

The solution is either:

  • add the 'xxx' property to 'MyContext' with the correct type or
  • add '$any(...)' inside the template to make the error disappear. However, adding '$any(...)' does not correct the error but only preserves the previous behavior of the code.

core

    • entryComponents has been deleted from the @NgModule and @Component public APIs. Any usages can be removed since they weren't doing anyting.
    • ANALYZE_FOR_ENTRY_COMPONENTS injection token has been deleted. Any references can be removed.
  • ComponentRef.setInput will only set the input on the
    component if it is different from the previous value (based on Object.is
    equality). If code relies on the input always being set, it should be
    updated to copy objects or wrap primitives in order to ensure the input
    value differs from the previous call to setInput.

Deprecations

core

  • makeStateKey, StateKey and TransferState exports have been moved from @angular/platform-browser to @angular/core. Please update the imports.
- import {makeStateKey, StateKey, TransferState} from '@angular/platform-browser';
+ import {makeStateKey, StateKey, TransferState} from '@angular/core';
  • The @Directive/@Component moduleId property is now
    deprecated. It did not have any effect for multiple major versions and
    will be removed in v17.

platform-server

  • PlatformConfig.baseUrl and PlatformConfig.useAbsoluteUrl platform-server config options are deprecated as these were not used.

common

Commit Description
fix - 6499f5ae28 invalid ImageKit transformation (#49201)
fix - d47fef72cb strict type checking for ngtemplateoutlet (#48374)

compiler

Commit Description
fix - 1829542aea do not unquote CSS values (#49460)
fix - 73d2f3c866 handle trailing comma in object literal (#49535)

compiler-cli

Commit Description
feat - 03d1d00ad9 Add an extended diagnostic for nSkipHydration (#49512)

core

Commit Description
feat - 89d291c367 add assertInInjectionContext (#49529)
feat - 605c536420 add migration to remove moduleId references (#49496)
feat - 9c5fd50de4 effects can optionally return a cleanup function (#49625)
feat - c024574f46 expose makeStateKey, StateKey and TransferState (#49563)
feat - 9b65b84cb9 Mark components for check if they read a signal (#49153)
feat - 585e34bf6c remove entryComponents (#49484)
fix - be23b7ce65 ComponentRef.setInput only sets input when not equal to previous (#49607)
fix - 316c91b1a4 deprecate moduleId @Component property (#49496)
fix - fdafdb78dc set style property value to empty string instead of an invalid value (#49460)

http

Commit Description
fix - 45a6ac09fd force macro task creation during HTTP request (#49546)

migrations

Commit Description
feat - 5e5dac278d Migration to remove Router guard and resolver interfaces (#49337)

platform-browser

Commit Description
fix - e8e36811d5 set nonce attribute in a platform compatible way (#49624)

platform-server

Commit Description
refactor - e99460865e deprecate useAbsoluteUrl and baseUrl (#49546)

router

Commit Description
fix - 2dbf3e0023 Ensure Router preloading works with lazy component and static children (#49571)
fix - d3018c0ee7 fix #49457 outlet activating with old info (#49459)
fix - 3c7e637374 Route matching should only happen once when navigating (#49163)
fix - 1600687fe5 Route matching should only happen once when navigating (#49163)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Asaf Malin, Jan Cabadaj, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Sid, Tano Abeleyra and tomalaforge

15.2.5 (2023-03-29)

common

Commit Description
fix - ca5acadb78 invalid ImageKit transformation (#49201)

compiler

Commit Description
fix - 077f6b4674 do not unquote CSS values (#49460)
fix - c3cff35869 handle trailing comma in object literal (#49535)

core

Commit Description
fix - d201fc2dec set style property value to empty string instead of an invalid value (#49460)

router

Commit Description
fix - 978d37f324 Ensure Router preloading works with lazy component and static children (#49571)
fix - a844435514 fix #49457 outlet activating with old info (#49459)

Special Thanks

Alan Agius, Andrew Scott, Asaf Malin, Jan Cabadaj, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Sid and Tano Abeleyra

16.0.0-next.4 (2023-03-22)

Breaking Changes

platform-server

  • renderApplication method no longer accepts a root component as first argument. Instead, provide a bootstrapping function that returns a Promise<ApplicationRef>.

    Before

    const output: string = await renderApplication(RootComponent, options);
    

    Now

    const bootstrap = () => bootstrapApplication(RootComponent, appConfig);
    const output: string = await renderApplication(bootstrap, options);
    

compiler

Commit Description
feat - 13dd614cd1 add support for compile-time required inputs (#49453)
feat - 8f539c11f4 add support for compile-time required inputs (#49468)

core

Commit Description
feat - 17e9862653 add API to provide CSP nonce for inline stylesheets (#49444)
feat - d1617c449d allow removal of previously registered DestroyRef callbacks (#49493)
fix - 230345876c Allow TestBed.configureTestingModule to work with recursive cycle of standalone components. (#49473)
fix - e655e8a603 more accurate matching of classes during content projection (#48888)

migrations

Commit Description
fix - 546b285ec1 preserve trailing commas in code generated by standalone migration (#49533)

platform-browser

Commit Description
fix - c934a8e72b only add ng-app-id to style on server side (#49465)

platform-server

Commit Description
refactor - 41f27ad086 remove renderApplication overload that accepts a component (#49463)

Special Thanks

Aditya Srinivasan, Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Jessica Janiuk, Kristiyan Kostadinov, Masaoki Kobayashi, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Peter Götz, Thomas Pischke, Virginia Dooley and avmaxim

15.2.4 (2023-03-22)

core

Commit Description
fix - bae6b5ceb1 Allow TestBed.configureTestingModule to work with recursive cycle of standalone components. (#49473)
fix - 087f4412af more accurate matching of classes during content projection (#48888)

migrations

Commit Description
fix - bf4d856834 preserve trailing commas in code generated by standalone migration (#49533)

Special Thanks

Aditya Srinivasan, Alex Rickabaugh, Andrew Scott, Kristiyan Kostadinov, Masaoki Kobayashi, Matthieu Riegler, Paul Gschwendtner, Peter Götz, Thomas Pischke, Virginia Dooley and avmaxim

16.0.0-next.3 (2023-03-16)

Breaking Changes

core

  • The APP_ID token value is no longer randomly generated. If you are bootstrapping multiple application on the same page you will need to set to provide the APP_ID yourself.

    bootstrapApplication(ComponentA, {
      providers: [
       { provide: APP_ID, useValue: 'app-a' },
       // ... other providers ...
      ]
    });
    

router

  • ComponentFactoryResolver has been removed from Router APIs.
    Component factories are not required to create an instance of a component
    dynamically. Passing a factory resolver via resolver argument is no longer needed
    and code can instead use ViewContainerRef.createComponent without the
    factory resolver.

Deprecations

core

  • EnvironmentInjector.runInContext is now deprecated, with
    runInInjectionContext functioning as a direct replacement:

    // Previous method version (deprecated):
    envInjector.runInContext(fn);
    // New standalone function:
    runInInjectionContext(envInjector, fn);
    

platform-browser

  • BrowserModule.withServerTransition has been deprecated. APP_ID should be used instead to set the application ID.
    NB: Unless, you render multiple Angular applications on the same page, setting an application ID is not necessary.

    Before:

    imports: [
      BrowserModule.withServerTransition({ appId: 'serverApp' }),
      ...
    ]
    

    After:

    imports: [
      BrowserModule,
      { provide: APP_ID, useValue: 'serverApp' },
      ...
    ],
    

compiler

Commit Description
feat - 1a6ca68154 add support for compile-time required inputs (#49304)

core

Commit Description
feat - 0814f20594 introduce runInInjectionContext and deprecate prior version (#49396)
fix - 0e5f9ba6f4 generate consistent component IDs (#48253)
refactor - 82d6fbb109 generate a static application ID (#49422)

platform-browser

Commit Description
feat - 630af63fae deprecate withServerTransition call (#49422)
fix - 9165ff2517 reuse server generated component styles (#48253)

platform-server

Commit Description
feat - 056d68002f add provideServerSupport function to provide server capabilities to an application (#49380)

router

Commit Description
fix - c0b1b7becf Remove deprecated ComponentFactoryResolver from APIs (#49239)

service-worker

Commit Description
feat - 5e7fc259ea add function to provide service worker (#48247)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Esteban Gehring, Jessica Janiuk, JiaLiPassion, Julien Saguet, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner and Virginia Dooley

15.2.3 (2023-03-16)

Special Thanks

Alan Agius, Esteban Gehring, Matthieu Riegler and Virginia Dooley

14.3.0 (2023-03-13)

common

Commit Description
feat - 37bbc61cfe Backport NgOptimizedImage to Angular 14.

Special Thanks

Alex Castle, Joey Perrott and Paul Gschwendtner

16.0.0-next.2 (2023-03-08)

Breaking Changes

common

  • Deprecated XhrFactory export from @angular/common/http has been removed. Use XhrFactory from @angular/common instead.

core

  • zone.js versions 0.11.x and 0.12.x are not longer supported.

platform-server

  • renderModuleFactory has been removed. Use renderModule instead.

Deprecations

platform-browser

  • ApplicationConfig has moved, please import ApplicationConfig from @angular/core instead.

common

Commit Description
refactor - c41a21658c remove deprecated XhrFactory export from http entrypoint (#49251)

compiler

Commit Description
feat - 1407a9aeaf support multiple configuration files in extends (#49125)

core

Commit Description
feat - 4e9531f777 add mergeApplicationConfig method (#49253)
feat - fdf61974d1 drop support for zone.js versions <=0.12.0 (#49331)

migrations

Commit Description
fix - 2fbaee3cbe add protractor support if protractor imports are detected (#49274)

platform-browser

Commit Description
fix - 2312eb53ef KeyEventsPlugin should keep the same behavior (#49330)
refactor - 3aa85a8087 move ApplicationConfig to core (#49253)

platform-server

Commit Description
feat - b5278cc115 renderApplication now accepts a bootstrapping method (#49248)
refactor - 17abe6dc96 remove deprecated renderModuleFactory (#49247)

router

Commit Description
feat - ea32c3289a Expose information about the last successful Navigation (#49235)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Dylan Hunn, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Sai Kartheek Bommisetty and Vinit Neogi

15.2.2 (2023-03-08)

migrations

Commit Description
fix - 6207d6f1f0 add protractor support if protractor imports are detected (#49274)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Sai Kartheek Bommisetty and Vinit Neogi

16.0.0-next.1 (2023-03-01)

Breaking Changes

compiler

    • TypeScript 4.8 is no longer supported.

core

  • Node.js v14 support has been removed

    Node.js v14 is planned to be End-of-Life on 2023-04-30. Angular will stop supporting Node.js v14 in Angular v16. Angular v16 will continue to officially support Node.js versions v16 and v18.

router

  • Tests which mock ActivatedRoute instances may need to be adjusted
    because Router.createUrlTree now does the right thing in more
    scenarios. This means that tests with invalid/incomplete ActivatedRoute mocks
    may behave differently than before. Additionally, tests may now navigate
    to a real URL where before they would navigate to the root. Ensure that
    tests provide expected routes to match.
    There is rarely production impact, but it has been found that relative
    navigations when using an ActivatedRoute that does not appear in the
    current router state were effectively ignored in the past. By creating
    the correct URLs, this sometimes resulted in different navigation
    behavior in the application. Most often, this happens when attempting to
    create a navigation that only updates query params using an empty
    command array, for example router.navigate([], {relativeTo: route, queryParams: newQueryParams}). In this case, the relativeTo property
    should be removed.

common

Commit Description
fix - 3c9d49a4d7 make Location.normalize() return the correct path when the base path contains characters that interfere with regex syntax. (#49181)

compiler

Commit Description
feat - 79cdfeb392 drop support for TypeScript 4.8 (#49155)

compiler-cli

Commit Description
fix - b6c6dfd278 do not persist component analysis if template/styles are missing (#49184)

core

Commit Description
feat - 99d874fe3b add support for TypeScript 5.0 (#49126)
feat - 0f5c8003cc introduce concept of DestroyRef (#49158)
fix - e9edea363c update zone.js peerDependencies ranges (#49244)
refactor - f594725951 remove Node.js v14 support (#49255)

migrations

Commit Description
fix - 87affadb87 avoid migrating the same class multiple times in standalone migration (#49245)
fix - 7dd19570e8 delete barrel exports in standalone migration (#49176)

platform-server

Commit Description
fix - a08a8ff108 bundle @angular/domino in via esbuild (#49229)

router

Commit Description
feat - 455c728525 helper functions to convert class guards to functional (#48709)
fix - 7e35a917c5 add error message when using loadComponent with a NgModule (#49164)
fix - 31f210bf2c Router.createUrlTree should work with any ActivatedRoute (#48508)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Craig Spence, Doug Parker, Iván Navarro, Jessica Janiuk, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Michael Ziluck, Paul Gschwendtner, Pawel Kozlowski, Stephanie Tuerk, Vincent and Virginia Dooley

15.2.1 (2023-03-01)

common

Commit Description
fix - f0e926074d make Location.normalize() return the correct path when the base path contains characters that interfere with regex syntax. (#49181)

compiler-cli

Commit Description
fix - 04d8b6c61a do not persist component analysis if template/styles are missing (#49184)

core

Commit Description
fix - d60ea6ab5a update zone.js peerDependencies ranges (#49244)

migrations

Commit Description
fix - 44d095a61c avoid migrating the same class multiple times in standalone migration (#49245)
fix - 92b0bda9e4 delete barrel exports in standalone migration (#49176)

router

Commit Description
fix - 3062442728 add error message when using loadComponent with a NgModule (#49164)

Special Thanks

Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Craig Spence, Doug Parker, Iván Navarro, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Michael Ziluck, Paul Gschwendtner, Stephanie Tuerk, Vincent and Virginia Dooley

16.0.0-next.0 (2023-02-22)

Breaking Changes

  • Angular Compatibility Compiler (ngcc) has been removed and as a result Angular View Engine libraries will no longer work

common

  • MockPlatformLocation is now provided by default in tests.
    Existing tests may have behaviors which rely on
    BrowserPlatformLocation instead. For example, direct access to the
    window.history in either the test or the component rather than going
    through the Angular APIs (Location.getState()). The quickest fix is to
    update the providers in the test suite to override the provider again
    TestBed.configureTestingModule({providers: [{provide: PlatformLocation, useClass: BrowserPlatformLocation}]}).
    The ideal fix would be to update the code to instead be compatible with
    MockPlatformLocation instead.

core

  • RendererType2.styles no longer accepts nested arrays.

router

  • The Scroll event's routerEvent property may also be
    a NavigationSkipped event. Previously, it was only a NavigationEnd
    event.
  • The RouterEvent type is no longer present in the Event union type representing all router event types. If you have code using something like filter((e: Event): e is RouterEvent => e instanceof RouterEvent), you'll need to update it to filter((e: Event|RouterEvent): e is RouterEvent => e instanceof RouterEvent).

Commit Description
refactor - 48aa96ea13 remove Angular Compatibility Compiler (ngcc) (#49101)

common

Commit Description
feat - 5dce2a5a3a Provide MockPlatformLocation by default in BrowserTestingModule (#49137)

core

Commit Description
feat - bc5ddabdcb add Angular Signals to the public API (#49150)
perf - 9b9c818f99 change RendererType2.styles to accept only a flat array (#49072)

router

Commit Description
fix - 1f055b90b6 Ensure anchor scrolling happens on ignored same URL navigations (#48025)
fix - 1e32709e0e remove RouterEvent from Event union type (#46061)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Joey Perrott, Mladen Jakovljević and Pawel Kozlowski

15.2.0 (2023-02-22)

Deprecations

  • Class and InjectionToken guards and resolvers are
    deprecated. Instead, write guards as plain JavaScript functions and
    inject dependencies with inject from @angular/core.

Commit Description
docs - 926c35f4ac Deprecate class and InjectionToken and resolvers (#47924)

common

Commit Description
feat - 54b24eb40f Add loaderParams attribute to NgOptimizedImage (#48907)

compiler-cli

Commit Description
fix - 0cf11167f1 incorrectly detecting forward refs when symbol already exists in file (#48988)

core

Commit Description
feat - a154db8a81 add ng generate schematic to convert declarations to standalone (#48790)
feat - 345e737daa add ng generate schematic to convert to standalone bootstrapping APIs (#48848)
feat - e7318fc758 add ng generate schematic to remove unnecessary modules (#48832)

language-service

Commit Description
feat - 4ae384fd61 Allow auto-imports of a pipe via quick fix when its selector is used, both directly and via reexports. (#48354)
feat - 141333411e Introduce a new NgModuleIndex, and use it to suggest re-exports. (#48354)
fix - d0145033bd generate forwardRef for same file imports (#48898)

migrations

Commit Description
fix - 2796230e95 add enum in mode option in standalone schema (#48851)
fix - 816e76a578 automatically prune root module after bootstrap step (#49030)
fix - bdbf21d04b avoid generating imports with forward slashes (#48993)
fix - 32cf4e5cb9 avoid internal modules when generating imports (#48958)
fix - 521ccfbe6c avoid interrupting the migration if language service lookup fails (#49010)
fix - a40cd47aa7 avoid modifying testing modules without declarations (#48921)
fix - 1afa6ed322 don't add ModuleWithProviders to standalone test components (#48987)
fix - c98c6a8452 don't copy animations modules into the imports of test components (#49147)
fix - 8389557848 don't copy unmigrated declarations into imports array (#48882)
fix - f82bdc4b01 don't delete classes that may provide dependencies transitively (#48866)
fix - 759db12e0b duplicated comments on migrated classes (#48966)
fix - ba38178d19 generate forwardRef for same file imports (#48898)
fix - 03fcb36cfd migrate HttpClientModule to provideHttpClient() (#48949)
fix - 2de6dae16d migrate RouterModule.forRoot with a config object to use features (#48935)
fix - 770191cf1f migrate tests when switching to standalone bootstrap API (#48987)
fix - c7926b5773 move standalone migrations into imports (#48987)
fix - 65c74ed93e normalize paths to posix (#48850)
fix - 6377487b1a only exclude bootstrapped declarations from initial standalone migration (#48987)
fix - e9e4449a43 preserve tsconfig in standalone migration (#48987)
fix - ffad1b49d9 reduce number of files that need to be checked (#48987)
fix - ba7a757cc5 return correct alias when conflicting import exists (#49139)
fix - 49a7c9f94a standalone migration incorrectly throwing path error for multi app projects (#48958)
fix - 584976e6c8 support --defaults in standalone migration (#48921)
fix - 03f47ac901 use consistent quotes in generated imports (#48876)
fix - ebae506d89 use import remapper in root component (#49046)
fix - 40c976c909 use NgForOf instead of NgFor (#49022)
perf - 4ac25b2aff avoid re-traversing nodes when resolving bootstrap call dependencies (#49010)
perf - 26cb7ab2e6 speed up language service lookups (#49010)

platform-browser

Commit Description
fix - bf4ad38117 remove styles from DOM of destroyed components (#48298)

platform-server

Commit Description
fix - 25e220a23a avoid duplicate TransferState info after renderApplication call (#49094)

router

Commit Description
feat - 31b94c762f Add a withNavigationErrorHandler feature to provideRouter (#48551)
feat - dedac8d3f7 Add test helper for trigger navigations in tests (#48552)

Special Thanks

Alan Agius, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dylan Hunn, Ikko Eltociear Ashimine, Ilyass, Jessica Janiuk, Joey Perrott, John Manners, Kalbarczyk, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Virginia Dooley, Walid Bouguima, cexbrayat and mgechev

15.2.0-rc.0 (2023-02-15)

forms

Commit Description
fix - 59685614f8 Make radio buttons respect [attr.disabled] (#48864)

migrations

Commit Description
fix - 816e76a578 automatically prune root module after bootstrap step (#49030)
fix - 521ccfbe6c avoid interrupting the migration if language service lookup fails (#49010)
fix - ebae506d89 use import remapper in root component (#49046)
fix - 40c976c909 use NgForOf instead of NgFor (#49022)
perf - 4ac25b2aff avoid re-traversing nodes when resolving bootstrap call dependencies (#49010)
perf - 26cb7ab2e6 speed up language service lookups (#49010)

Special Thanks

AleksanderBodurri, Alvaro Junqueira, Dylan Hunn, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, PaloMiklo, Paul Gschwendtner, Pawel Kozlowski and cexbrayat

15.1.5 (2023-02-15)

forms

Commit Description
fix - 5f2a3edcf2 Make radio buttons respect [attr.disabled] (#48864)

Special Thanks

AleksanderBodurri, Alvaro Junqueira, Dylan Hunn, Joey Perrott, Matthieu Riegler, PaloMiklo and Paul Gschwendtner

15.2.0-next.4 (2023-02-08)

common

Commit Description
feat - 54b24eb40f Add loaderParams attribute to NgOptimizedImage (#48907)

compiler-cli

Commit Description
fix - 0cf11167f1 incorrectly detecting forward refs when symbol already exists in file (#48988)

language-service

Commit Description
fix - d0145033bd generate forwardRef for same file imports (#48898)

migrations

Commit Description
fix - bdbf21d04b avoid generating imports with forward slashes (#48993)
fix - 32cf4e5cb9 avoid internal modules when generating imports (#48958)
fix - 1afa6ed322 don't add ModuleWithProviders to standalone test components (#48987)
fix - 759db12e0b duplicated comments on migrated classes (#48966)
fix - ba38178d19 generate forwardRef for same file imports (#48898)
fix - 2de6dae16d migrate RouterModule.forRoot with a config object to use features (#48935)
fix - 770191cf1f migrate tests when switching to standalone bootstrap API (#48987)
fix - c7926b5773 move standalone migrations into imports (#48987)
fix - 6377487b1a only exclude bootstrapped declarations from initial standalone migration (#48987)
fix - e9e4449a43 preserve tsconfig in standalone migration (#48987)
fix - ffad1b49d9 reduce number of files that need to be checked (#48987)
fix - 49a7c9f94a standalone migration incorrectly throwing path error for multi app projects (#48958)

Special Thanks

Alex Castle, Andrew Scott, Dylan Hunn, Jessica Janiuk, Kian Yang Lee, Kristiyan Kostadinov, Matthieu Riegler, Pawel Kozlowski, Redouane Bekkouche, Simona Cotin and Walid Bouguima

15.1.4 (2023-02-08)

Special Thanks

Jessica Janiuk, Kian Yang Lee, Matthieu Riegler, Redouane Bekkouche and Simona Cotin

15.2.0-next.3 (2023-02-02)

animations

Commit Description
fix - b4187548ca fix non-animatable warnings for easing (#48583)

common

Commit Description
fix - a055196c55 warn if using ngSrcset without a configured image loader (#48804)

compiler

Commit Description
fix - 06e161f2dd incorrect code when non-null assertion is used after a safe access (#48801)

core

Commit Description
feat - 345e737daa add ng generate schematic to convert to standalone bootstrapping APIs (#48848)

migrations

Commit Description
fix - 2796230e95 add enum in mode option in standalone schema (#48851)
fix - a40cd47aa7 avoid modifying testing modules without declarations (#48921)
fix - 8389557848 don't copy unmigrated declarations into imports array (#48882)
fix - f82bdc4b01 don't delete classes that may provide dependencies transitively (#48866)
fix - 04e0ac3d7c migration host incorrectly reading empty files (#48849)
fix - 65c74ed93e normalize paths to posix (#48850)
fix - 584976e6c8 support --defaults in standalone migration (#48921)
fix - 03f47ac901 use consistent quotes in generated imports (#48876)

platform-server

Commit Description
fix - 2fc5b70fce insert transfer state script before other script tags (#48868)

router

Commit Description
feat - dedac8d3f7 Add test helper for trigger navigations in tests (#48552)
fix - 16ef770db8 Handle routerLink directive on svg anchors. (#48857)

Special Thanks

Alan Agius, Andrew Scott, Besim Gürbüz, Brecht Billiet, Dario Piotrowicz, Dylan Hunn, Iván Navarro, Kristiyan Kostadinov, Matthieu Riegler, Onkar Ruikar, Payam Valadkhan, Santosh Yadav, Virginia Dooley and Walid Bouguima

15.1.3 (2023-02-02)

animations

Commit Description
fix - d36dfd4b62 fix non-animatable warnings for easing (#48583)

common

Commit Description
fix - a334e4efbe warn if using ngSrcset without a configured image loader (#48804)

compiler

Commit Description
fix - 171b4d4640 incorrect code when non-null assertion is used after a safe access (#48801)

migrations

Commit Description
fix - 9e86dd231b Fixed file format issue with lint (#48859)
fix - af31f98b00 migration host incorrectly reading empty files (#48849)

platform-server

Commit Description
fix - 73972c684e insert transfer state script before other script tags (#48868)

router

Commit Description
fix - d5b2c249a3 Handle routerLink directive on svg anchors. (#48857)

Special Thanks

Alan Agius, Besim Gürbüz, Brecht Billiet, Dario Piotrowicz, Dylan Hunn, Iván Navarro, Jessica Janiuk, Kristiyan Kostadinov, Matthieu Riegler, Onkar Ruikar, Payam Valadkhan, Santosh Yadav, Virginia Dooley and Walid Bouguima

15.2.0-next.2 (2023-01-25)

compiler

Commit Description
fix - bc8cfa2552 handle css selectors with space after an escaped character. (#48558)

compiler-cli

Commit Description
fix - 4da1f2948c resolve deprecation warning (#48812)

core

Commit Description
feat - a154db8a81 add ng generate schematic to convert declarations to standalone (#48790)
feat - e7318fc758 add ng generate schematic to remove unnecessary modules (#48832)

router

Commit Description
fix - 4dcab333ae 'createUrlTreeFromSnapshot' with empty paths and named outlets (#48734)

Special Thanks

Alan Agius, AleksanderBodurri, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Payam Valadkhan, Virginia Dooley, Yann Thomas LE MOIGNE and dario-piotrowicz

15.1.2 (2023-01-25)

compiler

Commit Description
fix - 98ccb57117 handle css selectors with space after an escaped character. (#48558)

compiler-cli

Commit Description
fix - 145f848a10 resolve deprecation warning (#48812)

router

Commit Description
fix - a6b10f6e59 'createUrlTreeFromSnapshot' with empty paths and named outlets (#48734)

Special Thanks

Alan Agius, AleksanderBodurri, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, JoostK, Matthieu Riegler, Paul Gschwendtner, Payam Valadkhan, Virginia Dooley, Yann Thomas LE MOIGNE and dario-piotrowicz

15.2.0-next.1 (2023-01-18)

Deprecations

  • Class and InjectionToken guards and resolvers are
    deprecated. Instead, write guards as plain JavaScript functions and
    inject dependencies with inject from @angular/core.

Commit Description
docs - 926c35f4ac Deprecate class and InjectionToken and resolvers (#47924)

common

Commit Description
fix - 8802b4aab9 Update Location to get a normalized URL valid in case a represented URL starts with the substring equals APP_BASE_HREF (#48489)
perf - 5f21c6d627 avoid excessive DOM mutation in NgClass (#48433)

core

Commit Description
fix - f00bf71411 makeEnvironmentProviders should accept EnvironmentProviders (#48720)

language-service

Commit Description
feat - 4ae384fd61 Allow auto-imports of a pipe via quick fix when its selector is used, both directly and via reexports. (#48354)
feat - 141333411e Introduce a new NgModuleIndex, and use it to suggest re-exports. (#48354)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Dylan Hunn, Jens, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Vladyslav Slipchenko, ced, dario-piotrowicz, mgechev and ノウラ

15.1.1 (2023-01-18)

common

Commit Description
fix - 68ce4f6ab4 Update Location to get a normalized URL valid in case a represented URL starts with the substring equals APP_BASE_HREF (#48489)
perf - 032b2bd689 avoid excessive DOM mutation in NgClass (#48433)

core

Commit Description
fix - dd54f6bd96 makeEnvironmentProviders should accept EnvironmentProviders (#48720)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Scott, Aristeidis Bampakos, Bob Watson, Jens, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Vladyslav Slipchenko, ced, dario-piotrowicz, mgechev and ノウラ

15.2.0-next.0 (2023-01-11)

router

Commit Description
feat - 31b94c762f Add a withNavigationErrorHandler feature to provideRouter (#48551)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Scott, Paul Gschwendtner and angular-robot[bot]

15.1.0 (2023-01-10)

Deprecations

router

  • CanLoad guards in the Router are deprecated. Use CanMatch
    instead.

  • router writable properties

    The following strategies are meant to be configured by registering the
    application strategy in DI via the providers in the root NgModule or
    bootstrapApplication:

    • routeReuseStrategy
    • titleStrategy
    • urlHandlingStrategy

    The following options are meant to be configured using the options
    available in RouterModule.forRoot or provideRouter.

    • onSameUrlNavigation
    • paramsInheritanceStrategy
    • urlUpdateStrategy
    • canceledNavigationResolution

    The following options are available in RouterModule.forRoot but not
    available in provideRouter:

    • malformedUriErrorHandler - This was found to not be used anywhere
      internally.
    • errorHandler - Developers can instead subscribe to Router.events
      and filter for NavigationError.

common

Commit Description
feat - fe50813664 Add BrowserPlatformLocation to the public API (#48488)
fix - 2f4f0638c7 Add data attribtue to NgOptimizedImage (#48497)

compiler

Commit Description
feat - a532d71975 allow self-closing tags on custom elements (#48535)
fix - caf7228f8a resolve deprecation warning (#48652)
fix - 33f35b04ef type-only symbols incorrectly retained when downlevelling custom decorators (#48638)

compiler-cli

Commit Description
fix - caedef0f5b update @babel/core dependency and lock version (#48634)

core

Commit Description
feat - 6acae1477a Add TestBed.runInInjectionContext to help test functions which use inject (#47955)
feat - 38421578a2 Make the isStandalone() function available in public API (#48114)
feat - dd42974b07 support TypeScript 4.9 (#48005)

forms

Commit Description
fix - 8aa8b4b77c Form provider FormsModule.withConfig return a FormsModule (#48526)

language-service

Commit Description
feat - 5f0b53c735 Allow auto-imports to suggest multiple possible imports. (#47787)
fix - 6a8ea29a04 expose package.json for vscode extension resolution (#48678)
fix - ce8160ecb2 Prevent crashes on unemitable references (#47938)
fix - e615b598ba ship /api entry-point (#48670)
fix - 6ce7d76a0e update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build (#48663)

localize

Commit Description
fix - a1a8e91eca add triple slash type reference on @angular/localize on `ng add (#48502)

migrations

Commit Description
fix - cc284afbbc combine newly-added imports in import manager (#48620)

router

Commit Description
docs - 228e992db7 Deprecate canLoad guards in favor of canMatch (#48180)
docs - 0a8b8a66cd Deprecate public members of Router that are meant to be configured elsewhere (#48006)
feat - 332461bd0c Add ability to override onSameUrlNavigation default per-navigation (#48050)
feat - f58ad86e51 Add feature provider for enabling hash navigation (#48301)
feat - 73f03ad2d2 Add new NavigationSkipped event for ignored navigations (#48024)
fix - 3fe75710d9 page refresh should not destroy history state (#48540)

Special Thanks

Alan Agius, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Lyding, Derek Cormier, Doug Parker, Dylan Hunn, George Kalpakas, Greg Magolan, Jessica Janiuk, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Renan Ferro, Tim Gates, Vadim, Virginia Dooley, ced, mgechev, piyush132000, robertIsaac and sr5434

15.1.0-rc.0 (2023-01-05)

common

Commit Description
fix - 2f4f0638c7 Add data attribtue to NgOptimizedImage (#48497)

compiler

Commit Description
feat - a532d71975 allow self-closing tags on custom elements (#48535)
fix - 33f35b04ef type-only symbols incorrectly retained when downlevelling custom decorators (#48638)

compiler-cli

Commit Description
fix - caedef0f5b update @babel/core dependency and lock version (#48634)

localize

Commit Description
fix - a1a8e91eca add triple slash type reference on @angular/localize on `ng add (#48502)

migrations

Commit Description
fix - cc284afbbc combine newly-added imports in import manager (#48620)

Special Thanks

Alan Agius, Alex Castle, Andrew Kushnir, Derek Cormier, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Renan Ferro, Vadim, ced, mgechev, piyush132000 and robertIsaac

15.1.0-next.3 (2022-12-14)

animations

Commit Description
fix - c86484507f fix incorrect handling of camel-case css properties (#48436)

common

Commit Description
feat - fe50813664 Add BrowserPlatformLocation to the public API (#48488)
fix - e362214924 Fix TestBed.overrideProvider type to include multi (#48424)
fix - d87285c363 Update Location to get a normalized URL valid in case a represented URL starts with the substring equals APP_BASE_HREF (#48394)

compiler-cli

Commit Description
fix - a6849f27af evaluate const tuple types statically (#48091)

router

Commit Description
feat - f58ad86e51 Add feature provider for enabling hash navigation (#48301)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, BrowserPerson, Jens, Jessica Janiuk, Joey Perrott, JoostK, Konstantin Kharitonov, Lukas Matta, Matthieu Riegler, Piotr Kowalski, Virginia Dooley, Yannick Baron, dario-piotrowicz, lsst25, piyush132000 and why520crazy

15.0.4 (2022-12-14)

animations

Commit Description
fix - 6c1064c72f fix incorrect handling of camel-case css properties (#48436)

common

Commit Description
fix - f30d18a942 Fix TestBed.overrideProvider type to include multi (#48424)
fix - 59c6bfb632 Update Location to get a normalized URL valid in case a represented URL starts with the substring equals APP_BASE_HREF (#48394)

compiler-cli

Commit Description
fix - b55d2dab5d evaluate const tuple types statically (#48091)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, BrowserPerson, Jens, Jessica Janiuk, Joey Perrott, JoostK, Konstantin Kharitonov, Lukas Matta, Piotr Kowalski, Virginia Dooley, Yannick Baron, dario-piotrowicz, lsst25, piyush132000 and why520crazy

15.1.0-next.2 (2022-12-07)

common

Commit Description
fix - 8e52ca2714 Don't generate srcsets with very large sources (#47997)
fix - f8ecc194e9 Update Location to support base href containing origin (#48327)

compiler

Commit Description
fix - 4c023956d8 make sure selectors inside container queries are correctly scoped (#48353)

compiler-cli

Commit Description
fix - 27eaded62d Produce diagnostic rather than crash when using invalid hostDirective (#48314)

core

Commit Description
feat - 38421578a2 Make the isStandalone() function available in public API (#48114)
feat - dd42974b07 support TypeScript 4.9 (#48005)
fix - 5f9c7ceb90 unable to inject ChangeDetectorRef inside host directives (#48355)

Special Thanks

Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Lyding, Derek Cormier, Joey Perrott, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz, piyush132000 and sr5434

15.0.3 (2022-12-07)

common

Commit Description
fix - 50b1c2bf52 Don't generate srcsets with very large sources (#47997)
fix - bf44dc234a Update Location to support base href containing origin (#48327)

compiler

Commit Description
fix - 9a5d84249a make sure selectors inside container queries are correctly scoped (#48353)

compiler-cli

Commit Description
fix - 167bc0d163 Produce diagnostic rather than crash when using invalid hostDirective (#48314)

core

Commit Description
fix - e4dcaa513e unable to inject ChangeDetectorRef inside host directives (#48355)

Special Thanks

Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Derek Cormier, Joey Perrott, Konstantin Kharitonov, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz and piyush132000

15.1.0-next.1 (2022-11-30)

Deprecations

router

  • CanLoad guards in the Router are deprecated. Use CanMatch
    instead.

compiler-cli

Commit Description
fix - 7d88700933 accept inheriting the constructor from a class in a library (#48156)

router

Commit Description
docs - 228e992db7 Deprecate canLoad guards in favor of canMatch (#48180)
feat - 332461bd0c Add ability to override onSameUrlNavigation default per-navigation (#48050)

Special Thanks

Alan Agius, Andrew Scott, Aristeidis Bampakos, Bob Watson, Derek Cormier, Dylan Hunn, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Rokas Brazdžionis and piyush132000

15.0.2 (2022-11-30)

compiler-cli

Commit Description
fix - 86a21f5569 accept inheriting the constructor from a class in a library (#48156)

Special Thanks

Alan Agius, Andrew Scott, Aristeidis Bampakos, Bob Watson, Derek Cormier, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Rokas Brazdžionis, mgechev and piyush132000

15.1.0-next.0 (2022-11-22)

Deprecations

router

  • router writable properties

    The following strategies are meant to be configured by registering the
    application strategy in DI via the providers in the root NgModule or
    bootstrapApplication:

    • routeReuseStrategy
    • titleStrategy
    • urlHandlingStrategy

    The following options are meant to be configured using the options
    available in RouterModule.forRoot or provideRouter.

    • onSameUrlNavigation
    • paramsInheritanceStrategy
    • urlUpdateStrategy
    • canceledNavigationResolution

    The following options are available in RouterModule.forRoot but not
    available in provideRouter:

    • malformedUriErrorHandler - This was found to not be used anywhere
      internally.
    • errorHandler - Developers can instead subscribe to Router.events
      and filter for NavigationError.

common

Commit Description
fix - b0a62bea47 Fix MockPlatformLocation events and missing onPopState implementation (#48113)

core

Commit Description
feat - 6acae1477a Add TestBed.runInInjectionContext to help test functions which use inject (#47955)

forms

Commit Description
fix - 0329c13e95 don't mutate validators array (#47830)
fix - d321880440 FormBuilder.group return right type with shorthand parameters. (#48084)

language-service

Commit Description
feat - 5f0b53c735 Allow auto-imports to suggest multiple possible imports. (#47787)
fix - fd2eea5961 correctly handle host directive inputs/outputs (#48147)
fix - ce8160ecb2 Prevent crashes on unemitable references (#47938)
fix - 764fa3d9c3 update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build (#48120)

router

Commit Description
docs - 0a8b8a66cd Deprecate public members of Router that are meant to be configured elsewhere (#48006)
feat - 73f03ad2d2 Add new NavigationSkipped event for ignored navigations (#48024)
fix - b51929a394 correct type of nextState parameter in canDeactivate (#48038)
fix - 1df0ed7d6e Ensure renavigating in component init works with enabledBlocking (#48063)
fix - 1976e37475 restore 'history.state' on popstate even if navigationId missing (#48033)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn, George Kalpakas, Greg Magolan, Ikko Ashimine, Ivan Rodriguez, Jessica Janiuk, JiaLiPassion, Joe Roxbury, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Mikhail Savchuk, Nebojsa Cvetkovic, Pawel Kozlowski, Volodymyr, Wooshaah and mgechev

15.0.1 (2022-11-22)

common

Commit Description
fix - 930af9dd26 Fix MockPlatformLocation events and missing onPopState implementation (#48113)

forms

Commit Description
fix - b342e55509 don't mutate validators array (#47830)
fix - a12a120272 FormBuilder.group return right type with shorthand parameters. (#48084)

language-service

Commit Description
fix - cc8b76ef7c correctly handle host directive inputs/outputs (#48147)
fix - a8c33bf931 update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build (#48120)

router

Commit Description
fix - e4309d57d8 correct type of nextState parameter in canDeactivate (#48038)
fix - 9baefd085f Ensure renavigating in component init works with enabledBlocking (#48063)
fix - fa5528fb5f restore 'history.state' on popstate even if navigationId missing (#48033)

Special Thanks

Alan Agius, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn, George Kalpakas, Greg Magolan, Ikko Ashimine, Ivan Rodriguez, Jessica Janiuk, Joe Roxbury, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Mikhail Savchuk, Nebojsa Cvetkovic, Pawel Kozlowski, Volodymyr and Wooshaah

12.2.17 (2022-11-22)

Breaking Changes

core

  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Description
fix - b871db57da hardening attribute and property binding rules for elements

Special Thanks

Andrew Kushnir, Joey Perrott and Paul Gschwendtner

14.2.12 (2022-11-21)

Breaking Changes

core

  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Description
fix - 54814c8e9b hardening attribute and property binding rules for elements (#48028)

Special Thanks

Andrew Kushnir

13.3.12 (2022-11-21)

Breaking Changes

core

  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Description
fix - b1d7b79ff4 hardening attribute and property binding rules for elements (#48029)

Special Thanks

Andrew Kushnir, Andrew Scott, George Looshch, Joey Perrott and Paul Gschwendtner

15.0.0 (2022-11-16)

Breaking Changes

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

compiler-cli

  • Invalid constructors for DI may now report compilation errors

    When a class inherits its constructor from a base class, the compiler may now
    report an error when that constructor cannot be used for DI purposes. This may
    either be because the base class is missing an Angular decorator such as
    @Injectable() or @Directive(), or because the constructor contains parameters
    which do not have an associated token (such as primitive types like string).
    These situations used to behave unexpectedly at runtime, where the class may be
    constructed without any of its constructor parameters, so this is now reported
    as an error during compilation.

    Any new errors that may be reported because of this change can be resolved either
    by decorating the base class from which the constructor is inherited, or by adding
    an explicit constructor to the class for which the error is reported.

  • Angular compiler option enableIvy has been removed as Ivy is the only rendering engine.

core

  • Angular no longer supports Node.js versions 14.[15-19].x and 16.[10-12].x. Current supported versions of Node.js are 14.20.x, 16.13.x and 18.10.x.
  • TypeScript versions older than 4.8 are no longer supported.
  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
  • Existing iframe usages may have src or srcdoc preceding other attributes. Such usages may need to be updated to ensure compliance with the new stricter rules around iframe bindings.

forms

  • setDisabledState will always be called when a ControlValueAccessor is attached. You can opt-out with FormsModule.withConfig or ReactiveFormsModule.withConfig.

localize

    • canParse method has been removed from all translation parsers in @angular/localize/tools. analyze should be used instead.
    • the hint parameter in theparse methods is now mandatory.

router

  • Previously, the RouterOutlet would immediately
    instantiate the component being activated during navigation. Now the
    component is not instantiated until the change detection runs. This
    could affect tests which do not trigger change detection after a router
    navigation. In rarer cases, this can affect production code that relies
    on the exact timing of component availability.
  • The title property is now required on ActivatedRouteSnapshot
  • relativeLinkResolution is no longer configurable in
    the Router. This option was used as a means to opt out of a bug fix.

Deprecations

common

  • The DATE_PIPE_DEFAULT_TIMEZONE token is now deprecated in favor
    of the DATE_PIPE_DEFAULT_OPTIONS token, which accepts an object
    as a value and the timezone can be defined as a field (called timezone)
    on that object.

core

    • The ability to pass an NgModule to the providedIn option for
      @Injectable and InjectionToken is now deprecated.

    providedIn: NgModule was intended to be a tree-shakable alternative to
    NgModule providers. It does not have wide usage, and in most cases is used
    incorrectly, in circumstances where providedIn: 'root' should be
    preferred. If providers should truly be scoped to a specific NgModule, use
    NgModule.providers instead.

    • The ability to set providedIn: 'any' for an @Injectable or
      InjectionToken is now deprecated.

    providedIn: 'any' is an option with confusing semantics and is almost
    never used apart from a handful of esoteric cases internal to the framework.

  • The bit field signature of Injector.get() has been deprecated, in favor of the new options object.

  • The bit field signature of TestBed.inject() has been deprecated, in favor of the new options object.

router

  • The RouterLinkWithHref directive is deprecated, use the RouterLink directive instead. The RouterLink contains the code from the RouterLinkWithHref to handle elements with href attributes.

common

Commit Description
feat - c0c7efaf7c add provideLocationMocks() function to provide Location mocks (#47674)
feat - 75e6297f09 add preload tag on server for priority img (#47343)
feat - 4fde292bb5 Add automatic srcset generation to ngOptimizedImage (#47547)
feat - 9483343ebf Add fill mode to NgOptimizedImage (#47738)
feat - bdb5371033 add injection token for default DatePipe configuration (#47157)
fix - 449d29b701 Add fetchpriority to ngOptimizedImage preloads (#48010)
fix - 4f52d4e474 don't generate srcset if noopImageLoader is used (#47804)
fix - 3a18398d83 Don't warn about image distortion is fill mode is enabled (#47824)
fix - edea15f2c6 export the IMAGE_CONFIG token (#48051)
fix - 8abf1c844c fix formatting on oversized image error (#47188)
fix - ca7bf65933 rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362)
fix - b3879dbf14 support density descriptors with 2+ decimals (#47197)
fix - fa4798095e update size error to mention 'fill' mode (#47797)
fix - 23f210c0ab warn if using supported CDN but not built-in loader (#47330)
fix - 945432e3fa Warn on fill ngOptimizedImage without height (#48036)

compiler

Commit Description
fix - 051f75648d scope css keyframes in emulated view encapsulation (#42608)
fix - 39b72e208b update element schema (#47552)
fix - 48b354a83e update element schema (#47552)

compiler-cli

Commit Description
fix - bc54687c7b exclude abstract classes from strictInjectionParameters requirement (#44615)
fix - 309b2cde51 implement more host directive validations as diagnostics (#47768)
fix - 2e1dddec45 support hasInvalidatedResolutions. (#47585)
fix - 19ad4987f9 use @ts-ignore. (#47636)
perf - 8fcadaad48 cache source file for reporting type-checking diagnostics (#47471)
refactor - 16f96eeabf remove enableIvy options (#47346)

core

Commit Description
docs - e3cef4a784 deprecate providedIn: NgModule and providedIn: 'any' (#47616)
feat - 1b9fd46d14 add support for Node.js version 18 (#47730)
feat - ed11a13c3c drop support for TypeScript 4.6 and 4.7 (#47690)
feat - db28badfe6 enable the new directive composition API (#47642)
feat - 7de1469be6 introduce EnvironmentProviders wrapper type (#47669)
feat - 841c8e5138 support object-based DI flags in Injector.get() (#46761)
feat - 120555a626 support object-based DI flags in TestBed.inject() (#46761)
fix - 96c0e42e61 allow readonly arrays for standalone imports (#47851)
fix - 28f289b825 hardening attribute and property binding rules for elements (#47964)
fix - d4b3c0b47c hardening rules related to the attribute order on iframe elements (#47935)
fix - 85330f3fd9 update isDevMode to rely on ngDevMode (#47475)

forms

Commit Description
feat - a8569e3802 export forms utility functions: isFormArray, isFormGroup… (#47718)
fix - 96b7fe93af call setDisabledState on ControlValueAcessor when control is enabled (#47576)
fix - a99d9d67f3 don't mutate validators array (#47830)
fix - 2625dc1312 Improve a very commonly viewed error message by adding a guide. (#47969)
fix - ae29f98c20 Runtime error pages must begin with leading zero (#47991)

http

Commit Description
feat - 3ba99e286a allow for child HttpClients to request via parents (#47502)
feat - 84d0d33c35 introduce provideHttpClientTesting provider function (#47502)
feat - 62c7a7a16e introduce functional interceptors (#47502)
feat - e47b129070 introduce the provideHttpClient() API (#47502)
fix - ea16a98dfe better handle unexpected undefined XSRF tokens (#47683)
fix - e7b48da713 rename withLegacyInterceptors to withInterceptorsFromDi (#47901)

language-service

Commit Description
feat - bebef5fb43 Quick fix to import a component when its selector is used (#47088)
feat - e7ee53c541 support to fix invalid banana in box (#47393)

localize

Commit Description
fix - 400a6b5e37 add polyfill in polyfills array instead of polyfills.ts (#47569)
fix - b6fd814542 update ng add schematic to support Angular CLI version 15 (#47763)
refactor - d36fd3d9e4 remove deprecated canParse method from TranslationParsers (#47275)

platform-server

Commit Description
fix - 2908eba59c align server renderer interface with base renderer (#47868)

router

Commit Description
feat - 7bee28d037 add a migration to remove relativeLinkResolution usages (#47604)
feat - 5163e3d876 Add UrlTree constructor to public API (#47186)
feat - da58801f95 auto-unwrap default exports when lazy loading (#47586)
feat - c3f857975d make RouterOutlet name an Input so it can be set dynamically (#46569)
feat - f73ef21442 merge RouterLinkWithHref into RouterLink (#47630)
feat - 16c8f55663 migrate RouterLinkWithHref references to RouterLink (#47599)
feat - 07017a7bd3 prevent provideRouter() from usage in @Component (#47669)
fix - 79e9e8ab77 Delay router scroll event until navigated components have rendered (#47563)
fix - 6a88bad019 Ensure ActivatedRouteSnapshot#title has correct value (#47481)
fix - 7b89d95c0e Remove deprecated relativeLinkResolution (#47623)

Special Thanks

Alan Agius, AleksanderBodurri, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, Ferdinand Malcher, George Kalpakas, Jeremy Elbourn, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Martin Probst, Matthias Weiß, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Sabareesh Kappagantu, WD Snoeijer, angular-robot[bot], arturovt, ced, dario-piotrowicz, ivanwonder and jaybell

14.2.11 (2022-11-16)

router

Commit Description
fix - aef353c143 Ensure renavigating in component init works with enabledBlocking (#48066)

Special Thanks

Alan Agius, Andrew Scott and Mujo Osmanovic

15.0.0-rc.4 (2022-11-14)

common

Commit Description
fix - 449d29b701 Add fetchpriority to ngOptimizedImage preloads (#48010)
fix - edea15f2c6 export the IMAGE_CONFIG token (#48051)
fix - 945432e3fa Warn on fill ngOptimizedImage without height (#48036)

Special Thanks

Alan Agius, Alex Castle, Andrew Kushnir, Mujo Osmanovic and ced

15.0.0-rc.3 (2022-11-09)

Breaking Changes

core

  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Description
fix - 37a25486cf add zone.js version 0.12.x as a valid peer dependency (#48002)
fix - 28f289b825 hardening attribute and property binding rules for elements (#47964)

forms

Commit Description
fix - 2625dc1312 Improve a very commonly viewed error message by adding a guide. (#47969)
fix - ae29f98c20 Runtime error pages must begin with leading zero (#47991)

http

Commit Description
fix - e7b48da713 rename withLegacyInterceptors to withInterceptorsFromDi (#47901)

router

Commit Description
fix - b8a6f7491b fix redirectTo on named outlets - resolves #33783 (#47927)

Special Thanks

Alan Agius, Albert Szekely, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Doug Parker, Dylan Hunn, Kristiyan Kostadinov, Markus Eckstein, Matthieu Riegler, Paul Gschwendtner, Peter Scriven and abergquist

14.2.10 (2022-11-09)

core

Commit Description
fix - a4312e1be5 add zone.js version 0.12.x as a valid peer dependency (#48002)

router

Commit Description
fix - db867fee77 fix redirectTo on named outlets - resolves #33783 (#47927)

Special Thanks

Alan Agius, Albert Szekely, Andrew Scott, Doug Parker, Kristiyan Kostadinov, Markus Eckstein, Peter Scriven and abergquist

15.0.0-rc.2 (2022-11-04)

Breaking Changes

core

  • Existing iframe usages may have src or srcdoc preceding other attributes. Such usages may need to be updated to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Description
fix - 96c0e42e61 allow readonly arrays for standalone imports (#47851)
fix - d4b3c0b47c hardening rules related to the attribute order on iframe elements (#47935)

platform-browser

Commit Description
perf - d5cd79f885 resolve memory leak when using animations with shadow DOM (#47903)

platform-server

Commit Description
fix - 31a7ce1268 call onSerialize when state is empty (#47888)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Charles Lyding, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Virginia Dooley and mgechev

14.2.9 (2022-11-03)

platform-browser

Commit Description
perf - 92d28bdd99 resolve memory leak when using animations with shadow DOM (#47903)

platform-server

Commit Description
fix - d2d9bbf5ce call onSerialize when state is empty (#47888)

Special Thanks

Alan Agius, Kristiyan Kostadinov, Virginia Dooley and mgechev

15.0.0-rc.1 (2022-10-26)

common

Commit Description
fix - 3a18398d83 Don't warn about image distortion is fill mode is enabled (#47824)

forms

Commit Description
fix - a99d9d67f3 don't mutate validators array (#47830)

platform-server

Commit Description
fix - 2908eba59c align server renderer interface with base renderer (#47868)

Special Thanks

Alan Agius, Alex Castle, Andrew Scott, Balaji, George Kalpakas, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, WD Snoeijer, onrails and vyom1611

14.2.8 (2022-10-26)

Special Thanks

Andrew Scott, Balaji, Paul Gschwendtner, WD Snoeijer, onrails and vyom1611

15.0.0-rc.0 (2022-10-19)

common

Commit Description
fix - 4f52d4e474 don't generate srcset if noopImageLoader is used (#47804)
fix - fa4798095e update size error to mention 'fill' mode (#47797)
fix - 23f210c0ab warn if using supported CDN but not built-in loader (#47330)

compiler-cli

Commit Description
fix - 309b2cde51 implement more host directive validations as diagnostics (#47768)

localize

Commit Description
fix - b6fd814542 update ng add schematic to support Angular CLI version 15 (#47763)

router

Commit Description
fix - 79e9e8ab77 Delay router scroll event until navigated components have rendered (#47563)

Special Thanks

Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Barnes, Charles Lyding, Kara Erickson, Kristiyan Kostadinov, Paul Gschwendtner, Virginia Dooley, WD Snoeijer, abergquist and urugator

14.2.7 (2022-10-19)

Special Thanks

Bob Watson, Charles Barnes, Joey Perrott, Virginia Dooley, WD Snoeijer, abergquist and urugator

15.0.0-next.6 (2022-10-12)

Breaking Changes

compiler-cli

  • Invalid constructors for DI may now report compilation errors

    When a class inherits its constructor from a base class, the compiler may now
    report an error when that constructor cannot be used for DI purposes. This may
    either be because the base class is missing an Angular decorator such as
    @Injectable() or @Directive(), or because the constructor contains parameters
    which do not have an associated token (such as primitive types like string).
    These situations used to behave unexpectedly at runtime, where the class may be
    constructed without any of its constructor parameters, so this is now reported
    as an error during compilation.

    Any new errors that may be reported because of this change can be resolved either
    by decorating the base class from which the constructor is inherited, or by adding
    an explicit constructor to the class for which the error is reported.

core

  • Angular no longer supports Node.js versions 14.[15-19].x and 16.[10-12].x. Current supported versions of Node.js are 14.20.x, 16.13.x and 18.10.x.
  • TypeScript versions older than 4.8 are no longer supported.

forms

  • setDisabledState will always be called when a ControlValueAccessor is attached. You can opt-out with FormsModule.withConfig or ReactiveFormsModule.withConfig.

router

  • relativeLinkResolution is no longer configurable in
    the Router. This option was used as a means to opt out of a bug fix.

Deprecations

common

  • The DATE_PIPE_DEFAULT_TIMEZONE token is now deprecated in favor
    of the DATE_PIPE_DEFAULT_OPTIONS token, which accepts an object
    as a value and the timezone can be defined as a field (called timezone)
    on that object.

router

  • The RouterLinkWithHref directive is deprecated, use the RouterLink directive instead. The RouterLink contains the code from the RouterLinkWithHref to handle elements with href attributes.

common

Commit Description
feat - c0c7efaf7c add provideLocationMocks() function to provide Location mocks (#47674)
feat - 75e6297f09 add preload tag on server for priority img (#47343)
feat - 4fde292bb5 Add automatic srcset generation to ngOptimizedImage (#47547)
feat - 9483343ebf Add fill mode to NgOptimizedImage (#47738)
feat - bdb5371033 add injection token for default DatePipe configuration (#47157)

compiler

Commit Description
fix - 39b72e208b update element schema (#47552)
fix - 48b354a83e update element schema (#47552)

compiler-cli

Commit Description
fix - 38078e7adb add missing period to error message (#47744)
fix - bc54687c7b exclude abstract classes from strictInjectionParameters requirement (#44615)
fix - 19ad4987f9 use @ts-ignore. (#47636)
perf - a792bf1703 minimize filesystem calls when generating shims (#47682)

core

Commit Description
feat - 1b9fd46d14 add support for Node.js version 18 (#47730)
feat - ed11a13c3c drop support for TypeScript 4.6 and 4.7 (#47690)
feat - db28badfe6 enable the new directive composition API (#47642)
feat - 7de1469be6 introduce EnvironmentProviders wrapper type (#47669)

forms

Commit Description
feat - a8569e3802 export forms utility functions: isFormArray, isFormGroup… (#47718)
fix - 96b7fe93af call setDisabledState on ControlValueAcessor when control is enabled (#47576)

http

Commit Description
feat - 3ba99e286a allow for child HttpClients to request via parents (#47502)
feat - 84d0d33c35 introduce provideHttpClientTesting provider function (#47502)
feat - 62c7a7a16e introduce functional interceptors (#47502)
feat - e47b129070 introduce the provideHttpClient() API (#47502)
fix - ea16a98dfe better handle unexpected undefined XSRF tokens (#47683)

language-service

Commit Description
feat - bebef5fb43 Quick fix to import a component when its selector is used (#47088)

router

Commit Description
feat - 7bee28d037 add a migration to remove relativeLinkResolution usages (#47604)
feat - f73ef21442 merge RouterLinkWithHref into RouterLink (#47630)
feat - 16c8f55663 migrate RouterLinkWithHref references to RouterLink (#47599)
feat - 07017a7bd3 prevent provideRouter() from usage in @Component (#47669)
fix - 7b89d95c0e Remove deprecated relativeLinkResolution (#47623)

Special Thanks

Alan Agius, AleksanderBodurri, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Charles Lyding, Dylan Hunn, Ferdinand Malcher, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Joshua Morony, Kristiyan Kostadinov, Martin Probst, Mathew Berg, Matthias Weiß, Paul Gschwendtner, Peter Dickten, Renan Ferro, Sri Ram, WD Snoeijer, arturovt, jaybell, markostanimirovic and Álvaro Martínez

14.2.6 (2022-10-12)

compiler-cli

Commit Description
fix - 3fd176a905 add missing period to error message (#47744)
perf - c3821f5ab5 minimize filesystem calls when generating shims (#47682)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Charles Lyding, Joey Perrott, Joshua Morony, Mathew Berg, Paul Gschwendtner, Peter Dickten, Renan Ferro, Sri Ram, WD Snoeijer, markostanimirovic and Álvaro Martínez

15.0.0-next.5 (2022-10-05)

Breaking Changes

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

router

  • Previously, the RouterOutlet would immediately
    instantiate the component being activated during navigation. Now the
    component is not instantiated until the change detection runs. This
    could affect tests which do not trigger change detection after a router
    navigation. In rarer cases, this can affect production code that relies
    on the exact timing of component availability.

Deprecations

core

    • The ability to pass an NgModule to the providedIn option for
      @Injectable and InjectionToken is now deprecated.

    providedIn: NgModule was intended to be a tree-shakable alternative to
    NgModule providers. It does not have wide usage, and in most cases is used
    incorrectly, in circumstances where providedIn: 'root' should be
    preferred. If providers should truly be scoped to a specific NgModule, use
    NgModule.providers instead.

    • The ability to set providedIn: 'any' for an @Injectable or
      InjectionToken is now deprecated.

    providedIn: 'any' is an option with confusing semantics and is almost
    never used apart from a handful of esoteric cases internal to the framework.

compiler

Commit Description
fix - 051f75648d scope css keyframes in emulated view encapsulation (#42608)

compiler-cli

Commit Description
fix - 2e1dddec45 support hasInvalidatedResolutions. (#47585)

core

Commit Description
docs - e3cef4a784 deprecate providedIn: NgModule and providedIn: 'any' (#47616)

localize

Commit Description
fix - 400a6b5e37 add polyfill in polyfills array instead of polyfills.ts (#47569)

router

Commit Description
feat - da58801f95 auto-unwrap default exports when lazy loading (#47586)
feat - c3f857975d make RouterOutlet name an Input so it can be set dynamically (#46569)

Special Thanks

Alan Agius, Alex Rickabaugh, Alexander Wiebe, Andrew Kushnir, Andrew Scott, Ciprian Sauliuc, Dmytro Mezhenskyi, Dylan Hunn, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Kristiyan Kostadinov, Martin Probst, Ole M, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz and mgechev

14.2.5 (2022-10-05)

Special Thanks

Alexander Wiebe, Ciprian Sauliuc, Dmytro Mezhenskyi, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Ole M, Paul Gschwendtner, Pawel Kozlowski and mgechev

15.0.0-next.4 (2022-09-28)

Breaking Changes

router

  • The title property is now required on ActivatedRouteSnapshot

Deprecations

core

  • The bit field signature of Injector.get() has been deprecated, in favor of the new options object.
  • The bit field signature of TestBed.inject() has been deprecated, in favor of the new options object.

core

Commit Description
feat - 841c8e5138 support object-based DI flags in Injector.get() (#46761)
feat - 120555a626 support object-based DI flags in TestBed.inject() (#46761)
fix - aef8d0bb02 correctly check for typeof of undefined in ngDevMode check (#47480)
fix - 85330f3fd9 update isDevMode to rely on ngDevMode (#47475)

language-service

Commit Description
feat - e7ee53c541 support to fix invalid banana in box (#47393)

router

Commit Description
fix - 6a88bad019 Ensure ActivatedRouteSnapshot#title has correct value (#47481)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Ashley Hunter, Doug Parker, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Rokas Brazdžionis, Simona Cotin and ivanwonder

14.2.4 (2022-09-28)

compiler-cli

Commit Description
perf - a4b66fe1e5 cache source file for reporting type-checking diagnostics (#47508)

core

Commit Description
fix - 2c46b5ab24 correctly check for typeof of undefined in ngDevMode check (#47480)

Special Thanks

Alan Agius, Ashley Hunter, Doug Parker, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Rokas Brazdžionis and Simona Cotin

15.0.0-next.3 (2022-09-21)

animations

Commit Description
fix - d11b1d99b0 make sure that the useAnimation function delay is applied (#47468)

compiler-cli

Commit Description
perf - 8fcadaad48 cache source file for reporting type-checking diagnostics (#47471)

Special Thanks

AleksanderBodurri, Andrew Kushnir, Andrew Scott, Bob Watson, George Kalpakas, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Mauro Mattos, Pawel Kozlowski, Sabareesh Kappagantu, angular-robot[bot], dario-piotrowicz, fabioemoutinho and famzila

14.2.3 (2022-09-21)

animations

Commit Description
fix - bba2dae812 make sure that the useAnimation function delay is applied (#47468)

Special Thanks

AleksanderBodurri, Andrew Kushnir, Andrew Scott, Bob Watson, George Kalpakas, Joey Perrott, Mauro Mattos, dario-piotrowicz, fabioemoutinho and famzila

15.0.0-next.2 (2022-09-14)

animations

Commit Description
fix - 7ec196e0fb make sure that the animation function delay is applied (#47285)

common

Commit Description
fix - ca7bf65933 rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362)

core

Commit Description
fix - 4e10a74941 imply @Optional flag when a default value is provided (#47242)

forms

Commit Description
fix - 4a13210ecd don't prevent default behavior for forms with method="dialog" (#47308)

Special Thanks

Abhishek Rawat, Andrew Kushnir, Benjamin Chanudet, Bob Watson, Dylan Hunn, George Kalpakas, Ikko Ashimine, Joey Perrott, Kristiyan Kostadinov, Marc Wrobel, Mariia Subkov, Pawel Kozlowski, Sebastian, abergquist, dario-piotrowicz, onrails and vyom1611

14.2.2 (2022-09-14)

animations

Commit Description
fix - 937e6c5b3d make sure that the animation function delay is applied (#47285)

common

Commit Description
fix - c9bdf9bab1 rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362) (#47396)

core

Commit Description
fix - a3e1303f04 imply @Optional flag when a default value is provided (#47242)

forms

Commit Description
fix - 80c66a1e57 don't prevent default behavior for forms with method="dialog" (#47308)

Special Thanks

Abhishek Rawat, Andrew Kushnir, Benjamin Chanudet, Bob Watson, George Kalpakas, Ikko Ashimine, Kristiyan Kostadinov, Marc Wrobel, Mariia Subkov, Pawel Kozlowski, Sebastian, abergquist, dario-piotrowicz, onrails and vyom1611

15.0.0-next.1 (2022-09-07)

Breaking Changes

compiler-cli

  • Angular compiler option enableIvy has been removed as Ivy is the only rendering engine.

localize

    • canParse method has been removed from all translation parsers in @angular/localize/tools. analyze should be used instead.
    • the hint parameter in theparse methods is now mandatory.

common

Commit Description
fix - 220d1203e6 improve formatting of image warnings (#47299)
fix - 93d7d9101e use DOCUMENT token to query for preconnect links (#47353)

compiler

Commit Description
fix - cf0c53aa1c avoid errors for inputs with Object-builtin names (#47220)

compiler-cli

Commit Description
refactor - 16f96eeabf remove enableIvy options (#47346)

localize

Commit Description
refactor - d36fd3d9e4 remove deprecated canParse method from TranslationParsers (#47275)

service-worker

Commit Description
fix - e1bb638e0b include headers in requests for assets (#47260)
fix - a0c3326485 only consider GET requests as navigation requests (#47263)

Special Thanks

Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Asaf M, Bingo's Code, Bob Watson, Daniel Ostrovsky, George Kalpakas, Giovanni Alberto Rivas, Jeremy Elbourn, JiaLiPassion, Jobayer Hossain, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Maina Wycliffe, Sabareesh Kappagantu, Simona Cotin, Sonu Sindhu, Yann Provoost, abergquist, angular-robot[bot], jaybell and vyom1611

14.2.1 (2022-09-07)

common

Commit Description
fix - c0d7ac9ec2 improve formatting of image warnings (#47299)
fix - 1875ce520a use DOCUMENT token to query for preconnect links (#47353)

compiler

Commit Description
fix - 0e35829580 avoid errors for inputs with Object-builtin names (#47220)

service-worker

Commit Description
fix - 6091786696 include headers in requests for assets (#47260)
fix - 28d33505fd only consider GET requests as navigation requests (#47263)

Special Thanks

Aristeidis Bampakos, Asaf M, Bingo's Code, Bob Watson, Daniel Ostrovsky, George Kalpakas, Giovanni Alberto Rivas, Jeremy Elbourn, Jobayer Hossain, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Maina Wycliffe, Sabareesh Kappagantu, Simona Cotin, Sonu Sindhu, Yann Provoost, abergquist, jaybell and vyom1611

15.0.0-next.0 (2022-08-25)

common

Commit Description
fix - 8abf1c844c fix formatting on oversized image error (#47188)
fix - b3879dbf14 support density descriptors with 2+ decimals (#47197)

router

Commit Description
feat - 5163e3d876 Add UrlTree constructor to public API (#47186)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Scott, Joey Perrott, Kara Erickson, Kristiyan Kostadinov and Pawel Kozlowski

14.2.0 (2022-08-25)

animations

Commit Description
fix - b96e571897 fix stagger timing not handling params (#47208)

common

Commit Description
feat - b380fdd59e add a density cap for image srcsets (#47082)
feat - 7ce497e5bc add built-in Imgix loader (#47082)
feat - bff870db61 add cloudflare loader (#47082)
feat - 86e77a5d55 add Image directive skeleton (#45627) (#47082)
feat - 0566205a02 Add image lazy loading and fetchpriority (#47082)
feat - 4e952ba216 add loaders for cloudinary & imagekit (#47082)
feat - e854a8cdde add loading attr to NgOptimizedImage (#47082)
feat - 8d3701cb4c add warnings re: image distortion (#47082)
feat - d5f7da2120 define public API surface for NgOptimizedImage directive (#47082)
feat - d3c3426aa4 detect LCP images in NgOptimizedImage and assert if priority is set (#47082)
feat - 451b85ca17 explain why width/height is required (#47082)
feat - 586274fe65 provide an ability to exclude origins from preconnect checks in NgOptimizedImage (#47082)
feat - 57f3386e5b support custom srcset attributes in NgOptimizedImage (#47082)
feat - 7baf9a46cd verify that priority images have preconnect links (#47082)
feat - f81765b333 warn if rendered size is much smaller than intrinsic (#47082)
fix - e2ab99b95e allow null/undefined to be passed to ngClass input (#39280) (#46906)
fix - bedf537951 allow null/undefined to be passed to ngStyle input (#47069)
fix - f9511bf6e8 avoid interacting with a destroyed injector (#47243)
fix - dc29e21b14 consider density descriptors with multiple digits as valid (#47230)
fix - 801daf82d1 detect data: and blob: inputs in NgOptimizedImage directive (#47082)
fix - fff8056e7f fix formatting on oversized image error (#47188) (#47232)
fix - 1ca2ce19ab remove default for image width (#47082)
fix - c5db867ddc remove duplicate deepForEach (#47189)
fix - 1cf43deb18 sanitize rawSrc and rawSrcset values in NgOptimizedImage directive (#47082)
fix - d71dfe931f set bound width and height onto host element (#47082)
fix - 32caa8b669 support density descriptors with 2+ decimals (#47197) (#47232)
fix - ae4405f0bf throw if srcset is used with rawSrc (#47082)
perf - 0c8eb8bc82 monitor LCP only for images without priority attribute (#47082)

compiler-cli

Commit Description
feat - ea89677c12 support more recent version of tsickle (#47018)

core

Commit Description
feat - d1e83e1b30 add createComponent function (#46685)
feat - 10becab70e add reflectComponentType function (#46685)
feat - 4b377d3a6d introduce createApplication API (#46475)
feat - 31429eaccc support TypeScript 4.8 (#47038)
fix - 796840209c align TestBed interfaces and implementation (#46635)

forms

Commit Description
feat - 426af91a42 add FormBuilder.record() method (#46485)
fix - b302797de4 Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034)

language-service

Commit Description
feat - 598b72bd05 support fix the component missing member (#46764)

platform-browser

Commit Description
feat - 07606e3181 add isEmpty method to the TransferState class (#46915)

platform-server

Commit Description
feat - 2b4d7f6733 support document reference in render functions (#47032)

router

Commit Description
feat - 0abb67af59 allow guards and resolvers to be plain functions (#46684)
feat - 75df404467 Create APIs for using Router without RouterModule (#47010)
feat - 10289f1f6e expose resolved route title (#46826)
feat - 8600732b09 Expose the default matcher for Routes used by the Router (#46913)
feat - 422323cee0 improve typings for RouterLink boolean inputs (#47101)
feat - 26ea97688c Make router directives standalone (#46758)
fix - 2a43beec15 Fix route recognition behavior with some versions of rxjs (#47098)

service-worker

Commit Description
feat - 383090858c support sendRequest as a notificationclick action (#46912)
fix - 3f548610dd export NoNewVersionDetectedEvent (#47044)
fix - 482b6119c2 update golden index.md (#47044)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Cédric Exbrayat, Dylan Hunn, Emmanuel Roux, FatalMerlin, George Kalpakas, Ilia Mirkin, Jan Kuehle, Jeremy Elbourn, Jessica Janiuk, JiaLiPassion, Kalbarczyk, Kara Erickson, Katie Hempenius, Kristiyan Kostadinov, Merlin, Paul Gschwendtner, Pawel Kozlowski, Tristan Sprößer, Victor Porof, angular-robot[bot], dario-piotrowicz, ivanwonder and vyom

14.2.0-rc.0 (2022-08-17)

common

Commit Description
feat - b380fdd59e add a density cap for image srcsets (#47082)
feat - 7ce497e5bc add built-in Imgix loader (#47082)
feat - bff870db61 add cloudflare loader (#47082)
feat - 86e77a5d55 add Image directive skeleton (#45627) (#47082)
feat - 0566205a02 Add image lazy loading and fetchpriority (#47082)
feat - 4e952ba216 add loaders for cloudinary & imagekit (#47082)
feat - e854a8cdde add loading attr to NgOptimizedImage (#47082)
feat - 8d3701cb4c add warnings re: image distortion (#47082)
feat - d5f7da2120 define public API surface for NgOptimizedImage directive (#47082)
feat - d3c3426aa4 detect LCP images in NgOptimizedImage and assert if priority is set (#47082)
feat - 451b85ca17 explain why width/height is required (#47082)
feat - 586274fe65 provide an ability to exclude origins from preconnect checks in NgOptimizedImage (#47082)
feat - 57f3386e5b support custom srcset attributes in NgOptimizedImage (#47082)
feat - 7baf9a46cd verify that priority images have preconnect links (#47082)
feat - f81765b333 warn if rendered size is much smaller than intrinsic (#47082)
fix - 801daf82d1 detect data: and blob: inputs in NgOptimizedImage directive (#47082)
fix - 1ca2ce19ab remove default for image width (#47082)
fix - 1cf43deb18 sanitize rawSrc and rawSrcset values in NgOptimizedImage directive (#47082)
fix - d71dfe931f set bound width and height onto host element (#47082)
fix - ae4405f0bf throw if srcset is used with rawSrc (#47082)
perf - 0c8eb8bc82 monitor LCP only for images without priority attribute (#47082)

compiler

Commit Description
fix - dc52cef26b infinite loop in parser assignment expression with invalid left-hand expression (#47151)

core

Commit Description
feat - 31429eaccc support TypeScript 4.8 (#47038)

forms

Commit Description
fix - b302797de4 Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034)

router

Commit Description
feat - 75df404467 Create APIs for using Router without RouterModule (#47010)
feat - 422323cee0 improve typings for RouterLink boolean inputs (#47101)

Special Thanks

AlirezaEbrahimkhani, Alma Eyre, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, Emmanuel Roux, George Kalpakas, Kalbarczyk, Kara Erickson, Katie Hempenius, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich and Sonu Kapoor

14.1.3 (2022-08-17)

compiler

Commit Description
fix - 0583227708 infinite loop in parser assignment expression with invalid left-hand expression (#47151)

Special Thanks

AlirezaEbrahimkhani, Alma Eyre, Andrew Scott, Bob Watson, George Kalpakas, Kalbarczyk, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Roman Matusevich and Sonu Kapoor

14.2.0-next.1 (2022-08-10)

common

Commit Description
fix - bedf537951 allow null/undefined to be passed to ngStyle input (#47069)

compiler-cli

Commit Description
feat - ea89677c12 support more recent version of tsickle (#47018)

core

Commit Description
fix - dbed2cf079 check if transplanted views are attached to change detector (#46974)

platform-server

Commit Description
feat - 2b4d7f6733 support document reference in render functions (#47032)

router

Commit Description
feat - 0abb67af59 allow guards and resolvers to be plain functions (#46684)
fix - 2a43beec15 Fix route recognition behavior with some versions of rxjs (#47098)

Special Thanks

4javier, Andrew Kushnir, Andrew Scott, AntonioCardenas, Bob Watson, Bruno Barbosa, Eduardo Speroni, Edward, George Kalpakas, Ilia Mirkin, Jan Melcher, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Mladen Jakovljević, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich, Victor Porof, Vovch, ashide2729, ileil and onrails

14.1.2 (2022-08-10)

core

Commit Description
fix - 5ff715c549 check if transplanted views are attached to change detector (#46974)

router

Commit Description
fix - 439d77e852 Fix route recognition behavior with some versions of rxjs (#47098) (#47112)

Special Thanks

4javier, Andrew Kushnir, Andrew Scott, AntonioCardenas, Bob Watson, Bruno Barbosa, Eduardo Speroni, Edward, George Kalpakas, Jan Melcher, Kristiyan Kostadinov, Mladen Jakovljević, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich, Vovch, ashide2729, ileil and onrails

14.2.0-next.0 (2022-08-03)

common

Commit Description
fix - e2ab99b95e allow null/undefined to be passed to ngClass input (#39280) (#46906)

core

Commit Description
feat - d1e83e1b30 add createComponent function (#46685)
feat - 10becab70e add reflectComponentType function (#46685)
feat - 4b377d3a6d introduce createApplication API (#46475)
fix - 796840209c align TestBed interfaces and implementation (#46635)

forms

Commit Description
feat - 426af91a42 add FormBuilder.record() method (#46485)

language-service

Commit Description
feat - 598b72bd05 support fix the component missing member (#46764)

platform-browser

Commit Description
feat - 07606e3181 add isEmpty method to the TransferState class (#46915)

router

Commit Description
feat - 10289f1f6e expose resolved route title (#46826)
feat - 8600732b09 Expose the default matcher for Routes used by the Router (#46913)
feat - 26ea97688c Make router directives standalone (#46758)

service-worker

Commit Description
feat - 383090858c support sendRequest as a notificationclick action (#46912)

Special Thanks

Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Emmanuel Roux, George Kalpakas, Ilia Mirkin, Jessica Janiuk, Paul Gschwendtner, Pawel Kozlowski, Tristan Sprößer, angular-robot[bot], dario-piotrowicz and ivanwonder

14.1.1 (2022-08-03)

core

Commit Description
fix - 3606917732 improve the missing control flow directive message (#46903)

router

Commit Description
fix - 79825d3f10 Do not call preload method when not necessary (#47007)
fix - 05f3f7445a Use correct return type for provideRoutes function (#46941)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Quinn, Andrew Scott, Aristeidis Bampakos, Asaf M, Bob Watson, Cédric Exbrayat, Durairaj Subramaniam, George Kalpakas, Ivaylo Kirov, J Rob Gant, Kristiyan Kostadinov, Marek Hám, Paul Gschwendtner, Roman Matusevich and Simona Cotin

14.1.0 (2022-07-20)

Deprecations

core

  • The createNgModuleRef is deprecated in favor of newly added createNgModule one.
  • The bit field signature of inject() has been deprecated, in favor of the
    new options object. Correspondingly, InjectFlags is deprecated as well.

animations

Commit Description
feat - 55308f2df5 add provideAnimations() and provideNoopAnimations() functions (#46793)

common

Commit Description
feat - 4a2e7335b1 make the CommonModule pipes standalone (#46401)
feat - a7597dd080 make the CommonModule directives standalone (#46469)

compiler

Commit Description
feat - 33ce3883a5 Add extended diagnostic to warn when missing let on ngForOf (#46683)
feat - 6f11a58040 Add extended diagnostic to warn when text attributes are intended to be bindings (#46161)
feat - 9e836c232f warn when style suffixes are used with attribute bindings (#46651)

compiler-cli

Commit Description
feat - 93c65e7b14 add extended diagnostic for non-nullable optional chains (#46686)
feat - 131d029da1 detect missing control flow directive imports in standalone components (#46146)
fix - 6b8e60c06a improve the missingControlFlowDirective message (#46846)

core

Commit Description
feat - e8e8e5f171 add createComponent function
feat - b5153814af add reflectComponentType function
feat - 96c6139c9a add ability to set inputs on ComponentRef (#46641)
feat - a6d5fe202c alias createNgModuleRef as createNgModule (#46789)
feat - 71e606d3c3 expose EnvironmentInjector on ApplicationRef (#46665)
feat - 19e6d9ccd3 import AsyncStackTaggingZone if available (#46693)
feat - a7a14df5f8 introduce EnvironmentInjector.runInContext API (#46653)
feat - fa52b6e906 options object to supersede bit flags for inject() (#46649)
feat - af20112222 support the descendants option for ContentChild queries (#46638)
fix - 945a3ad359 Fix runInContext for NgModuleRef injector (#46877)
fix - bb7c80477b make parent injector argument required in createEnvironmentInjector (#46397)

http

Commit Description
feat - 82acbf919b improve error message for nullish header (#46059)

router

Commit Description
feat - 53ca936366 Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877)
feat - de058bba99 Add CanMatch guard to control whether a Route should match (#46021)
feat - 6c1357dd7d Add stable cancelation code to NavigationCancel event (#46675)
feat - a4ce273e50 Add the target RouterStateSnapshot to NavigationError (#46731)
fix - abe3759e24 allow to return UrlTree from CanMatchFn (#46455)
fix - e8c7dd10e9 Ensure APP_INITIALIZER of enabledBlocking option completes (#46026)
fix - ce20ed067f Ensure Route injector is created before running CanMatch guards (#46394)
fix - 6a7b818d94 Ensure target RouterStateSnapshot is defined in NavigationError (#46842)
fix - f94c6f433d Expose CanMatchFn as public API (#46394)
fix - e8ae0fe3e9 Fix cancellation code for canLoad rejections (#46752)

upgrade

Commit Description
feat - e9cb0454dc more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214)

Special Thanks

AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Jessica Janiuk, JiaLiPassion, Joey Perrott, John Vandenberg, JoostK, Keith Li, Or'el Ben-Ya'ir, Paul Gschwendtner, Pawel Kozlowski, SyedAhm3r, arturovt, mariu, markostanimirovic and mgechev

14.0.7 (2022-07-20)

animations

Commit Description
fix - 5bdbb6285b make sure falsy values are added to _globalTimelineStyles (#46863)

compiler

Commit Description
fix - 41253f9c46 inputs/outputs incorrectly parsed in jit mode (#46813)

core

Commit Description
fix - 4e77c7fbf3 do not invoke jasmine done callback multiple times with waitForAsync

Special Thanks

Andrew Kushnir, Andrew Scott, Bob Watson, Cédric Exbrayat, Doug Parker, George Kalpakas, Jessica Janiuk, Kristiyan Kostadinov, Paul Gschwendtner, acvi, dario-piotrowicz, jnizet and piyush132000

14.1.0-rc.0 (2022-07-13)

Deprecations

core

  • The createNgModuleRef is deprecated in favor of newly added createNgModule one.

animations

Commit Description
feat - 55308f2df5 add provideAnimations() and provideNoopAnimations() functions (#46793)

compiler

Commit Description
feat - 33ce3883a5 Add extended diagnostic to warn when missing let on ngForOf (#46683)
feat - 9e836c232f warn when style suffixes are used with attribute bindings (#46651)

compiler-cli

Commit Description
feat - 93c65e7b14 add extended diagnostic for non-nullable optional chains (#46686)
fix - 93d17ee888 only consider used pipes for inline type-check requirement (#46807)

core

Commit Description
feat - a6d5fe202c alias createNgModuleRef as createNgModule (#46789)
feat - 71e606d3c3 expose EnvironmentInjector on ApplicationRef (#46665)
feat - 19e6d9ccd3 import AsyncStackTaggingZone if available (#46693)

forms

Commit Description
fix - c0ca3fc71a expose ControlConfig in public API (#46594)
fix - e9b5dac9ec Move all remaining errors in Forms to use RuntimeErrorCode. (#46654)

localize

Commit Description
fix - 392c56749a add --project option to ng-add schematic (#46664)

router

Commit Description
feat - a4ce273e50 Add the target RouterStateSnapshot to NavigationError (#46731)
fix - e8ae0fe3e9 Fix cancellation code for canLoad rejections (#46752)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, George Kalpakas, Ivaylo Kirov, Jessica Janiuk, JiaLiPassion, John Vandenberg, JoostK, Joshua VanAllen, Lukas Matta, Marcin Wosinek, Nicolas Molina Monroy, Or'el Ben-Ya'ir, Paul Gschwendtner, Pawel Kozlowski, SoulsMark, Uday Sony, dario-piotrowicz, markostanimirovic and zhysky

14.0.6 (2022-07-13)

compiler-cli

Commit Description
fix - 99697dae66 only consider used pipes for inline type-check requirement (#46807)

forms

Commit Description
fix - 4f469cbef3 expose ControlConfig in public API (#46594)
fix - e8c8b695f2 Move all remaining errors in Forms to use RuntimeErrorCode. (#46654)

localize

Commit Description
fix - 14863acb1a add --project option to ng-add schematic (#46664)

Special Thanks

Alan Agius, Andrew Scott, Bob Watson, Dylan Hunn, George Kalpakas, Ivaylo Kirov, Jessica Janiuk, JoostK, Joshua VanAllen, Lukas Matta, Marcin Wosinek, Nicolas Molina Monroy, Paul Gschwendtner, SoulsMark, Uday Sony, dario-piotrowicz, markostanimirovic and zhysky

14.1.0-next.4 (2022-07-06)

Deprecations

core

  • The bit field signature of inject() has been deprecated, in favor of the
    new options object. Correspondingly, InjectFlags is deprecated as well.

compiler

Commit Description
feat - 6f11a58040 Add extended diagnostic to warn when text attributes are intended to be bindings (#46161)

core

Commit Description
feat - 96c6139c9a add ability to set inputs on ComponentRef (#46641)
feat - a7a14df5f8 introduce EnvironmentInjector.runInContext API (#46653)
feat - fa52b6e906 options object to supersede bit flags for inject() (#46649)
feat - af20112222 support the descendants option for ContentChild queries (#46638)

router

Commit Description
feat - 6c1357dd7d Add stable cancelation code to NavigationCancel event (#46675)
fix - e8c7dd10e9 Ensure APP_INITIALIZER of enabledBlocking option completes (#46026)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Scott, Aristeidis Bampakos, Bob Watson, George Kalpakas, Paul Gschwendtner and Pawel Kozlowski

14.0.5 (2022-07-06)

router

Commit Description
fix - a3bd65e2b8 Ensure APP_INITIALIZER of enabledBlocking option completes (#46634)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, George Kalpakas, Paul Gschwendtner and Pawel Kozlowski

14.1.0-next.3 (2022-06-29)

animations

Commit Description
fix - 4eb1ca11f0 cleanup DOM elements when the root view is removed (#45143)
fix - b417370383 enable shadowElements to leave when their parent does (#46459)

common

Commit Description
feat - 4a2e7335b1 make the CommonModule pipes standalone (#46401)
feat - a7597dd080 make the CommonModule directives standalone (#46469)
fix - 1c39aace0e handle CSS custom properties in NgStyle (#46451)

core

Commit Description
fix - 8b6f4215a3 trigger ApplicationRef.destroy when Platform is destroyed (#46497)
fix - 606d94299a Update ngfor error code to be negative (#46555)
fix - f86e0948f8 Updates error to use RuntimeError code (#46526)

forms

Commit Description
fix - 0a5c8c0bc4 Convert existing reactive errors to use RuntimeErrorCode. (#46560)
fix - f6a096e3d4 Update a Forms validator error to use RuntimeError (#46537)

router

Commit Description
fix - ee39cf62bc Ensure that new RouterOutlet instances work after old ones are destroyed (#46554)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bezael, Chad Ramos, Chellappan, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Jeremy Meiss, Jessica Janiuk, Joey Perrott, KMathy, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ramesh Thiruchelvam, Vaibhav Kumar, arturovt, dario-piotrowicz and renovate[bot]

14.0.4 (2022-06-29)

animations

Commit Description
fix - 51be9bbe29 cleanup DOM elements when the root view is removed (#45143)
fix - 999aca86c8 enable shadowElements to leave when their parent does (#46459)

common

Commit Description
fix - 42aed6b13e handle CSS custom properties in NgStyle (#46451)

core

Commit Description
fix - 1e7f22f00a trigger ApplicationRef.destroy when Platform is destroyed (#46497)
fix - 8bde2dbc71 Update ngfor error code to be negative (#46555)
fix - 57e8fc00eb Updates error to use RuntimeError code (#46526)

forms

Commit Description
fix - 74a26d870e Convert existing reactive errors to use RuntimeErrorCode. (#46560)
fix - 747872212d Update a Forms validator error to use RuntimeError (#46537)

router

Commit Description
fix - d6fac9e914 Ensure that new RouterOutlet instances work after old ones are destroyed (#46554)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bezael, Chad Ramos, Chellappan, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Jeremy Meiss, Jessica Janiuk, Joey Perrott, KMathy, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ramesh Thiruchelvam, Vaibhav Kumar, arturovt, dario-piotrowicz and renovate[bot]

14.1.0-next.2 (2022-06-22)

animations

Commit Description
fix - 342effeb7d reset the start and done fns on player reset (#46364)

core

Commit Description
fix - ddd6d66203 deduplicate imports of standalone components in JIT compiler (#46439)
fix - 3d8787c961 handle NgModules with standalone pipes in TestBed correctly (#46407)
fix - bb7c80477b make parent injector argument required in createEnvironmentInjector (#46397)

http

Commit Description
feat - 82acbf919b improve error message for nullish header (#46059)

platform-server

Commit Description
fix - 08d3db232c invalid style attribute being generated for null values (#46433)

router

Commit Description
fix - abe3759e24 allow to return UrlTree from CanMatchFn (#46455)
fix - ce20ed067f Ensure Route injector is created before running CanMatch guards (#46394)
fix - f94c6f433d Expose CanMatchFn as public API (#46394)

Special Thanks

4javier, Aakash, Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Dany Paredes, Derek Cormier, Dmitrij Kuba, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ramesh Thiruchelvam, arturovt, behrooz bozorg chami, dario-piotrowicz, markostanimirovic, renovate[bot] and web-dave

14.0.3 (2022-06-22)

animations

Commit Description
fix - 3dd7bb3f8f reset the start and done fns on player reset (#46364)

core

Commit Description
fix - c086653655 deduplicate imports of standalone components in JIT compiler (#46439)
fix - 5d3b97e1f8 handle NgModules with standalone pipes in TestBed correctly (#46407)

platform-server

Commit Description
fix - 6ad7b40a6f invalid style attribute being generated for null values (#46433)

Special Thanks

4javier, Aakash, Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Dany Paredes, Derek Cormier, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ramesh Thiruchelvam, behrooz bozorg chami, dario-piotrowicz, markostanimirovic, renovate[bot] and web-dave

14.1.0-next.1 (2022-06-15)

common

Commit Description
fix - 8b9c32d4dc allow null in ngComponentOutlet (#46280)

compiler-cli

Commit Description
feat - 131d029da1 detect missing control flow directive imports in standalone components (#46146)
fix - 04acc6b14d don't emit empty providers array (#46301)
fix - f35f4751b5 use inline type-check blocks for components outside rootDir (#46096)

core

Commit Description
fix - b1a3dec58d Resolve forwardRef declarations for jit (#46334)

router

Commit Description
feat - de058bba99 Add CanMatch guard to control whether a Route should match (#46021)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Badawi7, Daniel Schmitz, Derek Cormier, Jessica Janiuk, JiaLiPassion, JoostK, Kevin Davila, Kristiyan Kostadinov, Paul Draper, Paul Gschwendtner, Tom Eustace, Totati, Younes Jaaidi, alefra, dario-piotrowicz, markostanimirovic, mgechev, piyush132000, sten-bone and vivekkoya

14.0.2 (2022-06-15)

common

Commit Description
fix - ef5cba3df7 allow null in ngComponentOutlet (#46280)

compiler-cli

Commit Description
fix - 8ecfd71fd7 don't emit empty providers array (#46301)
fix - b92c1a6ada use inline type-check blocks for components outside rootDir (#46096)

core

Commit Description
fix - 3fd8948b4a Resolve forwardRef declarations for jit (#46334)

Special Thanks

Alex Rickabaugh, Andrew Scott, Badawi7, Daniel Schmitz, Derek Cormier, JoostK, Kevin Davila, Kristiyan Kostadinov, Paul Draper, Paul Gschwendtner, Tom Eustace, Totati, Younes Jaaidi, alefra, dario-piotrowicz, markostanimirovic, mgechev, piyush132000, sten-bone and vivekkoya

14.1.0-next.0 (2022-06-08)

router

Commit Description
feat - 53ca936366 Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877)

upgrade

Commit Description
feat - e9cb0454dc more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214)

Special Thanks

AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Jessica Janiuk, Joey Perrott, Keith Li, SyedAhm3r, mariu and mgechev

14.0.1 (2022-06-08)

bazel

Commit Description
fix - b00d237c0e update API extractor version (#46259)
perf - 9a0a7bac21 reduce input files for ng_package rollup and type bundle actions (#46187)

forms

Commit Description
fix - dde0b7f4b3 allow FormBuilder.group(...) to accept optional fields. (#46253)

Special Thanks

Adrien Crivelli, Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dylan Hunn, Fabrizio Fallico, George Kalpakas, Jelle Bruisten, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Paul Gschwendtner, Phalgun Vaddepalli, San Leen, dario-piotrowicz, mgechev and wellWINeo

14.0.0 (2022-06-02)

Breaking Changes

animations

  • The AnimationDriver.getParentElement method has become required, so any
    implementors of this interface are now required to provide an implementation
    for this method. This breakage is unlikely to affect application developers,
    as AnimationDriver is not expected to be implemented in user code.

common

  • Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
    Location does not depend on PlatformLocation anymore.

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.
  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

core

  • Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.

  • TypeScript versions older than 4.6 are no longer supported.

  • Forms [email] input coercion

    Forms [email] input value will be considered as true if it is defined with any value rather
    than false and 'false'.

  • Since Ivy, TestBed doesn't use AOT summaries. The aotSummaries fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The aotSummaries fields were completely unused, so you can just drop them from the TestBed APIs usage.

forms

  • Forms classes accept a generic.

    Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.

  • objects with a length key set to zero will no longer validate as empty.

    This is technically a breaking change, since objects with a key length and value 0 will no longer validate as empty. This is a very minor change, and any reliance on this behavior is probably a bug anyway.

http

  • Queries including + will now actually query for + instead of space.
    Most workarounds involving custom codecs will be unaffected.
    Possible server-side workarounds will need to be undone.

  • JSONP will throw an error when headers are set on a reques

    JSONP does not support headers being set on requests. Before when
    a request was sent to a JSONP backend that had headers set the headers
    were ignored. The JSONP backend will now throw an error if it
    receives a request that has any headers set. Any uses of JSONP
    on requests with headers set will need to remove the headers
    to avoid the error.

platform-browser

  • This change may cause a breaking change in unit tests that are implicitly depending on a specific
    number and sequence of change detections in order for their assertions to pass.

  • This may break invalid calls to TransferState methods.

    This tightens parameter types of TransferState usage, and is a minor breaking change which may reveal existing problematic calls.

router

  • The type of Route.pathMatch is now more strict. Places that use
    pathMatch will likely need to be updated to have an explicit
    Route/Routes type so that TypeScript does not infer the type as
    string.

  • When returning a Promise from the
    LoadChildrenCallback, the possible type is now restricted to
    Type<any>|NgModuleFactory<any> rather than any.

  • initialNavigation: 'enabled' was deprecated in v11 and is replaced by
    initialNavigation: 'enabledBlocking'.

  • The type of component on ActivatedRoute and ActivatedRouteSnapshot
    includes string. In reality, this is not the case. The component
    cannot be anything other than a component class.

    • The type of initialUrl is set to string|UrlTree but in reality,
      the Router only sets it to a value that will always be UrlTree
    • initialUrl is documented as "The target URL passed into the
      Router#navigateByUrl() call before navigation" but the value
      actually gets set to something completely different. It's set to the
      current internal UrlTree of the Router at the time navigation
      occurs.

    With this change, there is no exact replacement for the old value of
    initialUrl because it was enver intended to be exposed.
    Router.url is likely the best replacement for this.
    In more specific use-cases, tracking the finalUrl between successful
    navigations can also be used as a replacement.

  • Lazy loaded configs are now also validated once loaded like the
    initial set of routes are. Lazy loaded modules which have invalid Route
    configs will now error. Note that this is only done in dev mode so
    there is no production impact of this change.

  • When a guard returns a UrlTree, the router would previously schedule
    the redirect navigation within a setTimeout. This timeout is now removed,
    which can result in test failures due to incorrectly written tests.
    Tests which perform navigations should ensure that all timeouts are
    flushed before making assertions. Tests should ensure they are capable
    of handling all redirects from the original navigation.

  • Previously, resolvers were waiting to be completed
    before proceeding with the navigation and the Router would take the last
    value emitted from the resolver.
    The router now takes only the first emitted value by the resolvers
    and then proceeds with navigation. This is now consistent with Observables
    returned by other guards: only the first value is used.

zone.js

  • in TaskTrackingZoneSpec track a periodic task until it is cancelled

    The breaking change is scoped only to the plugin
    zone.js/plugins/task-tracking. If you used TaskTrackingZoneSpec and
    checked the pending macroTasks e.g. using (this.ngZone as any)._inner ._parent._properties.TaskTrackingZone.getTasksFor('macroTask'), then
    its behavior slightly changed for periodic macrotasks. For example,
    previously the setInterval macrotask was no longer tracked after its
    callback was executed for the first time. Now it's tracked until
    the task is explicitly cancelled, e.g with clearInterval(id).

    fixes 45350

Deprecations

common

  • The ngModuleFactory input of the NgComponentOutlet directive is deprecated in favor of a newly added ngModule input. The ngModule input accepts references to the NgModule class directly, without the need to resolve module factory first.

forms

  • The initialValueIsDefault option has been deprecated and replaced with the otherwise-identical nonNullable option, for the sake of naming consistency.
  • It is now deprecated to provide both AbstractControlOptions and an async validators argument to a FormControl. Previously, the async validators would just be silently dropped, resulting in a probably buggy forms. Now, the constructor call is deprecated, and Angular will print a warning in devmode.

router

  • The resolver argument of the RouterOutletContract.activateWith function and the resolver field of the OutletContext class are deprecated. Passing component factory resolvers are no longer needed. The ComponentFactoryResolver-related symbols were deprecated in @angular/core package since v13.

animations

Commit Description
feat - a6fa37bc6e make validateStyleProperty check dev-mode only (#45570)
feat - 79d334b138 provide warnings for non-animatable CSS properties (#45212)
fix - f8dc660605 allow animations with unsupported CSS properties (#44729)
fix - 2a75754ee8 apply default params when resolved value is null or undefined (#45339)
fix - e46b379204 implement missing transition delay (#44799)
perf - 5c7c56bc85 improve algorithm to balance animation namespaces (#45057)
perf - 4c778cdb28 made errors in the animations package tree shakeable (#45004)
perf - 7a81481fb2 Remove generic objects in favor of Maps (#44482)
perf - 6642e3c8fd remove no longer needed CssKeyframes classes (#44903)
refactor - 59559fdbac make AnimationDriver.getParentElement required (#45114)

bazel

Commit Description
feat - 636909fba7 allow for generated package.json files in ng_package (#45470)
feat - 28e835b4bb report error when dependency does not provide JS sources in ng_package (#45470)
feat - 68597bb0ca speed up dev-turnaround by bundling types only when packaging (#45405)
fix - f8a1ea0c11 do not error if files part of srcs are outside of package (#45622)
fix - 4b2e98d55d remove unnecessary file extractions from ng_package (#45470)
fix - d48e0ccc01 speed up d.ts bundling by configuring worker (#45900)
perf - 21a04ef5be use allowedInputs to avoid fs.stat (#46069)

common

Commit Description
feat - 31d7c3bd71 add getState method to LocationStrategy interface (#45648)
feat - c89cf63059 support NgModule as an input to the NgComponentOutlet (#44815)
feat - 38c03a2035 support years greater than 9999 (#43622)
fix - bedb257afc cleanup URL change listeners when the root view is removed (#44901)
fix - 10691c626b properly cast http param values to strings (#42643)
perf - 05d50b849b make NgLocalization token tree-shakable (#45118)

compiler

Commit Description
fix - bb8d7091c6 exclude empty styles from emitted metadata (#45459)
fix - 4d6a1d6722 scope css keyframes in emulated view encapsulation (#42608)
fix - f03e313f24 scope css keyframes in emulated view encapsulation (#42608)

compiler-cli

Commit Description
feat - 9cf14ff03d exclude abstract classes from strictInjectionParameters requirement (#44615)
feat - 0072eb48ba initial implementation of standalone components (#44812)
feat - 2142ffd295 propagate standalone flag to runtime (#44973)
feat - 6f653e05f9 standalone types imported into NgModule scopes (#44973)
feat - 752ddbc165 Support template binding to protected component members (#45823)
fix - 3d13343975 better error messages for NgModule structural issues (#44973)
fix - 046dad1a8d fix issue with incremental tracking of APIs for pipes (#45672)
fix - 27b4af7240 full side-effectful registration of NgModules with ids (#45024)
fix - 32c625d027 handle forwardRef in imports of standalone component (#45869)
fix - 06050ac2b4 handle inline type-check blocks in nullish coalescing extended check (#45454)
fix - a524a50361 handle standalone components with cycles (#46029)
fix - 724e88e042 preserve forwardRef for component scopes (#46139)
fix - 9cfea3d522 report invalid imports in standalone components during resolve phase (#45827)
fix - c0778b4dfc Support resolve animation name from the DTS (#45107)
fix - f2e5234e07 update unknown tag error for aot standalone components (#45919)
fix - 35f20afcac use existing imports for standalone dependencies (#46029)
perf - 8155428ba6 ignore the module.id anti-pattern for NgModule ids (#45024)

core

Commit Description
feat - 174ce7dd13 add ApplicationRef.destroy method (#45624)
feat - 5771b18a98 add the bootstrapApplication function (#45674)
feat - 69018c9f42 allow for injector to be specified when creating an embedded view (#45156)
feat - 94c949a60a allow for injector to be specified when creating an embedded view (#45156)
feat - e702cafcf2 allow to throw on unknown elements in tests (#45479)
feat - 6662a97c61 allow to throw on unknown elements in tests (#45479)
feat - a6675925b0 allow to throw on unknown properties in tests (#45853)
feat - 6eaaefd22e drop support for Node.js 12 (#45286)
feat - c9d566ce4b drop support for TypeScript 4.4 and 4.5 (#45394)
feat - b568a5e708 implement importProvidersFrom function (#45626)
feat - d5a6cd1111 implement EnvironmentInjector with adapter to NgModuleRef (#45626)
feat - 5a10fc4f82 implement standalone directives, components, and pipes (#45687)
feat - e461f716d4 move ANIMATION_MODULE_TYPE injection token into core (#44970)
feat - 94bba76a4a support TypeScript 4.6 (#45190)
feat - 29039fcdbc support TypeScript 4.7 (#45749)
feat - 225e4f2dbe triggerEventHandler accept optional eventObj (#45279)
feat - 401dec46eb update TestBed to recognize Standalone Components (#45809)
fix - 35653ce337 add more details to the MISSING_INJECTION_CONTEXT error (#46166)
fix - d36fa111eb avoid Closure Compiler error in restoreView (#45445)
fix - 0bc77f4cab better error message when unknown property is present (#46147)
fix - f3eb7d9ecb Ensure the StandaloneService is retained after closure minification (#45783)
fix - 701405fa71 handle AOT-compiled standalone components in TestBed correctly (#46052)
fix - ddce357d1d improve TestBed declarations standalone error message (#45999)
fix - ba9f30c9a6 include component name into unknown element/property error message (#46160)
fix - 9fa6f5a552 incorrectly inserting elements inside template element (#43429)
fix - d5719c2e0f input coercion (#42803)
fix - be161bef79 memory leak in event listeners inside embedded views (#43075)
fix - fa755b2a54 prevent BrowserModule providers from being loaded twice (#45826)
fix - 3172b4cc99 produce proper error message for unknown props on <ng-template>s (#46068)
fix - 4f1a813596 restore NgModule state correctly after TestBed overrides (#46049)
fix - 3f7ecec59b set correct context for inject() for component ctors (#45991)
fix - 4e413d9240 support nested arrays of providers in EnvironmentInjector (#45789)
fix - fde4942cdf throw if standalone components are present in @NgModule.bootstrap (#45825)
fix - 560188bf12 update unknown property error to account for standalone components in AOT (#46159)
fix - df339d8abf update unknown tag error for jit standalone components (#45920)
fix - aafac7228f verify standalone component imports in JiT (#45777)
perf - e9317aee71 allow checkNoChanges mode to be tree-shaken in production (#45913)
perf - 071c8af8ba avoid storing LView in ngContext (#45051)
perf - a96c4827c4 make Compiler, ApplicationRef and ApplicationInitStatus tree-shakable (#45102)
perf - 45d98e7ca5 make IterableDiffers and KeyValueDiffers tree-shakable (#45094)
perf - 1e60fe0a3e make LOCALE_ID and other tokens from ApplicationModule tree-shakable (#45102)
perf - 88f1168506 only track LViews that are referenced in ngContext (#45172)
refactor - 9add714b13 remove deprecated aotSummaries fields in TestBed config (#45487)

devtools tabs

Commit Description
fix - 6c284ef32e stop scroll occuring at tabs level

forms

Commit Description
feat - 2dbdebc646 Add FormBuilder.nonNullable. (#45852)
feat - e0a2248b32 Add a FormRecord type. (#45607)
feat - 7ee121f595 Add untyped versions of the model classes for use in migration. (#45205)
feat - 89d299105a Implement strict types for the Angular Forms package. (#43834)
feat - f490c2de4e support negative indices in FormArray methods. (#44848)
fix - 39be06037d Add a nonNullable option to FormControl for consistency.
fix - 4332897baa Add UntypedFormBuilder (#45268)
fix - 5d13e58aed Allow NonNullableFormBuilder to be injected. (#45904)
fix - 8dd3f82f94 Correct empty validator to handle objects with a property length: 0. (#33729)
fix - ff3f5a8d12 Fix a typing bug in FormBuilder. (#45684)
fix - fe0e42a996 Make UntypedFormBuilder assignable to FormBuilder, and vice versa. (#45421)
fix - b36dec6b5b not picking up disabled state if group is swapped out and disabled (#43499)
fix - 9f6fa5b746 Prevent FormBuilder from distributing unions to control types. (#45942)
fix - aa7b857be8 Property renaming safe code (#45271)
fix - cae1e44608 Update the typed forms migration to use FormArray instead of FormArray<T[]>. (#44933)
fix - d336ba96d9 Update the typed forms migration. (#45281)
fix - 018550ed50 Value and RawValue should be part of the public API. (#45978)
fix - 2e96cede3e Warn on FormControls that are constructed with both options and asyncValidators.

http

Commit Description
fix - 76a9a24cdc encode + signs in query params as %2B (angular#11058) (#45111)
fix - d43c0e973f Throw error when headers are supplied in JSONP request (#45210)

language-service

Commit Description
feat - 9d4af65e34 Provide plugin to delegate rename requests to Angular (#44696)
fix - 3ae133c69e Fix detection of Angular for v14+ projects (#45998)

localize

Commit Description
fix - a50e2da64a ensure transitively loaded compiler code is tree-shakable (#45405)

migrations

Commit Description
feat - d56a537196 Add migration to add explicit Route/Routes type (#45084)

ngcc

Commit Description
fix - 74a2e2e2ec cope with packages following APF v14+ (#45833)

platform-browser

Commit Description
fix - a01bcb8e7e do not run change detection when loading Hammer (#44921)
fix - b32647dc68 Make transfer state key typesafe. (#23020)
fix - c7bf75dd5e remove obsolete shim for Map comparison in Jasmine (#45521)
perf - 23c4c9601e avoid including Testability by default in bootstrapApplication (#45885)

platform-server

Commit Description
feat - dff5586d52 implement renderApplication function (#45785)
fix - 22c71be94c update renderApplication to move appId to options (#45844)

router

Commit Description
feat - f4fd1a8262 Add EnvironmentInjector to RouterOutlet.activateWith (#45597)
feat - 910de8bc33 Add Route.title with a configurable TitleStrategy (#43307)
feat - 4e0957a4e1 Add ability to specify providers on a Route (#45673)
feat - dea8c86cd5 add ariaCurrentWhenActive input to RouterLinkActive directive (#45167)
feat - 41e2a68e30 add type properties to all router events (#44189)
feat - 4962a4a332 Allow loadChildren to return a Route array (#45700)
feat - 791bd31424 set stricter type for Route.title (#44939)
feat - 50004c143b Support lazy loading standalone components with loadComponent (#45705)
fix - 7fd416d060 Fix type of Route.pathMatch to be more accurate (#45176)
fix - 1c11a57155 merge interited resolved data and static data (#45276)
fix - f8f3ab377b Remove any from LoadChildrenCallback type (#45524)
fix - d4fc12fa19 Remove deprecated initialNavigation option (#45729)
fix - 989e840cce Remove unused string type for ActivatedRoute.component (#45625)
fix - 64f837d2c0 Update Navigation#initialUrl to match documentation and reality (#43863)
fix - 96fd29c6d2 validate lazy loaded configs (#45526)
perf - f13295f3a3 cancel the navigation instantly if at least one resolver doesn't emit any value (#45621)
refactor - 1d2f5c1101 deprecate no longer needed resolver fields (#45597)
refactor - 7b367d9d90 Remove unnecessary setTimeout in UrlTree redirects (#45735)
refactor - c9679760b2 take only the first emitted value of every resolver to make it consistent with guards (#44573)

service-worker

Commit Description
feat - ec0a0e0669 add cacheOpaqueResponses option for data-groups (#44723)
feat - bd04fbc05b emit a notification when the service worker is already up to date after check (#45216)

Special Thanks

Adrian Kunz, Alan Agius, AleksanderBodurri, Alex Rickabaugh, AlirezaEbrahimkhani, Amir Rustamzadeh, Andrew Kushnir, Andrew Scott, Chabbey François, Charles Lyding, Cédric Exbrayat, Daan De Smedt, David Schmidt, Derek Cormier, Dmitrij Kuba, Doug Parker, Dylan Hunn, Emma Twersky, George Kalpakas, George Looshch, Jan Kuehle, Jessica Janiuk, JiaLiPassion, JimMorrison723, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Leosvel Pérez Espinosa, Maddie Klein, Mark Whitfeld, Martin Sikora, Michael-Doner, Michal Materowski, Minko Gechev, Paul Gschwendtner, Pawel Kozlowski, Payam Shahidi, Pusztai Tibor, Ricardo Mattiazzi Baumgartner, Roy Dorombozi, Ruslan Lekhman, Samuel Littley, Sergej Grilborzer, Sumit Arora, Tobias Speicher, Virginia Dooley, Zack Elliott, alirezaghey, ananyahs96, arturovt, cexbrayat, dario-piotrowicz, ivanwonder, kamikopi, markostanimirovic, markwhitfeld, mgechev, renovate[bot], twerske and zverbeta

14.0.0-rc.3 (2022-05-31)

compiler-cli

Commit Description
fix - 724e88e042 preserve forwardRef for component scopes (#46139)

core

Commit Description
fix - 35653ce337 add more details to the MISSING_INJECTION_CONTEXT error (#46166)
fix - 0bc77f4cab better error message when unknown property is present (#46147)
fix - ba9f30c9a6 include component name into unknown element/property error message (#46160)
fix - 560188bf12 update unknown property error to account for standalone components in AOT (#46159)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Billy Lando, George Kalpakas, Ian Gregory, Matt Shaffer, Paul Gschwendtner, Pawel Kozlowski, Rune Andersen Hartvig, dario-piotrowicz and mgechev

13.3.11 (2022-05-31)

Special Thanks

Andrew Scott, Billy Lando, George Kalpakas, Ian Gregory, Matt Shaffer, Rune Andersen Hartvig, dario-piotrowicz and mgechev

14.0.0-rc.2 (2022-05-25)

Deprecations

forms

  • The initialValueIsDefault option has been deprecated and replaced with the otherwise-identical nonNullable option, for the sake of naming consistency.
  • It is now deprecated to provide both AbstractControlOptions and an async validators argument to a FormControl. Previously, the async validators would just be silently dropped, resulting in a probably buggy forms. Now, the constructor call is deprecated, and Angular will print a warning in devmode.

bazel

Commit Description
perf - 21a04ef5be use allowedInputs to avoid fs.stat (#46069)

compiler-cli

Commit Description
fix - f2e5234e07 update unknown tag error for aot standalone components (#45919)

core

Commit Description
fix - 701405fa71 handle AOT-compiled standalone components in TestBed correctly (#46052)
fix - ddce357d1d improve TestBed declarations standalone error message (#45999)
fix - 3172b4cc99 produce proper error message for unknown props on <ng-template>s (#46068)
fix - 4f1a813596 restore NgModule state correctly after TestBed overrides (#46049)
fix - df339d8abf update unknown tag error for jit standalone components (#45920)

forms

Commit Description
fix - 39be06037d Add a nonNullable option to FormControl for consistency.
fix - 2e96cede3e Warn on FormControls that are constructed with both options and asyncValidators.

Special Thanks

A. J. Javier, Alex Rickabaugh, Andrew Kushnir, Aristeidis Bampakos, David Schmidt, Doug Parker, Dylan Hunn, George Kalpakas, J Rob Gant, Jan Kuehle, Jerome Kruse, Joey Perrott, JoostK, Kristiyan Kostadinov, Nathan Nontell, Paul Gschwendtner, Pawel Kozlowski, Roopesh Chinnakampalli, Thomas Mair, Tom Raithel, dario-piotrowicz and mgechev

13.3.10 (2022-05-25)

Special Thanks

A. J. Javier, Aristeidis Bampakos, J Rob Gant, Jerome Kruse, Joey Perrott, Nathan Nontell, Paul Gschwendtner, Roopesh Chinnakampalli, Thomas Mair, Tom Raithel, dario-piotrowicz and mgechev

14.0.0-rc.1 (2022-05-18)

compiler-cli

Commit Description
fix - a524a50361 handle standalone components with cycles (#46029)
fix - 35f20afcac use existing imports for standalone dependencies (#46029)

core

Commit Description
fix - 3f7ecec59b set correct context for inject() for component ctors (#45991)

forms

Commit Description
fix - 018550ed50 Value and RawValue should be part of the public API. (#45978)

language-service

Commit Description
fix - 3ae133c69e Fix detection of Angular for v14+ projects (#45998)
fix - 9cd8e50848 Prevent TSServer from removing templates from project (#45965)

Special Thanks

4javier, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, Evan Lee, George Kalpakas, Joey Perrott, Kristiyan Kostadinov, Pavan Kumar Jadda, Roy Dorombozi, Virginia Dooley, celinetunc, ivanwonder and mariu

13.3.9 (2022-05-18)

Special Thanks

4javier, Bob Watson, Evan Lee, George Kalpakas, Joey Perrott, Pavan Kumar Jadda, celinetunc and mariu

13.3.8 (2022-05-12)

language-service

Commit Description
fix - b4eb9ed884 Prevent TSServer from removing templates from project (#45965)

Special Thanks

Andrew Scott, George Kalpakas and Joey Perrott

14.0.0-rc.0 (2022-05-11)

bazel

Commit Description
fix - d48e0ccc01 speed up d.ts bundling by configuring worker (#45900)

core

Commit Description
perf - e9317aee71 allow checkNoChanges mode to be tree-shaken in production (#45913)

forms

Commit Description
fix - 5d13e58aed Allow NonNullableFormBuilder to be injected. (#45904)
fix - 9f6fa5b746 Prevent FormBuilder from distributing unions to control types. (#45942)

language-service

Commit Description
fix - 13fad9febe Add resource files as roots to their associated projects (#45601)

ngcc

Commit Description
fix - 74a2e2e2ec cope with packages following APF v14+ (#45833)

platform-browser

Commit Description
perf - 23c4c9601e avoid including Testability by default in bootstrapApplication (#45885)

Special Thanks

AleksanderBodurri, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Dylan Hunn, George Kalpakas, JayMartMedia, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ted.chang, Thomas Mair, Will 保哥, dario-piotrowicz, mgechev and ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ

13.3.7 (2022-05-11)

core

Commit Description
perf - 73bbee2c0d allow checkNoChanges mode to be tree-shaken in production (#45936)

language-service

Commit Description
fix - 5ca3bcf4f8 Add resource files as roots to their associated projects (#45601)

Special Thanks

Andrew Kushnir, Andrew Scott, George Kalpakas, JayMartMedia, JoostK, Paul Gschwendtner, Ted.chang, Thomas Mair, Will 保哥, dario-piotrowicz, mgechev and ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ

14.0.0-next.16 (2022-05-04)

Breaking Changes

router

  • initialNavigation: 'enabled' was deprecated in v11 and is replaced by
    initialNavigation: 'enabledBlocking'.

common

Commit Description
fix - 10691c626b properly cast http param values to strings (#42643)

compiler

Commit Description
fix - bb8d7091c6 exclude empty styles from emitted metadata (#45459)

compiler-cli

Commit Description
feat - 9cf14ff03d exclude abstract classes from strictInjectionParameters requirement (#44615)
feat - 752ddbc165 Support template binding to protected component members (#45823)
fix - 32c625d027 handle forwardRef in imports of standalone component (#45869)
fix - 9cfea3d522 report invalid imports in standalone components during resolve phase (#45827)

core

Commit Description
feat - e702cafcf2 allow to throw on unknown elements in tests (#45479)
feat - 6662a97c61 allow to throw on unknown elements in tests (#45479)
feat - a6675925b0 allow to throw on unknown properties in tests (#45853)
feat - 29039fcdbc support TypeScript 4.7 (#45749)
feat - 401dec46eb update TestBed to recognize Standalone Components (#45809)
fix - f3eb7d9ecb Ensure the StandaloneService is retained after closure minification (#45783)
fix - fa755b2a54 prevent BrowserModule providers from being loaded twice (#45826)
fix - 4e413d9240 support nested arrays of providers in EnvironmentInjector (#45789)
fix - fde4942cdf throw if standalone components are present in @NgModule.bootstrap (#45825)
fix - aafac7228f verify standalone component imports in JiT (#45777)

forms

Commit Description
feat - 2dbdebc646 Add FormBuilder.nonNullable. (#45852)

platform-server

Commit Description
feat - dff5586d52 implement renderApplication function (#45785)
fix - 22c71be94c update renderApplication to move appId to options (#45844)

router

Commit Description
feat - 41e2a68e30 add type properties to all router events (#44189)
fix - d4fc12fa19 Remove deprecated initialNavigation option (#45729)

Special Thanks

AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Cédric Exbrayat, Dylan Hunn, George Kalpakas, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ryan Day, Zack Elliott, cexbrayat and dario-piotrowicz

13.3.6 (2022-05-04)

Special Thanks

Andrew Kushnir, Andrew Scott, George Kalpakas, Paul Gschwendtner, Pawel Kozlowski, Ryan Day and dario-piotrowicz

14.0.0-next.15 (2022-04-27)

Breaking Changes

common

  • Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
    Location does not depend on PlatformLocation anymore.

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

router

  • When a guard returns a UrlTree, the router would previously schedule
    the redirect navigation within a setTimeout. This timeout is now removed,
    which can result in test failures due to incorrectly written tests.
    Tests which perform navigations should ensure that all timeouts are
    flushed before making assertions. Tests should ensure they are capable
    of handling all redirects from the original navigation.

bazel

Commit Description
feat - 68597bb0ca speed up dev-turnaround by bundling types only when packaging (#45405)
fix - 970a3b5c70 add this_is_bazel marker (#45728)

common

Commit Description
feat - 31d7c3bd71 add getState method to LocationStrategy interface (#45648)

compiler

Commit Description
fix - 4d6a1d6722 scope css keyframes in emulated view encapsulation (#42608)

core

Commit Description
feat - 5771b18a98 add the bootstrapApplication function (#45674)
feat - 5a10fc4f82 implement standalone directives, components, and pipes (#45687)

localize

Commit Description
fix - a50e2da64a ensure transitively loaded compiler code is tree-shakable (#45405)

router

Commit Description
feat - dea8c86cd5 add ariaCurrentWhenActive input to RouterLinkActive directive (#45167)
feat - 4962a4a332 Allow loadChildren to return a Route array (#45700)
feat - 50004c143b Support lazy loading standalone components with loadComponent (#45705)
refactor - 7b367d9d90 Remove unnecessary setTimeout in UrlTree redirects (#45735)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Joey Perrott, Michal Materowski, Paul Gschwendtner, Pawel Kozlowski, Sumit Arora and dario-piotrowicz

13.3.5 (2022-04-27)

bazel

Commit Description
fix - 63398e0eb4 add this_is_bazel marker (#45728)

Special Thanks

Andrew Kushnir, George Kalpakas, Joey Perrott and dario-piotrowicz

14.0.0-next.14 (2022-04-20)

Breaking Changes

http

  • Queries including + will now actually query for + instead of space.
    Most workarounds involving custom codecs will be unaffected.
    Possible server-side workarounds will need to be undone.

router

  • The type of component on ActivatedRoute and ActivatedRouteSnapshot
    includes string. In reality, this is not the case. The component
    cannot be anything other than a component class.

  • Lazy loaded configs are now also validated once loaded like the
    initial set of routes are. Lazy loaded modules which have invalid Route
    configs will now error. Note that this is only done in dev mode so
    there is no production impact of this change.

Deprecations

router

  • The resolver argument of the RouterOutletContract.activateWith function and the resolver field of the OutletContext class are deprecated. Passing component factory resolvers are no longer needed. The ComponentFactoryResolver-related symbols were deprecated in @angular/core package since v13.

bazel

Commit Description
fix - f8a1ea0c11 do not error if files part of srcs are outside of package (#45622)

compiler-cli

Commit Description
fix - 046dad1a8d fix issue with incremental tracking of APIs for pipes (#45672)

core

Commit Description
feat - 174ce7dd13 add ApplicationRef.destroy method (#45624)
feat - b568a5e708 implement importProvidersFrom function (#45626)
feat - d5a6cd1111 implement EnvironmentInjector with adapter to NgModuleRef (#45626)
fix - 57f8ab2ed8 better error message when directive extends a component (#45658)
fix - c6e0e3f6d3 improve multiple components match error (#45645)

forms

Commit Description
feat - e0a2248b32 Add a FormRecord type. (#45607)
fix - ff3f5a8d12 Fix a typing bug in FormBuilder. (#45684)

http

Commit Description
fix - 76a9a24cdc encode + signs in query params as %2B (angular#11058) (#45111)

language-service

Commit Description
fix - f57e46c538 two-way binding completion should not remove the trailing quote (#45582)

router

Commit Description
feat - f4fd1a8262 Add EnvironmentInjector to RouterOutlet.activateWith (#45597)
feat - 4e0957a4e1 Add ability to specify providers on a Route (#45673)
fix - 989e840cce Remove unused string type for ActivatedRoute.component (#45625)
fix - 96fd29c6d2 validate lazy loaded configs (#45526)
perf - f13295f3a3 cancel the navigation instantly if at least one resolver doesn't emit any value (#45621)
refactor - 1d2f5c1101 deprecate no longer needed resolver fields (#45597)

Special Thanks

Adrian Kunz, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dmitrij Kuba, Doug Parker, Dylan Hunn, George Kalpakas, Ilya Marchik, Jeremy Elbourn, Kristiyan Kostadinov, Louis Gombert, Mangalraj, Marko Kaznovac, Paul Gschwendtner, Saurabh Kamble, dario-piotrowicz and ivanwonder

13.3.4 (2022-04-20)

core

Commit Description
fix - 9317f513d5 better error message when directive extends a component (#45658)
fix - 4766817f02 improve multiple components match error (#45645)

language-service

Commit Description
fix - d68333e508 two-way binding completion should not remove the trailing quote (#45582)

Special Thanks

Andrew Kushnir, Andrew Scott, George Kalpakas, Ilya Marchik, Jeremy Elbourn, Kristiyan Kostadinov, Louis Gombert, Mangalraj, Marko Kaznovac, Paul Gschwendtner, Saurabh Kamble, dario-piotrowicz and ivanwonder

14.0.0-next.13 (2022-04-13)

Breaking Changes

core

  • Since Ivy, TestBed doesn't use AOT summaries. The aotSummaries fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The aotSummaries fields were completely unused, so you can just drop them from the TestBed APIs usage.

compiler

Commit Description
fix - 598b759d33 avoid errors with extremely long instruction chains (#45574)

core

Commit Description
refactor - 9add714b13 remove deprecated aotSummaries fields in TestBed config (#45487)

Special Thanks

4javier, Andrew Kushnir, Andrew Scott, Dylan Hunn, Jason Hendee, Jessica Janiuk, Kristiyan Kostadinov, Michael-Doner, Michal Materowski and Virginia Dooley

13.3.3 (2022-04-13)

compiler

Commit Description
fix - e50fd9ee87 avoid errors with extremely long instruction chains (#45574)

Special Thanks

4javier, Andrew Kushnir, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Hossein Mousavi, Jason Hendee, Joe Martin (Crowdstaffing), Kristiyan Kostadinov, Michael-Doner, Michal Materowski and Virginia Dooley

14.0.0-next.12 (2022-04-12)

Breaking Changes

forms

  • Forms classes accept a generic.

    Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.

router

  • When returning a Promise from the
    LoadChildrenCallback, the possible type is now restricted to
    Type<any>|NgModuleFactory<any> rather than any.

animations

Commit Description
feat - a6fa37bc6e make validateStyleProperty check dev-mode only (#45570)

bazel

Commit Description
feat - 636909fba7 allow for generated package.json files in ng_package (#45470)
feat - 28e835b4bb report error when dependency does not provide JS sources in ng_package (#45470)
fix - 4b2e98d55d remove unnecessary file extractions from ng_package (#45470)

forms

Commit Description
feat - 89d299105a Implement strict types for the Angular Forms package. (#43834)

platform-browser

Commit Description
fix - c7bf75dd5e remove obsolete shim for Map comparison in Jasmine (#45521)

router

Commit Description
fix - f8f3ab377b Remove any from LoadChildrenCallback type (#45524)

Special Thanks

Andrew Scott, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Hossein Mousavi, Jessica Janiuk, Joe Martin (Crowdstaffing), Joey Perrott, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Michael-Doner, Michal Materowski, Paul Gschwendtner, Samuel Littley, Sumit Arora and dario-piotrowicz

14.0.0-next.11 (2022-04-06)

animations

Commit Description
fix - 29d3891782 handle structured AnimateTimings (#31107)

migrations

Commit Description
feat - d56a537196 Add migration to add explicit Route/Routes type (#45084)

router

Commit Description
fix - 1c11a57155 merge interited resolved data and static data (#45276)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Chabbey François, Christoph Guttandin, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Martin Sikora, mgechev and piyush132000

13.3.2 (2022-04-06)

animations

Commit Description
fix - b46b25c562 handle structured AnimateTimings (#31107)

Special Thanks

Alan Agius, Andrew Kushnir, Christoph Guttandin, Cédric Exbrayat, mgechev and piyush132000

14.0.0-next.10 (2022-03-30)

Breaking Changes

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

http

  • JSONP will throw an error when headers are set on a reques

    JSONP does not support headers being set on requests. Before when
    a request was sent to a JSONP backend that had headers set the headers
    were ignored. The JSONP backend will now throw an error if it
    receives a request that has any headers set. Any uses of JSONP
    on requests with headers set will need to remove the headers
    to avoid the error.

compiler

Commit Description
fix - f03e313f24 scope css keyframes in emulated view encapsulation (#42608)

compiler-cli

Commit Description
feat - 2142ffd295 propagate standalone flag to runtime (#44973)
feat - 6f653e05f9 standalone types imported into NgModule scopes (#44973)
fix - 3d13343975 better error messages for NgModule structural issues (#44973)
fix - 06050ac2b4 handle inline type-check blocks in nullish coalescing extended check (#45454)

core

Commit Description
fix - d36fa111eb avoid Closure Compiler error in restoreView (#45445)

forms

Commit Description
fix - b36dec6b5b not picking up disabled state if group is swapped out and disabled (#43499)

http

Commit Description
fix - d43c0e973f Throw error when headers are supplied in JSONP request (#45210)

Special Thanks

Alex Rickabaugh, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Dylan Hunn, JiaLiPassion, JoostK, Kristiyan Kostadinov, Maddie Klein, Michael-Doner, Paul Gschwendtner, Willian Corrêa, arturovt, dario-piotrowicz and zverbeta

13.3.1 (2022-03-30)

bazel

Commit Description
fix - 960e42b2ac ng module compilation workers are subject to linker race-conditions (#45393)

compiler

Commit Description
fix - 3714305f84 scope css rules within @layer blocks (#45396)

compiler-cli

Commit Description
fix - 7f53c0f4ac handle inline type-check blocks in nullish coalescing extended check (#45478)

Special Thanks

AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Ben Brook, Dylan Hunn, George Kalpakas, JiaLiPassion, Joey Perrott, JoostK, Mike, Paul Gschwendtner, Willian Corrêa, arturovt, dario-piotrowicz, khai and mgechev

14.0.0-next.9 (2022-03-25)

Special Thanks

Paul Gschwendtner

14.0.0-next.8 (2022-03-25)

Breaking Changes

core

  • TypeScript versions older than 4.6 are no longer supported.

zone.js

  • in TaskTrackingZoneSpec track a periodic task until it is cancelled

The breaking change is scoped only to the plugin
zone.js/plugins/task-tracking. If you used TaskTrackingZoneSpec and
checked the pending macroTasks e.g. using (this.ngZone as any)._inner ._parent._properties.TaskTrackingZone.getTasksFor('macroTask'), then
its behavior slightly changed for periodic macrotasks. For example,
previously the setInterval macrotask was no longer tracked after its
callback was executed for the first time. Now it's tracked until
the task is explicitly cancelled, e.g with clearInterval(id).

fixes 45350

animations

Commit Description
feat - 79d334b138 provide warnings for non-animatable CSS properties (#45212)
fix - 2a75754ee8 apply default params when resolved value is null or undefined (#45339)

bazel

Commit Description
fix - dc72f3007a ng module compilation workers are subject to linker race-conditions (#45393)

compiler

Commit Description
fix - fffa023803 scope css rules within @layer blocks (#45396)

compiler-cli

Commit Description
fix - 27b4af7240 full side-effectful registration of NgModules with ids (#45024)
perf - 8155428ba6 ignore the module.id anti-pattern for NgModule ids (#45024)

core

Commit Description
feat - c9d566ce4b drop support for TypeScript 4.4 and 4.5 (#45394)
fix - be161bef79 memory leak in event listeners inside embedded views (#43075)

forms

Commit Description
fix - fe0e42a996 Make UntypedFormBuilder assignable to FormBuilder, and vice versa. (#45421)

Special Thanks

Alan Agius, Alex Rickabaugh, AlirezaEbrahimkhani, Ben Brook, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Mike, Paul Gschwendtner, Tobias Speicher, alirezaghey, arturovt, dario-piotrowicz, khai and mgechev

14.0.0-next.7 (2022-03-16)

core

Commit Description
feat - 225e4f2dbe triggerEventHandler accept optional eventObj (#45279)

forms

Commit Description
fix - 9db9091349 improve error message for invalid value accessors (#45192)

Special Thanks

Alan Agius, Alistair Kane, Amer Yousuf, Andrew Kushnir, Andrew Scott, Derek Cormier, Jessica Janiuk, JiaLiPassion, Lee Cooper, Paul Gschwendtner, alirezaghey and why520crazy

13.3.0 (2022-03-16)

Special Thanks

Andrew Scott, Kristiyan Kostadinov and Paul Gschwendtner

13.2.7 (2022-03-16)

forms

Commit Description
fix - eac94f0945 improve error message for invalid value accessors (#45192)

Special Thanks

Alistair Kane, Amer Yousuf, Andrew Scott, Jessica Janiuk, Lee Cooper, alirezaghey and why520crazy

13.3.0-rc.0 (2022-03-10)

Special Thanks

Alistair Kane, Andrew Scott and Kristiyan Kostadinov

14.0.0-next.6 (2022-03-09)

Breaking Changes

core

  • Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.

compiler

Commit Description
fix - 2b7553db6f compute correct offsets when interpolations have HTML entities (#44811)

core

Commit Description
feat - 6eaaefd22e drop support for Node.js 12 (#45286)
feat - 94bba76a4a support TypeScript 4.6 (#45190)
fix - 9fa6f5a552 incorrectly inserting elements inside <template> element (#43429)

forms

Commit Description
fix - 4332897baa Add UntypedFormBuilder (#45268)
fix - aa7b857be8 Property renaming safe code (#45271)
fix - d336ba96d9 Update the typed forms migration. (#45281)

language-service

Commit Description
fix - be220fa683 Prioritize Angular-specific completions over DOM completions (#45293)

service-worker

Commit Description
feat - bd04fbc05b emit a notification when the service worker is already up to date after check (#45216)
fix - 3ecf93020c file system hash in batch of 500 elements (#45262)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Anner Visser, Aristeidis Bampakos, Dylan Hunn, George Kalpakas, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Luca, Mladen Jakovljević, Paul Gschwendtner, Srikanth Kolli, ananyahs96 and nanda18

13.2.6 (2022-03-09)

compiler

Commit Description
fix - 6efa366e2c compute correct offsets when interpolations have HTML entities (#44811)

language-service

Commit Description
fix - 9bce9ce89e Prioritize Angular-specific completions over DOM completions (#45293)

service-worker

Commit Description
fix - cff1c5622f file system hash in batch of 500 elements (#45262)

Special Thanks

Andrew Scott, Anner Visser, Aristeidis Bampakos, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Luca, Mladen Jakovljević, Paul Gschwendtner, Srikanth Kolli and nanda18

14.0.0-next.5 (2022-03-02)

Breaking Changes

router

  • The type of Route.pathMatch is now more strict. Places that use
    pathMatch will likely need to be updated to have an explicit
    Route/Routes type so that TypeScript does not infer the type as
    string.

  • Previously, resolvers were waiting to be completed
    before proceeding with the navigation and the Router would take the last
    value emitted from the resolver.
    The router now takes only the first emitted value by the resolvers
    and then proceeds with navigation. This is now consistent with Observables
    returned by other guards: only the first value is used.

common

Commit Description
fix - 7671a1e40d canceled JSONP requests won't throw console error with missing callback function (#36807)
perf - 05d50b849b make NgLocalization token tree-shakable (#45118)

core

Commit Description
feat - 69018c9f42 allow for injector to be specified when creating an embedded view (#45156)
feat - 94c949a60a allow for injector to be specified when creating an embedded view (#45156)
fix - c5df474c7c remove individual commands for updating gold files (#45198)
perf - 88f1168506 only track LViews that are referenced in ngContext (#45172)

forms

Commit Description
feat - 7ee121f595 Add untyped versions of the model classes for use in migration. (#45205)

localize

Commit Description
fix - ca5603b09b avoid imports into compiler-cli package (#45180)

router

Commit Description
fix - 7fd416d060 Fix type of Route.pathMatch to be more accurate (#45176)
refactor - c9679760b2 take only the first emitted value of every resolver to make it consistent with guards (#44573)

Special Thanks

Andrew Kushnir, Andrew Scott, Charles Lyding, Dmitrij Kuba, Dylan Hunn, Guillaume Bonnet, Jessica Janiuk, JiaLiPassion, JoostK, Kristiyan Kostadinov, Martin Sikora, Paul Gschwendtner, Theodore Brown and dario-piotrowicz

13.2.5 (2022-03-02)

animations

Commit Description
fix - 6c61d20476 allow animations with unsupported CSS properties (#45185)

common

Commit Description
fix - 64da1daa78 canceled JSONP requests won't throw console error with missing callback function (#36807)
perf - 56ca7d385b make NgLocalization token tree-shakable (#45118) (#45226)

compiler-cli

Commit Description
fix - 6c906a5bb9 Support resolve animation name from the DTS (#45169)

core

Commit Description
fix - e8fd452bd2 remove individual commands for updating gold files (#45198)
perf - 82d772857c make Compiler, ApplicationRef and ApplicationInitStatus tree-shakable (#45102) (#45222)
perf - 71ff12c1cc make LOCALE_ID and other tokens from ApplicationModule tree-shakable (#45102) (#45222)

localize

Commit Description
fix - d388522745 avoid imports into compiler-cli package (#45180)

Special Thanks

Andrew Kushnir, Andrew Scott, Charles Lyding, Guillaume Bonnet, Jessica Janiuk, JoostK, Martin Sikora, Paul Gschwendtner, Theodore Brown, dario-piotrowicz and ivanwonder

14.0.0-next.4 (2022-02-23)

Breaking Changes

animations

  • The AnimationDriver.getParentElement method has become required, so any
    implementors of this interface are now required to provide an implementation
    for this method. This breakage is unlikely to affect application developers,
    as AnimationDriver is not expected to be implemented in user code.

animations

Commit Description
fix - f8dc660605 allow animations with unsupported CSS properties (#44729)
refactor - 59559fdbac make AnimationDriver.getParentElement required (#45114)

compiler-cli

Commit Description
fix - c0778b4dfc Support resolve animation name from the DTS (#45107)

core

Commit Description
perf - 071c8af8ba avoid storing LView in ngContext (#45051)
perf - a96c4827c4 make Compiler, ApplicationRef and ApplicationInitStatus tree-shakable (#45102)
perf - 1e60fe0a3e make LOCALE_ID and other tokens from ApplicationModule tree-shakable (#45102)

Special Thanks

Alan Cohen, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Daniele Maltese, David Wolf, JiaLiPassion, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, arturovt, dario-piotrowicz, ivanwonder and manuelkroiss

13.2.4 (2022-02-23)

animations

Commit Description
perf - 1a4b489692 improve algorithm to balance animation namespaces (#45113)

core

Commit Description
perf - cbd23ee0de make IterableDiffers and KeyValueDiffers tree-shakable (#45094) (#45115)

Special Thanks

Alan Cohen, AlirezaEbrahimkhani, Andrew Kushnir, Daniele Maltese, David Wolf, JoostK, Paul Gschwendtner, dario-piotrowicz and manuelkroiss

14.0.0-next.3 (2022-02-17)

animations

Commit Description
perf - 5c7c56bc85 improve algorithm to balance animation namespaces (#45057)
perf - 4c778cdb28 made errors in the animations package tree shakeable (#45004)

common

Commit Description
fix - bedb257afc cleanup URL change listeners when the root view is removed (#44901)

compiler

Commit Description
perf - 1b91e1049e chain element start/end instructions (#44994)

core

Commit Description
feat - e461f716d4 move ANIMATION_MODULE_TYPE injection token into core (#44970)
fix - 822439fddd ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966)
perf - 45d98e7ca5 make IterableDiffers and KeyValueDiffers tree-shakable (#45094)

Special Thanks

Alan Cohen, AlirezaEbrahimkhani, Amer Yousuf, Andrew Kushnir, Aristeidis Bampakos, Dario Piotrowicz, Dylan Hunn, Esteban Gehring, George Kalpakas, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Mina Hosseini Moghadam, Patrick Cameron, Srdjan Milic, Yousaf Nawaz, arturovt, dario-piotrowicz, markostanimirovic, mgechev and zuckjet

13.2.3 (2022-02-16)

animations

Commit Type Description
0050b01b62 perf made errors in the animations package tree shakeable (#45079)

compiler

Commit Type Description
09f0254bdd perf chain element start/end instructions (#44994)

core

Commit Type Description
92cf9fbebe fix ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966)

Special Thanks

AlirezaEbrahimkhani, Amer Yousuf, Andrew Kushnir, Aristeidis Bampakos, Dario Piotrowicz, Esteban Gehring, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Mina Hosseini Moghadam, Patrick Cameron, Srdjan Milic, Yousaf Nawaz, dario-piotrowicz, markostanimirovic, mgechev and zuckjet

14.0.0-next.2 (2022-02-07)

Breaking Changes

core

  • Forms [email] input coercion

Forms [email] input value will be considered as true if it is defined with any value rather
than false and 'false'.

forms

  • objects with a length key set to zero will no longer validate as empty.

This is technically a breaking change, since objects with a key length and value 0 will no longer validate as empty. This is a very minor change, and any reliance on this behavior is probably a bug anyway.

platform-browser

  • This change may cause a breaking change in unit tests that are implicitly depending on a specific
    number and sequence of change detections in order for their assertions to pass.

  • This may break invalid calls to TransferState methods.

This tightens parameter types of TransferState usage, and is a minor breaking change which may reveal existing problematic calls.

router

    • The type of initialUrl is set to string|UrlTree but in reality,
      the Router only sets it to a value that will always be UrlTree
  • initialUrl is documented as "The target URL passed into the
    Router#navigateByUrl() call before navigation" but the value
    actually gets set to something completely different. It's set to the
    current internal UrlTree of the Router at the time navigation
    occurs.

With this change, there is no exact replacement for the old value of
initialUrl because it was enver intended to be exposed.
Router.url is likely the best replacement for this.
In more specific use-cases, tracking the finalUrl between successful
navigations can also be used as a replacement.

animations

Commit Description
fix - e46b379204 implement missing transition delay (#44799)

common

Commit Description
feat - 38c03a2035 support years greater than 9999 (#43622)

compiler

Commit Description
fix - db6cf7e7c1 allow banana-in-a-box bindings to end with non-null assertion (#37809)

compiler-cli

Commit Description
feat - 0072eb48ba initial implementation of standalone components (#44812)

core

Commit Description
fix - d5719c2e0f input coercion (#42803)

forms

Commit Description
fix - 8dd3f82f94 Correct empty validator to handle objects with a property length: 0. (#33729)
fix - ebf2fc5224 incorrectly keeping track of ngModel with ngFor inside a form (#40459)

http

Commit Description
perf - 28393031b1 remove IE special status handling (#44354)

platform-browser

Commit Description
fix - a01bcb8e7e do not run change detection when loading Hammer (#44921)
fix - b32647dc68 Make transfer state key typesafe. (#23020)

router

Commit Description
feat - 791bd31424 set stricter type for Route.title (#44939)
fix - 64f837d2c0 Update Navigation#initialUrl to match documentation and reality (#43863)

upgrade

Commit Description
fix - 202a1a5631 Do not trigger duplicate navigation events from Angular Router (#43441)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Daniel Díaz, Dario Piotrowicz, Doug Parker, Jayson Acosta, Joey Perrott, JoostK, Kristiyan Kostadinov, Olivier Capuozzo, Payam Shahidi, Pusztai Tibor, Ramzan, Ruslan Lekhman, Sergej Grilborzer, Shai Reznik, TANMAY SRIVASTAVA, arturovt, dario-piotrowicz, iRealNirmal, jhonyeduardo, markostanimirovic, mgechev and zuckjet

13.2.2 (2022-02-08)

compiler

Commit Description
fix - 37af6abb49 allow banana-in-a-box bindings to end with non-null assertion (#37809)

forms

Commit Description
fix - b75e90f809 incorrectly keeping track of ngModel with ngFor inside a form (#40459)

http

Commit Description
perf - 3fae6637e7 remove IE special status handling (#44354)

upgrade

Commit Description
fix - b9aab0c87b Do not trigger duplicate navigation events from Angular Router (#43441)

Special Thanks

Alan Agius, Alan Cohen, Andrew Kushnir, Andrew Scott, Daniel Díaz, Dario Piotrowicz, Doug Parker, Jayson Acosta, Joey Perrott, JoostK, Kristiyan Kostadinov, Olivier Capuozzo, Ramzan, Shai Reznik, TANMAY SRIVASTAVA, dario-piotrowicz, iRealNirmal, jhonyeduardo, mgechev and zuckjet

14.0.0-next.1 (2022-02-02)

Deprecations

common

  • The ngModuleFactory input of the NgComponentOutlet directive is deprecated in favor of a newly added ngModule input. The ngModule input accepts references to the NgModule class directly, without the need to resolve module factory first.

animations

Commit Description
perf - 7a81481fb2 Remove generic objects in favor of Maps (#44482)
perf - 6642e3c8fd remove no longer needed CssKeyframes classes (#44903)

common

Commit Description
feat - c89cf63059 support NgModule as an input to the NgComponentOutlet (#44815)
fix - a2cbffc06f include query parameters for open HTTP requests in verify (#44917)

compiler-cli

Commit Description
fix - 73c97aea9e accept nullish coalescing operator for any and unknown types (#44862)
fix - 366e424a73 enable nullish coalescing check only with strictNullChecks (#44862)
fix - d82c957a26 ensure casing of logical paths is preserved (#44798)

core

Commit Description
fix - 5686f68fde Add back support for namespace URIs in createElement of dom renderer (#44914)
fix - 39c614c438 flush delayed scoping queue while setting up TestBed (#44814)

devtools

Commit Description
feat - ddeacebd7b add a demo pipe with ngOnDestroy
feat - 06c184aa48 add animations in the bar chart
feat - 8f8268ff1e add dark mode styling to flame graph rectangle strokes
feat - fd711e51d7 add demo app which does not use zones
feat - 1cb3967670 add detected application angular version to top right next to tabs (rangle/angular-devtools#4)
feat - 691e495b6b add duration field to the ProfilerFrame
feat - 7ea441719f add extra information to popups
feat - ff99b9bb03 add filtering functionality in the profiler
feat - f848ef8d1b add functionality for visualizing change detection
feat - 4b9031263f add ivy check
feat - 38afb5c90b Add margin to tree nodes so that they are not stacked on each other directly
feat - f91590a509 add MIT license (rangle/angular-devtools#65)
feat - 25016b8810 add multiple frame selection pointers
feat - a42eee68cc add opening instructions
feat - b1d0f0a7d4 add overflow-x auto to breadcrumbs tab
feat - a5a942b732 add selection of multiple frames with shift
feat - becdcca64a add support for Angular elements
feat - 8c68a645c2 add tooltip in bar chart
feat - 016a1e54d7 add top-level element to allow zoom out with multi roots
feat - dceb8d304c add versioning to import/export functionality
feat - e4784bc3b0 add view source button to properties view tab (rangle/angular-devtools#42)
feat - 059ef511d0 added cypress to run e2e tests (rangle/angular-devtools#45)
feat - a20b4ea5c7 added prettier for formatting code on pre-commit (rangle/angular-devtools#50)
feat - 75cb030a84 adding bar chart for timeline
feat - 2b3acd6a06 adding bar graph details section
feat - 556997abab adding bargraph formatter
feat - 637c6de204 adding bargraph visualization to timeline
feat - 2b48785931 adding bargraph visualizer
feat - f06aedc28c adding icon popups displaying app status (rangle/angular-devtools#70)
feat - 9872baa24f adding info popup (rangle/angular-devtools#739)
feat - 4add5238dd adding material toolbar
feat - 4320221815 adding parent hierarchy list view
feat - c6fd1895c5 adding parent hierarchy to bar graph formater
feat - aaae3c4796 Adding parent nodes for selected component (rangle/angular-devtools#34)
feat - 0b991bdc0f adding piechart for profiler
feat - f28dae22ec adding router tree
feat - 15d43c787d adding theme service
feat - f6f06365c0 adding theme toggle button
feat - ee7bc547d1 adding tooltips for icons
feat - b552687298 Allow ctrl/meta click to select/deselect multiple frames
feat - dbcf91bbe0 allow user to click on component properties of type HTMLElement to inspect the element in the browser
feat - 67a89a02d6 allow user to click on function properties to inspect that function in the chrome devtools (rangle/angular-devtools#234)
feat - 29db8d5a8b allow user to edit props
feat - 285b5dbe91 allow user to view change detection strategy and view encapsulation of a component in the property explorer (rangle/angular-devtools#257)
feat - 60a4e56a95 apply style to console reference keys displayed on nodes
feat - 6ddac7c051 Applying consistent styling
feat - c1366d460d change background colour to align with chrome devtools
feat - ffe86bb739 change flamegraph component input to have it be responsive by default
feat - 6a6af6615a change trimComponents name; always include nativeElement in buildDirectiveForest
feat - 363f7954c4 clicking on element with component inspector enabled will select that component in the directive explorer
feat - 74eb888efe create ConsoleReferenceNode interface to fix typing issues in selected-component.ts
feat - 9500ec6617 create copy to clipboard button for properties view wrapper (rangle/angular-devtools#38)
feat - 26fb1f4d4b create message bus event for component selection
feat - 2b1c7fb568 create scroll buttons for breadcrumb feature
feat - 2d34a209a6 create seperate property data sources for inputs/outputs/state
feat - 9bdaa57a74 create shared-utils project library to house functions and classes that can be used by any other project
feat - 18214a9b99 create webtree graph formatter and pass the formatted data through to the web tree graph visualizer
feat - 015d98e2c0 decrease width of split pane to match the rest of the application
feat - dba943a4e2 detect directives added to non-elements
feat - 73dff6f002 disable devtools for production applications
feat - a7ea578507 display latest commit SHA in application (rangle/angular-devtools#243)
feat - ecfc03a2d2 don't show comment nodes by default
feat - b411ec64ed expand node ancestors on component inspection
feat - f46e9c9d76 fix component styling for tooltip; add overflow to tree wrapper; truncate long tree labels
feat - 9344cb7dfc focus search input when icon is clicked
feat - 8d00e44d9b hide router tree if router config isn't found
feat - a8a17df3af highlight element when hovering the breadcrumbs
feat - 07344cd4b3 implement "force refresh" when the user presses the refresh button
feat - dd71a52466 Implement basic configuration UI and use it to toggle Timing API
feat - 1d55622f3a implement component selection functionality for $ng0 - $ng4 similarly to how chrome devtools does with html elements
feat - da690ca84a Implement Component/Directive Search (rangle/angular-devtools#25)
feat - 3b0f52a131 implement dark mode styling for loading screen
feat - 6f338f7066 implement drag to scroll functionality to improve frame navigation (rangle/angular-devtools#716)
feat - 605214c59d implement import/export json functionality for profiler
feat - 8ea84d5776 implement input/output/state preview functionality with the reworked property explorer
feat - 21454e07a8 implement invisible gutter technique from chrome devtools
feat - d0a1773175 implement material expansion panel with drag functionality for each property tree
feat - 9d9518e67e implement negation in the filtering query language
feat - ff45fbd075 implement output profiling
feat - 534809cf85 implement profiler with new framework APIs
feat - b7b99b8532 implement proper diffing in the explorer
feat - 059da5d908 implement reload message bus event that calls window.location.reload inside of the dev tools
feat - 9be250dd62 Implement selected component shortcut similar to Augury to select the component host
feat - 78b3d39810 implement split pane so that user can resize properties view tab (rangle/angular-devtools#60)
feat - 07cd82a10c implement time travel player functionality (rangle/angular-devtools#46)
feat - 967bd3cf8e improve output formatting
feat - 83f41800cf increase gutter width to 2.5px
feat - b5e95ce468 inform user that devtools has limited functionality in production mode
feat - 6c71658dc0 install webtree graph library
feat - a00c19f101 introduce directive records
feat - ac2cd3757b introduce streamed visualization of the profiling data
feat - df5857ddc2 introduce timing API support
feat - 0579e98a1c introduce virtual scrolling in directive explorer
feat - 758d0a82fe keep unique index for all components and directives
feat - 8d319dd486 make devtools fail elegantly for view engine apps
feat - a73f575d6d make tab menu action button icons smaller
feat - ee7d8e58c6 making small frames clickable
feat - 3d9ac47d12 merge frames in the range
feat - 957034bf93 migrate devtools and demo app to scss for styling
feat - 21eb190f74 move highlighter placement - no more overlap (rangle/angular-devtools#451)
feat - 7b4e830d88 new icon & active status
feat - 8b9181724b only show console reference for the currently selected element to reduce noise
feat - a6148608c3 open expansion panels by default; apply styling to expansion header
feat - 54c14c251a optionally show change detection duration only when run
feat - 6d0c4093c2 pass each datasource through to it's own material tree component
feat - f8bb080157 pass input/output data through from application to devtools UI
feat - c44f00b78e patch life cycle hooks
feat - 502ab94003 remove timeout and add new loading/error state message (rangle/angular-devtools#291)
feat - 07632cf7bc renaming app component to app todo component (rangle/angular-devtools#195)
feat - b3a948eca3 renaming timeline graph options
feat - 4ea0d91dc5 reorient split pane when screen width goes under 500 px
feat - a5beefb477 rerender tree on resize to keep tree within view
feat - 5b3ecb3ea2 scroll profiler frame info tab independently of active visualizer
feat - 3e05c31979 select dom element on double click of node (rangle/angular-devtools#51)
feat - be7a0c25cb set showNode option to show most nodes in the treegraph (rangle/angular-devtools#219)
feat - 2bfb96d5bb setting bar graph as default option
feat - f2998980f3 show frame drop in the timeline (rangle/angular-devtools#62)
feat - a25cd0ed15 show the console reference key on each selected element
feat - 342ea4ebd7 show timeline bars color dependant on the framerate
feat - 0b24fe08f5 simplify component styling for tabs component
feat - 7dc1a35a62 sort directive properties by name
feat - e7db0d3f78 split apart visualizing views; create new components for each visualizer component
feat - a93cfdca81 support trusted types for script injection
feat - a3ac38041f synchronizing highlight between source application and component in presentation tree (rangle/angular-devtools#35)
feat - c29c041ec8 themeing breadcrums
feat - d638f9b172 update to latest flamegraph
feat - b4dc6f7bea updating bargraph formatter
feat - 53da6bb0a8 updating record formatter to get directive values
feat - b5d30d1c19 updating to karma-coverage
feat - 8c9645849a updating to karma-coverage and setting clear context to true
feat - 337be9bd63 use flamechart with a better layout
feat - 86cb107fee use flamegraph in timeline and aggregated view
feat - e23c81e2b5 use flamegraph in timeline and aggregated view
feat - cff17715d4 use tag names
feat - 57418c13f5 use the user preferred color scheme
feat - 2749398650 use window object instead of getWindow method for setting a console reference
feat - 86242b10bf wrap entire row in div and bind click event to the div (rangle/angular-devtools#2)
fix - 249d4cf237 add back css that removed after a rebase
fix - 64942d3ed9 add d3 and semver dsl umd modules to karma tests for ng-devtools and ng-devtools-backend
fix - 3d19ebf3a1 added more padding to treegraph
fix - b305c85004 adding coverage reportor to gitignore
fix - d28e601bd4 align theme to other Chrome DevTools
fix - bcfd7b97d6 align with latest changes and keep consistent frame tree
fix - 880d1d0ed4 alignment issue in idle profiler
fix - a665e305ea allow arrow key events to fire when focusing on an input
fix - a20821be38 allow deleting property when editing
fix - de5c669ebe breadcrumb algorithm when there is no parent available
fix - 5c0031d944 broken virtual scroll layout on resize
fix - 774e662b11 bump up the split pane gutter size for the profiler split pane and hide the icon
fix - b55c9c8786 bump webpack version and fix breaking change
fix - cb4e86c016 call change tab helper when tab changes as a result of the inspector being selected
fix - 4120c551e8 catch selection edge cases for selecting the same node and selecting a node already in the array
fix - c87d30eca5 change colors (rangle/angular-devtools#453)
fix - 2e8fe67864 change the isIvy detection
fix - 87aaa4933c check if node.children is undefined before trying to convert it into an array (ex. node is a text node)
fix - 2025717a13 check if node.nativeelement is an instance of an HTMLElement before calling ng.getComponent on it (rangle/angular-devtools#93)
fix - 8c92af6905 color and font sizes and other visuals
fix - 5fe0d80d0c compatibility issues with google3
fix - 288ecfd994 consider change detection completed after a microtask
fix - 8c9336d1a2 consistent console reference hint styles with chrome devtools
fix - 284300abdb consistent styles across shell dev and chrome
fix - df680a9113 contrast on labels and links (rangle/angular-devtools#708)
fix - 544d82fcc3 debounce dirty notifications and ignore vendorChunk (rangle/angular-devtools#264)
fix - e19dc3efb4 delayed angular detection with app_initializer (rangle/angular-devtools#827)
fix - 08af1134e9 disable animations when running e2e testing to fix flaky tests
fix - 99125308a4 disable critical css inlining because of csp
fix - e85d65d26a disable router tree tab
fix - 50488f9380 distinguish between items with and without children
fix - 42ecb7a0d5 do not attempt to initialize devtools if not ivy
fix - b010784b21 do not expand HTML Comments and preserve state for selected nodes
fix - 23bc10cf7e do not highlight nodes during initial rendering
fix - 2a1f6e9464 do not refresh the ui unless there are updates
fix - 8728f6f578 doc links icon (rangle/angular-devtools#742)
fix - d60bdfc207 don't access service prop unnecessarily
fix - 54533bc037 don't collide with the default runtime function (rangle/angular-devtools#6)
fix - 63c86c100f dont leak once subscriptions
fix - 657c74151f dont leak flat and indexed nodes
fix - 97f88712e6 drag and drop when selecting input; fix: console warning on update state error (rangle/angular-devtools#205)
fix - 7c0d6c06e4 enable the profiler even without zone available
fix - d4fc65504b ensure compatibility with angular v10.0.0+
fix - 50723bf1db ensure that the dark mode toggle button reflects the current theme on load
fix - a0ba7f7762 fix all remaining component tab color issues (rangle/angular-devtools#458)
fix - 9c4c18b8ef fix bug in component tree observer that prevented nested added nodes from having their ids set properly
fix - 92679792e0 fix case where the state of the change detection checkbox in the flamegraph is lost when the component is destroyed
fix - 2b5c40ee6d fix constrast on navigation tabs; make light mode icons the same colour as the text (rangle/angular-devtools#667)
fix - 0649cc485d fix edge case where only one item is profiled and where no items are profiled
fix - f5cad86902 fix ExpressionChangedAfterItHasBeenCheckedError by manually triggering change detection when parents are set in directive explorer
fix - 8d81155052 fix initialization of non-supported applications (rangle/angular-devtools#43)
fix - 1fc39d9332 fix issue that prevented booleans from being parsed properly
fix - eb3a1c2971 fix issue where last node would be hidden behind breadcrumbs
fix - 8a5fbf5963 fix issues in message bus and watch
fix - dd977f4b26 fix regression that broke assignment of selected node to $ng0 variable (rangle/angular-devtools#89)
fix - 5eba00abe5 fix regression that broke node expansion (rangle/angular-devtools#88)
fix - a8ba83cd30 fix tests and leave todo related to possible typing refactor
fix - 984dfc6db1 fix typo in file names (rangle/angular-devtools#91)
fix - 2aaa03a50d fixed height for controls on flame graph and save button (rangle/angular-devtools#470)
fix - f7ade259fe fixing code review comments
fix - 21a50b10be fixing the bar graph height issue
fix - 5f5307e610 flicker properties when update selected node
fix - 6dd50832a9 frame colors indicate framerate good vs. bad
fix - a7f6562158 get all the property names including getters
fix - 1871c34743 get ng debug object whenever it is required through a function to prevent an issue where it would be set to undefined on page refresh
fix - b46b296255 get proper change detection trigger
fix - 6d86bbc11b get the lifecycle hook name using a more robust approach
fix - fc5801b225 get the lview from the instance context
fix - 5eed92e91c give breadcrumb container a z-index higher than 1 to prevent an issue where scrolling on the x-axis may inadvertently scroll the properties view tab
fix - 41cb658e10 handle corner cases when a component aims to replace an existing one
fix - 199745fd6c handle lifecycle hooks of only components & directives
fix - ff78c66ae9 handle ngFor and ngIf contexts in the profiler
fix - d41dedb85b highlighter should only show the hovered component's name (#44863)
fix - ae6acce53e highlighting of newly added nodes
fix - 3d3d67fd00 implement shutdown event to prevent memory leak when reopening devtools (rangle/angular-devtools#53)
fix - 5d1e60dc9d improve dark mode styles when no ivy detected
fix - df32c6e11e improve the styles in the meta popup
fix - 0763305d0d incorrect input names
fix - 4eeaab5d5e increase the width of the filter
fix - a30d2a5653 index new nodes before firing callbacks to fix issue where some callbacks rely on the newly indexed nodes
fix - 4fc8a075c0 initialization and popup logic
fix - 85e01af432 layout when visualizing the profiling data
fix - 1665bda6cc links to docs in property view tab
fix - 0169295122 linting errors to prevent ci failing (rangle/angular-devtools#469)
fix - ffb46bdc3c lview parsing when trying to get data from an option
fix - 9510a1c38e make edit functionality compatible with new getDirectiveForest api
fix - ec66218c28 make flamegraph scrollable
fix - 36f5c2e0c0 make sure we are not reference dependant
fix - e74dc9e70d make sure we dont access position of an undefined parent
fix - f454498274 make sure we dont fail on null elements
fix - b455eb158e make sure we invoke getComponent with an element
fix - dfc4437afd make sure we update the property explorer on state change (rangle/angular-devtools#821)
fix - 23f8945f2f make the bar chart scrollable
fix - 30978b3718 names of the tiles in the profiler graph
fix - a5955930dd node selection with collapsed nodes
fix - 212e4026f8 nowrap for the material tree items
fix - e24b476624 pass in root element ng context as an LView instead of as a context object
fix - 820ec85ea4 pass property updates to the correct data sources
fix - f8bd3fccd7 preserve proper nesting in flattened node lists
fix - 6422b60568 preserve the expansion status of moved items
fix - 19ce8a6e9e prevent circular dependency between directive-property-resolver and property-data-source
fix - e1691b2ab5 prevent default behaviour before calculating new scroll position to fix bug when traversing directive forest with arrow keys (rangle/angular-devtools#213)
fix - ded6796efb prevent directive forest hooks from being initiated in production applications
fix - e20347090a prevent link in property view body from closing panel header when clicked (rangle/angular-devtools#714)
fix - 509abcf39b prevent mat button css from leaking out of property view header (rangle/angular-devtools#856)
fix - b3fcc8b408 prevent ng-deep component styling from leaking to child components
fix - 632a12579b prevent node overwriting
fix - b127cdc211 prevent race condition between getting nested props and refresh
fix - f93b53bb89 proper alignment of non-expandable props
fix - 570adcf2f5 proper calculation of the lifecycle hook duration
fix - ee0c245b44 proper dev mode detection when app compiled with closure
fix - b2a537a41b proper diffing and expansion of new items
fix - 79f145dc77 proper diffing with unique ids
fix - a8088ac68f proper timing for operations
fix - 6154f8dfdf proper tracking without overwriting previous refs
fix - 60cc2d8fc0 proper typings in shell-chrome for strictNullChecks
fix - a4b748de75 properly emit shutdown event on cleanup and call change detector ref to update ui into loading state
fix - 681feff8d0 recognize app after reopening devtools
fix - 48c140038b refresh & reinitialize on navigation
fix - 5c5345fdd4 remove forgotten markers causing slowdown
fix - b350bfc838 remove jumping when adding nodes
fix - 21ccdc1c62 remove obsolete hover css that is causing contrast issues in dark mode and set the header height to match the new search filter height for consistency
fix - 9ad12dd3c6 remove redundant scrollbar
fix - 8a8b911586 remove relative positioning from profiler content; makes split pane gutter full height for profile details
fix - e55a24cf30 remove runOutsideAngular wrapper on mouse move event
fix - 1181e4cadc remove tree node highlight when a component is selected from the highlighter
fix - 50fbbbcb8f remove tree wrapper height css to let the height default to how many nodes are being displayed (rangle/angular-devtools#244)
fix - db82118f66 remove useless scrollbar from the demo app
fix - da0ce975f8 rename state to properties (rangle/angular-devtools#682)
fix - 7575fc9167 renaming master to main
fix - 0f4dd494f3 reselect node if it changes position after change detection
fix - 6a87b79190 reset the timeline component when discarding a recording
fix - ab221badb4 resize dark mode and cursor
fix - 6727d7e229 set a min width for the property view split tab to prevents styling issues when tab is too small
fix - 0e10241b5c set extension icon and popup only on DevTools background message
fix - 13af13cc5d set more accurate search label
fix - d40cefb5d2 set production flag to false in dev environment
fix - 5ef4bca194 set proper directive item and explorer height
fix - 7a59606aaa set proper height of the tree nodes
fix - cf682b59b5 set proper icon sizes
fix - 5fa1c35579 set proper types of the props in the clipboard copy feature
fix - e032e043cb setting default page for extension
fix - b04649dacb setting min width for input editor and allowing for rendering space
fix - 3f0a2d3120 show date type property value in preview (#44864)
fix - 82a8d5c0aa show elements nested in app elements
fix - 17eea0549b show new items using a class
fix - 815d697efe show not-angular popup for non-angular apps
fix - 8a286f1a07 show proper lifecycle hook names
fix - dc345956ce show properly dynamically inserted content with DOM APIs (rangle/angular-devtools#828)
fix - 3340caf648 show report for replaced nodes in the same tile and get lifecycle hook name
fix - 5bf180afb8 skip node if there is no associated TViewData (rangle/angular-devtools#804)
fix - 67faf7710c small improvements to Properties Details view (rangle/angular-devtools#455)
fix - 37dea7ccd7 sort array indexes in ascending order
fix - edcaa8c89f stop filter input from scrolling with the component forest (rangle/angular-devtools#87)
fix - 3633be9875 Style Changes to Profiler, general color scheme, controls & responsiveness (rangle/angular-devtools#468)
fix - db94717ecb style of editor input
fix - 0aa64aa490 Support Electron (rangle/angular-devtools#849)
fix - f08eaabb25 theming of profiler tab
fix - d66fe32c14 time label on profiler
fix - be814408c8 treemap hover colors highlight selection
fix - 4dec3fb3e6 ui flicker bug (rangle/angular-devtools#49)
fix - db449b531d unsubscribe from file upload Subscription instead of Subject
fix - e6bec2430a update the prod mode detection to also consider VE apps
fix - 1b97432960 update typing of differ objects to fit the new contract of TrackByFunction (rangle/angular-devtools#862)
fix - c5445440bf updating page design
fix - 3b8833cfec use cascading view child/children to fix regression caused by refactor (rangle/angular-devtools#92)
fix - 614919fd61 use the aio docs link rather than github
fix - f9a5069e94 use theming in chrome extension
fix - c3e8311298 use visible gutter size in calculation for split area flex basis' (rangle/angular-devtools#857)
fix - e5d1fcbc96 wait 500ms before checking the tree for a new node
fix - fcfc9ebdc1 webtree sizing (rangle/angular-devtools#203)
fix - 85f2212796 wrong label in the profiler
perf - d95806ef57 cache timeline frames so that the timetraveler doesn't have to process the same frame multiple times
perf - 18457f02f5 disable flame graph animations
perf - 7851fb2348 do not index on mutation of inspector
perf - b3b0879053 don't reformat the same record multiple times
perf - 20398cfa52 faster bar chart formatting
perf - ca0910e59c prevent directive forest from building twice every time a node is selected in the directive explorer
perf - 1a00837b0c prevent highlighter from rebuilding the directive forest every time a node is hovered over in the directive forest
perf - a4a06eea18 stream records incrementally so that they do not get sent all at once
perf - 8a90f5b8b4 switch to on push change detection to optimize profiler; rename variable for readability; null coalesce profileRecords to fix bug when profile profiles no changes (rangle/angular-devtools#3)
perf - 29b9021113 use WeakMap to reduce memory usage when memoizing

devtools tabs

Commit Description
fix - 6c284ef32e stop scroll occuring at tabs level

forms

Commit Description
feat - f490c2de4e support negative indices in FormArray methods. (#44848)
fix - 889de8276d ensure OnPush ancestors are marked dirty when the promise resolves (#44886)
fix - deb9531a31 Update the typed forms migration schematic to find all files. (#44881)
fix - cae1e44608 Update the typed forms migration to use FormArray instead of FormArray<T[]>. (#44933)

router

Commit Description
feat - 910de8bc33 Add Route.title with a configurable TitleStrategy (#43307)

Special Thanks

Alan, Alan Agius, AleksanderBodurri, Amir Rustamzadeh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Arjen, Daan De Smedt, Daniel Díaz, David Shevitz, Doug Parker, Dylan Hunn, Emma Twersky, Esteban Gehring, George Kalpakas, Jessica Janiuk, JimMorrison723, JoostK, Juri Strumpflohner, Lee Robinson, Maarten Tibau, Mark Whitfeld, Minko Gechev, Paul Gschwendtner, Ricardo Mattiazzi Baumgartner, Sumit Arora, Theodore Brown, arturovt, dario-piotrowicz, fru2, kamikopi, markostanimirovic, markwhitfeld, mgechev, renovate[bot] and twerske

13.2.1 (2022-02-02)

animations

Commit Description
perf - 4644886aaf remove no longer needed CssKeyframes classes (#44903) (#44919)

common

Commit Description
fix - b4e4617807 include query parameters for open HTTP requests in verify (#44917)

compiler-cli

Commit Description
fix - 0778e6f7d7 accept nullish coalescing operator for any and unknown types (#44862)
fix - 07185f4ed1 enable nullish coalescing check only with strictNullChecks (#44862)
fix - 4a5ad1793f ensure casing of logical paths is preserved (#44798)

core

Commit Description
fix - 7ec482d9c2 Add back support for namespace URIs in createElement of dom renderer (#44914)
fix - 250dc40a46 flush delayed scoping queue while setting up TestBed (#44814)

forms

Commit Description
fix - 1aebbf8714 ensure OnPush ancestors are marked dirty when the promise resolves (#44886)
fix - 6b7fffcbeb Update the typed forms migration schematic to find all files. (#44881)

Special Thanks

Alan, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Arjen, Daniel Díaz, David Shevitz, Doug Parker, Dylan Hunn, Esteban Gehring, George Kalpakas, Jessica Janiuk, JoostK, Juri Strumpflohner, Lee Robinson, Maarten Tibau, Paul Gschwendtner, Theodore Brown, arturovt, dario-piotrowicz, fru2, markostanimirovic and mgechev

12.2.16 (2022-01-27)

ngcc

Commit Type Description
460befd693 fix support element accesses for export declarations (#44824)

Special Thanks

Andrew Kushnir and JoostK

14.0.0-next.0 (2022-01-26)

language-service

Commit Description
feat - 9d4af65e34 Provide plugin to delegate rename requests to Angular (#44696)

service-worker

Commit Description
feat - ec0a0e0669 add cacheOpaqueResponses option for data-groups (#44723)

Special Thanks

Andrew Kushnir, Dylan Hunn, George Kalpakas, JiaLiPassion, Joey Perrott and ivanwonder

13.2.0 (2022-01-26)

Deprecations

  • The CachedResourceLoader and RESOURCE_CACHE_PROVIDER symbols were previously necessary in some cases to test AOT-compiled components with View Engine, but they are no longer needed since Ivy.

  • The ComponentFactory and ComponentFactoryResolver classes are deprecated. Since Ivy, there is no need to resolve Component factories. Please use other APIs where you Component classes can be used directly (without resolving their factories).

  • Since Ivy, the CompilerOptions.useJit and CompilerOptions.missingTranslation config options are unused, passing them has no effect.

Commit Description
docs - 9c11183e74 deprecate CachedResourceLoader and RESOURCE_CACHE_PROVIDER symbols (#44749)
docs - 9f12e7fea4 deprecate ComponentFactory and ComponentFactoryResolver symbols (#44749)
docs - 4e95a316ce deprecate unused config options from the CompilerOptions interface (#44749)

compiler

Commit Description
feat - a4ab6d6b72 add support for safe calls in templates (#44580)
fix - abd1bc8039 correct spans when parsing bindings with comments (#44785)
fix - ed67a074ce properly compile DI factories when coverage reporting is enabled (#44732)

compiler-cli

Commit Description
feat - fa835b5a29 enable extended diagnostics by default (#44712)
feat - 73424def13 provide the animations for DirectiveMeta (#44630)
fix - fe3e4d6865 Handle ng-template with structural directive in indexer (#44788)
fix - 7316e72ec5 properly index elements when on a template (#44785)
fix - 100091ebf0 remove leftover _extendedTemplateDiagnostics requirements (#44777)
fix - d2ae96f742 skip ExtendedTemplateCheckerImpl construction if there were configuration errors (#44778)

core

Commit Description
fix - 5626b34264 consistently use namespace short name rather than URI (#44766)
fix - 94bfcdd9de error if NgZone.isInAngularZone is called with a noop zone (#44800)

forms

Commit Description
feat - 72092ebd26 Allow a FormControl to use initial value as default. (#44434)
fix - f7aa937cac Make some minor fixups for forward-compatibility with typed forms. (#44540)

language-service

Commit Description
feat - af2a1317cb support completions for animation (#44630)

router

Commit Description
feat - 5a4ddfd4f5 Allow symbol keys for Route data and resolve properties (#44519)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dario Piotrowicz, Derek Cormier, Doug Parker, Douglas Parker, Dylan Hunn, George Kalpakas, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Martin Probst, Oleg Postoev, Stephanie Tuerk, Tim Bowersox, Wiley Marques, Yousaf Nawaz, dario-piotrowicz, iRealNirmal, ivanwonder and shejialuo

13.2.0-rc.1 (2022-01-24)

compiler

Commit Description
fix - ed67a074ce properly compile DI factories when coverage reporting is enabled (#44732)

compiler-cli

Commit Description
fix - 100091ebf0 remove leftover _extendedTemplateDiagnostics requirements (#44777)
fix - d2ae96f742 skip ExtendedTemplateCheckerImpl construction if there were configuration errors (#44778)

core

Commit Description
fix - 5626b34264 consistently use namespace short name rather than URI (#44766)

Special Thanks

Andrew Scott, Doug Parker, Douglas Parker, JoostK, Martin Probst, Oleg Postoev and Stephanie Tuerk

13.2.0-rc.0 (2022-01-19)

Deprecations

  • The CachedResourceLoader and RESOURCE_CACHE_PROVIDER symbols were previously necessary in some cases to test AOT-compiled components with View Engine, but they are no longer needed since Ivy.

  • The ComponentFactory and ComponentFactoryResolver classes are deprecated. Since Ivy, there is no need to resolve Component factories. Please use other APIs where you Component classes can be used directly (without resolving their factories).

  • Since Ivy, the CompilerOptions.useJit and CompilerOptions.missingTranslation config options are unused, passing them has no effect.

  • tap operator subscribe signature is deprecated

Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments

Commit Description
docs - 9c11183e74 deprecate CachedResourceLoader and RESOURCE_CACHE_PROVIDER symbols (#44749)
docs - 9f12e7fea4 deprecate ComponentFactory and ComponentFactoryResolver symbols (#44749)
docs - 4e95a316ce deprecate unused config options from the CompilerOptions interface (#44749)
docs - 34d2292323 update deprecated form of the tap operator in http example (#44738)

animations

Commit Description
fix - adc487fb75 apply setStyles to only rootTimelines (#44515)

common

Commit Description
feat - ed21f5c753 add injector input to ngTemplateOutlet (#44761)

compiler-cli

Commit Description
feat - fa835b5a29 enable extended diagnostics by default (#44712)
perf - 5efebf87be reduce analysis work during incremental rebuilds (#44731)

core

Commit Description
feat - b49ffcd50e allow for injector to be specified when creating an embedded view (#44666)

ngcc

Commit Description
fix - b66e479cdb support element accesses for export declarations (#44669)

Special Thanks

Alan Agius, Andrew Kushnir, AnkitSharma-007, Daniel Díaz, Derek Cormier, Dmytro Mezhenskyi, Doug Parker, Dylan Hunn, Jessica Janiuk, Joey Perrott, JoostK, Kristiyan Kostadinov, Ramesh Thiruchelvam, Yousaf Nawaz, dario-piotrowicz, iRealNirmal, shejialuo and Łukasz Holeczek

13.1.3 (2022-01-19)

animations

Commit Description
fix - af0a152a2c apply setStyles to only rootTimelines (#44515)

compiler-cli

Commit Description
perf - 626f3f230b reduce analysis work during incremental rebuilds (#44731)

ngcc

Commit Description
fix - f9ca4d8499 support element accesses for export declarations (#44669)

Special Thanks

Alan Agius, Andrew Kushnir, AnkitSharma-007, Daniel Díaz, Dmytro Mezhenskyi, Jessica Janiuk, Joey Perrott, JoostK, Ramesh Thiruchelvam, dario-piotrowicz, iRealNirmal and Łukasz Holeczek

13.2.0-next.2 (2022-01-12)

animations

Commit Description
fix - 8ba43a1a1e retain triggers values for moved tracked list items (#44578)

compiler

Commit Description
feat - a4ab6d6b72 add support for safe calls in templates (#44580)
fix - b8ed03b5ad correct spans when parsing bindings with comments (#44678)

compiler-cli

Commit Description
feat - 73424def13 provide the animations for DirectiveMeta (#44630)
fix - 1a9121826e enable narrowing of using type guard methods (#44447)
fix - f8af49eb75 fix crash during type-checking of library builds (#44587)
fix - f83fb3a5f9 handle property reads of ThisReceiver in the indexer (#44678)
fix - eeaabe7fbf incorrectly interpreting $any calls with a property read (#44657)
fix - 92b23f4851 properly index elements (#44678)

forms

Commit Description
feat - 5ae1030462 Add an unused symbol AnyForUntypedForms. (#44467)
fix - f7aa937cac Make some minor fixups for forward-compatibility with typed forms. (#44540)

language-service

Commit Description
feat - af2a1317cb support completions for animation (#44630)
fix - 756761d534 revert the test files for Ivy (#44528)

router

Commit Description
feat - 5a4ddfd4f5 Allow symbol keys for Route data and resolve properties (#44519)

Special Thanks

Abdurrahman Abu-Hijleh, Adam Plumer, Alex Rickabaugh, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Borja Paz Rodríguez, Chihab Otmani, Chris Mancini, Dario Piotrowicz, Doug Parker, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Kyoz, Patrick Prakash, Paul Gschwendtner, Serhey Dolgushev, Yousaf Nawaz, Yuchao Wu, alkavats1, dario-piotrowicz, huangqing, ivanwonder, shejialuo, twerske, wszgrcy and zuckjet

13.1.2 (2022-01-12)

animations

Commit Description
fix - abc217b28e retain triggers values for moved tracked list items (#44578)

compiler

Commit Description
fix - 59eef29a6c correct spans when parsing bindings with comments (#44678)

compiler-cli

Commit Description
fix - 08049fa23f enable narrowing of using type guard methods (#44447)
fix - a26afce68c fix crash during type-checking of library builds (#44587)
fix - 1e918b6f31 handle property reads of ThisReceiver in the indexer (#44678)
fix - 63c8e56a3a incorrectly interpreting $any calls with a property read (#44657)
fix - 60fb27f12d properly index elements (#44678)

language-service

Commit Description
fix - f5addee488 revert the test files for Ivy (#44528)

Special Thanks

Abdurrahman Abu-Hijleh, Adam Plumer, Alex Rickabaugh, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Borja Paz Rodríguez, Chihab Otmani, Chris Mancini, Dario Piotrowicz, Doug Parker, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Kyoz, Patrick Prakash, Paul Gschwendtner, Serhey Dolgushev, Yousaf Nawaz, Yuchao Wu, alkavats1, dario-piotrowicz, huangqing, ivanwonder, shejialuo, twerske, wszgrcy and zuckjet

13.2.0-next.1 (2021-12-15)

animations

Commit Description
fix - 38ddae1c2e don't consume instructions for animateChild (#44357)
fix - bab7ed3541 should not invoke disabled child animations (#37724)

core

Commit Description
feat - 9921b2ca35 Add a migration for typed forms. (#44449)

forms

Commit Description
feat - 72092ebd26 Allow a FormControl to use initial value as default. (#44434)
fix - 6a0dadf46f _reduceValue arrow function now has correct types. (#44483)
fix - 815d4ceeef I indroduced a minor error in a previous PR: pendingValue is a value not a boolean flag. (#44450)

Special Thanks

Alex Rickabaugh, Aristeidis Bampakos, Dylan Hunn, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Spej, Yousaf Nawaz, dario-piotrowicz, faso-dev, jaybell and zuckjet

13.1.1 (2021-12-15)

animations

Commit Description
fix - bb1d4ff315 don't consume instructions for animateChild (#44357)
fix - d8b6adb7bc should not invoke disabled child animations (#37724)

forms

Commit Description
fix - bce108ab49 _reduceValue arrow function now has correct types. (#44483)
fix - 998c1e63fe I indroduced a minor error in a previous PR: pendingValue is a value not a boolean flag. (#44450)

Special Thanks

Aristeidis Bampakos, Dylan Hunn, George Kalpakas, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Spej, Yousaf Nawaz, dario-piotrowicz, faso-dev, jaybell and zuckjet

12.2.15 (2021-12-10)

ngcc

Commit Type Description
b6554d75cd fix correctly resolve UMD dependencies (#44382)

Special Thanks

Alex Rickabaugh and George Kalpakas

13.2.0-next.0 (2021-12-09)

Special Thanks

Alex Rickabaugh

13.1.0 (2021-12-09)

Deprecations

  • The downgradeModule function calls with NgModule factories are deprecated. Please use NgModule class based downgradeModule calls instead.

common

  • TestRequest from @angular/common/http/testing no longer
    accepts ErrorEvent when simulating XHR errors. Instead instances of
    ProgressEvent should be passed, matching with the native browser behavior.

Commit Description
docs - dbc46d68b9 deprecate factory-based signature of the downgradeModule function (#44090)

common

Commit Description
fix - 489cf42cd0 incorrect error type for XHR errors in TestRequest (#36082)
perf - 13362972bb code size reduction of ngFor directive (#44315)

compiler

Commit Description
feat - c85bcb0c63 reference ICU message IDs from their placeholders (#43534)

core

Commit Description
feat - 5dff077d50 add migration to remove entryComponents (#44308)
feat - e65a245a0b add migration to remove entryComponents (#44322)
feat - d56e3f43a1 support TypeScript 4.5 (#44164)

http

Commit Description
feat - d452b388bd add has() method to HttpContext class (#43887)

localize

Commit Description
feat - d3cf222a81 support "associated message ids" for placeholders (#43534)

ngcc

Commit Description
fix - 41265919aa correctly resolve UMD dependencies (#44381)

upgrade

Commit Description
feat - 34f990986c support NgModule class as an argument of the downgradeModule function (#43973)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Doug Parker, Dustin M. Eastway, Dylan Hunn, George Kalpakas, HyperLife1119, Jelle Bruisten, Jessica Janiuk, Joey Perrott, JoostK, Kristiyan Kostadinov, Markus Doggweiler, Paul Gschwendtner, Pei Wang, Pete Bacon Darwin and dario-piotrowicz

13.1.0-next.3 (2021-12-01)

Deprecations

  • The downgradeModule function calls with NgModule factories are deprecated. Please use NgModule class based downgradeModule calls instead.

common

  • TestRequest from @angular/common/http/testing no longer
    accepts ErrorEvent when simulating XHR errors. Instead instances of
    ProgressEvent should be passed, matching with the native browser behavior.

Commit Description
docs - dbc46d68b9 deprecate factory-based signature of the downgradeModule function (#44090)

common

Commit Description
fix - 489cf42cd0 incorrect error type for XHR errors in TestRequest (#36082)

compiler-cli

Commit Description
fix - 6c1573bc08 downlevel transform incorrectly extracting constructor parameters for nested classes (#44281)
fix - 48ca7dce4f interpret string concat calls (#44167)

core

Commit Description
feat - 5dff077d50 add migration to remove entryComponents (#44308)
feat - e65a245a0b add migration to remove entryComponents (#44322)
feat - d56e3f43a1 support TypeScript 4.5 (#44164)
fix - b06e3981bc add missing info about a component in the "pipe could not be found" error message (#44081)
fix - 43dfab447d destroy hooks not set up for useClass provider using forwardRef (#44281)
fix - b930547ffd support cyclic metadata in TestBed overrides (#44215)

forms

Commit Description
fix - 38c02e13a5 make the FormControlStatus available as a public API (#44183)

language-service

Commit Description
fix - 3aafa765ee Correctly parse inputs and selectors with dollar signs (#44268)

ngcc

Commit Description
fix - de0975c6d9 correctly report error when collecting dependencies of UMD module (#44245)
fix - 24b635395f ensure that ngcc does not write a lock-file into node_modules package directories (#44228)
fix - 3c8a5d1c70 support the UMD wrapper function format emitted by Webpack (#44245)

router

Commit Description
fix - f44cb57c12 prevent componentless routes from being detached (#44240)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Artur, Christian-E, David Shevitz, Doug Parker, Douglas Parker, Dylan Hunn, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Kristiyan Kostadinov, Marc Redemske, Paul Gschwendtner, Pei Wang, Pete Bacon Darwin, Ramesh Thiruchelvam, Ravi Chandra, Rohan Pednekar, Ruslan Usmanov, dario-piotrowicz, profanis and unknown

13.0.3 (2021-12-01)

compiler-cli

Commit Description
fix - 6cdbfdbe6e downlevel transform incorrectly extracting constructor parameters for nested classes (#44281)
fix - 305b76b45f interpret string concat calls (#44167)

core

Commit Description
fix - 0ca5c5bd09 add missing info about a component in the "pipe could not be found" error message (#44081)
fix - 907da3977a destroy hooks not set up for useClass provider using forwardRef (#44281)
fix - bcd3b4959b support cyclic metadata in TestBed overrides (#44215)

forms

Commit Description
fix - 96fedd249e make the FormControlStatus available as a public API (#44183)

language-service

Commit Description
fix - cabc1786de Correctly parse inputs and selectors with dollar signs (#44268)

ngcc

Commit Description
fix - b68994d20a correctly report error when collecting dependencies of UMD module (#44245)
fix - 6f5c0c1515 ensure that ngcc does not write a lock-file into node_modules package directories (#44228)
fix - bf5f734e9c support the UMD wrapper function format emitted by Webpack (#44245)

router

Commit Description
fix - d265d0d241 prevent componentless routes from being detached (#44240)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Artur, Christian-E, David Shevitz, Doug Parker, Douglas Parker, Dylan Hunn, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Kristiyan Kostadinov, Marc Redemske, Paul Gschwendtner, Pei Wang, Pete Bacon Darwin, Ramesh Thiruchelvam, Ravi Chandra, Rohan Pednekar, Ruslan Usmanov, dario-piotrowicz, profanis and unknown

12.2.14 (2021-12-01)

compiler

Commit Type Description
e3db0385b6 fix ensure that partially compiled queries can handle forward references (#44124)

ngcc

Commit Type Description
a8be244113 fix correctly report error when collecting dependencies of UMD module (#44245)
fc072935ee fix support the UMD wrapper function format emitted by Webpack (#44245)

Special Thanks

George Kalpakas, Pete Bacon Darwin and iRealNirmal

13.1.0-next.2 (2021-11-17)

Special Thanks

Andrew Kushnir, Armen Vardanyan, Dylan Hunn, Joey Perrott, Martin von Gagern, Paul Gschwendtner, Pete Bacon Darwin, Ramesh Thiruchelvam, dario-piotrowicz and fusho-takahashi

13.0.2 (2021-11-17)

Special Thanks

Andrew Kushnir, Armen Vardanyan, Dylan Hunn, Joey Perrott, Martin von Gagern, Paul Gschwendtner, Pete Bacon Darwin, Ramesh Thiruchelvam, dario-piotrowicz and fusho-takahashi

13.1.0-next.1 (2021-11-10)

compiler

Commit Description
fix - 393efa54e6 ensure that partially compiled queries can handle forward references (#44113)
fix - b249e24979 generate correct code for safe method calls (#44088)

compiler-cli

Commit Description
fix - 2a2744721b ensure literal types are retained when strictNullInputTypes is disabled (#38305)
fix - 247c18dee0 handle pre-release versions when checking version (#44109)

core

Commit Description
fix - 4f8eaac7ff do not use Function constructors in development mode to avoid CSP violations (#43587)

http

Commit Description
feat - d452b388bd add has() method to HttpContext class (#43887)

platform-browser

Commit Description
fix - 236bdff831 use correct parent in animation removeChild callback (#44033)

upgrade

Commit Description
feat - 34f990986c support NgModule class as an argument of the downgradeModule function (#43973)

Special Thanks

A. Singh, Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Dustin M. Eastway, George Kalpakas, HyperLife1119, Jelle Bruisten, Joe Martin (Crowdstaffing), Joel Lefkowitz, Joey Perrott, JoostK, Kristiyan Kostadinov, Michael Urban, Paul Gschwendtner, Pavan Kumar Jadda, Pei Wang, Pete Bacon Darwin, Roman Frołow, dario-piotrowicz, iRealNirmal, ileil, kreuzerk, mgechev, profanis and raman

13.0.1 (2021-11-10)

compiler

Commit Description
fix - ee2031d9f4 ensure that partially compiled queries can handle forward references (#44113)
fix - e5a960b159 generate correct code for safe method calls (#44088)

compiler-cli

Commit Description
fix - dede29e4f3 ensure literal types are retained when strictNullInputTypes is disabled (#38305)
fix - 04df3a0b92 handle pre-release versions when checking version (#44109)

core

Commit Description
fix - 4c700b6244 do not use Function constructors in development mode to avoid CSP violations (#43587)

platform-browser

Commit Description
fix - 30a27adf9a use correct parent in animation removeChild callback (#44033)

Special Thanks

A. Singh, Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, George Kalpakas, Joe Martin (Crowdstaffing), Joel Lefkowitz, Joey Perrott, JoostK, Kristiyan Kostadinov, Michael Urban, Paul Gschwendtner, Pavan Kumar Jadda, Pei Wang, Pete Bacon Darwin, Roman Frołow, dario-piotrowicz, iRealNirmal, ileil, kreuzerk, mgechev, profanis and raman

13.1.0-next.0 (2021-11-03)

compiler

Commit Description
feat - c85bcb0c63 reference ICU message IDs from their placeholders (#43534)

localize

Commit Description
feat - d3cf222a81 support "associated message ids" for placeholders (#43534)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Doug Parker, Dylan Hunn, George Kalpakas, Jessica Janiuk, Joey Perrott, Paul Gschwendtner and Pete Bacon Darwin

13.0.0 (2021-11-03)

Breaking Changes

common

  • The behavior of the SpyLocation used by the RouterTestingModule has changed
    to match the behavior of browsers. It no longer emits a 'popstate' event
    when Location.go is called. In addition, simulateHashChange now
    triggers both a hashchange and a popstate event.
    Tests which use location.go and expect the changes to be picked up by
    the Router should likely change to simulateHashChange instead.
    Each test is different in what it attempts to assert so there is no
    single change that works for all tests. Each test using the SpyLocation to
    simulate browser URL changes should be evaluated on a case-by-case basis.

core

  • TypeScript versions older than 4.4.2 are no longer supported.

  • NodeJS versions older than v12.20.0 are no longer
    supported due to the Angular packages using the NodeJS package exports
    feature with subpath patterns.

  • The WrappedValue class can no longer be imported from @angular/core,
    which may result in compile errors or failures at runtime if outdated
    libraries are used that are still using WrappedValue. The usage of
    WrappedValue should be removed as no replacement is available.

forms

  • A new type called FormControlStatus has been introduced, which is a union of all possible status strings for form controls. AbstractControl.status has been narrowed from string to FormControlStatus, and statusChanges has been narrowed from Observable<any> to Observable<FormControlStatus>. Most applications should consume the new types seamlessly. Any breakage caused by this change is likely due to one of the following two problems: (1) the app is comparing AbstractControl.status against a string which is not a valid status; or, (2) the app is using statusChanges events as if they were something other than strings.

router

  • The default url serializer would previously drop
    everything after and including a question mark in query parameters. That
    is, for a navigation to /path?q=hello?&other=123, the query
    params would be parsed to just {q: 'hello'}. This is
    incorrect because the URI spec allows for question mark characers in
    query data. This change will now correctly parse the params for the
    above example to be {v: 'hello?', other: '123'}.

  • Previously null and undefined inputs for routerLink were
    equaivalent to empty string and there was no way to disable the link's
    navigation.
    In addition, the href is changed from a property HostBinding() to an
    attribute binding (HostBinding('attr.href')). The effect of this
    change is that DebugElement.properties['href'] will now return the
    href value returned by the native element which will be the full URL
    rather than the internal value of the RouterLink href property.

  • The router will no longer replace the browser URL when a new navigation
    cancels an ongoing navigation. This often causes URL flicker and was
    only in place to support some AngularJS hybrid applications. Hybrid
    applications which rely on the navigationId being present on initial
    navigations that were handled by the Angular router should instead
    subscribe to NavigationCancel events and perform the
    location.replaceState themselves to add navigationId to the Router
    state.
    In addition, tests which assert urlChanges on the SpyLocation may
    need to be adjusted to account for the replaceState which is no longer
    triggered.

  • It is no longer possible to use Route.loadChildren using a string
    value. The following supporting classes were removed from
    @angular/core:

  • NgModuleFactoryLoader

  • SystemJsNgModuleFactoryLoader

The @angular/router package no longer exports these symbols:

  • SpyNgModuleFactoryLoader
  • DeprecatedLoadChildren

The signature of the setupTestingRouter function from
@angular/core/testing has been changed to drop its NgModuleFactoryLoader
parameter, as an argument for that parameter can no longer be created.

service-worker

  • The return type of SwUpdate#activateUpdate and SwUpdate#checkForUpdate changed to Promise<boolean>.

Although unlikely, it is possible that this change will cause TypeScript type-checking to fail in
some cases. If necessary, update your types to account for the new
return type.

Deprecations

  • The renderModuleFactory symbol in @angular/platform-server is no longer necessary as of Angular v13.

The renderModuleFactory calls can be replaced with renderModule.

service-worker

  • The SwUpdate#activated observable is deprecated.

The SwUpdate#activated observable only emits values as a direct response to calling
SwUpdate#activateUpdate() and was only useful for determining whether the call resulted in an
update or not. Now, the return value of SwUpdate#activateUpdate() can be used to determine the
outcome of the operation and therefore using SwUpdate#activated does not offer any benefit.

  • The SwUpdate#availalbe observable is deprecated.

The new SwUpdate#versionUpdates observable provides the same information and more. Therefore, it
is possible to rebuild the same behavior as SwUpdate#availalbe using the events emitted by
SwUpdate#versionUpdates and filtering for VersionReadyEvent events.
As a result, the SwUpdate#availalbe observable is now redundant.

Commit Description
docs - 747553dd68 deprecate ViewEngine-based renderModuleFactory (#43757)

bazel

Commit Description
feat - 62d7005a52 add strict_templates and experimental_extended_template_diagnostics to ng_module() rule (#43582)
feat - d977701a43 allow for custom conditions to be set in ng_package targets (#43764)
feat - 4886585875 create transition for enabling partial compilation (#43431)
feat - cd1b52483e expose esm2020 and es2020 conditions in APF package exports (#43740)
feat - 49b82ae561 implement partial compilation APF v13 for ng_package rule (#43431)
feat - 274cb38e0b switch prodmode output to ES2020 (#43431)
feat - 73ac50c447 wire up partial compilation build setting in ng_module (#43431)
fix - e0a72857cc construct a manifest file even when warnings are emitted (#43582)
fix - dbe656d1e0 ngc-wrapped should not rely on linker for external workspaces (#43690)

common

Commit Description
feat - adf4481211 add injection token for default date pipe timezone (#43611)
fix - c6a93001eb synchronise location mock behavior with the navigators (#41730)

compiler

Commit Description
fix - 14b492df26 do not error if $any is used inside a listener (#43866)

compiler-cli

Commit Description
feat - bed121c34f inline resources when generating class metadata calls (#43178)
fix - 263feba5c2 handle nullable expressions correctly in the nullish coalescing extended template diagnostic (#43572)
fix - 8f7fdc59af not evaluating new signature for __spreadArray (#43618)
fix - 426a3ecae7 updates ngc to pass the build when only warnings are emitted (#43673)

core

Commit Description
feat - a3960846da add createNgModuleRef function to create NgModuleRef based on NgModule class (#43580)
feat - fe1f6421d2 add getNgModuleById function to retrieve loaded NgModules by id (#43580)
feat - 81c7eb813c add migration to opt out existing apps from new test module teardown behavior (#43353)
feat - e57691c9c5 Add migration to update empty routerLinks in templates (#43176)
feat - 7dccbdd27b add support for Types in ViewContainerRef.createComponent (#43022)
feat - c14085e434 drop support for TypeScript 4.2 and 4.3 (#43642)
feat - 94ba59bc9d enable test module teardown by default (#43353)
feat - ea61ec2562 support TypeScript 4.4 (#43281)
feat - e0a0d05d45 update node version support range to support v16 (#43740)
fix - 7396021e4b avoid duplicating comments in TestBed teardown migration (#43776)
fix - 7fd0428aae don't rethrow errors if test teardown has been disabled (#43635)
fix - 66fb311d20 incorrect signature for initTestEnvironment (#43615)
fix - 8ae99821d6 support InjectFlags argument in NodeInjector.get() (#41592)
perf - 8878183521 remove support for the deprecated WrappedValue (#43507)

elements

Commit Description
fix - a468213f34 remove ng-add schematic (#43975)
fix - f544a53f5f remove incorrect @angular/platform-browser peer dependency (#43975)

forms

Commit Description
feat - d9d8f950e9 allow disabling min/max validators dynamically (by setting the value to null) (#42978)
feat - e49fc96ed3 Make Form Statuses use stricter types. (#42952)

language-service

Commit Description
feat - b10d90bef6 Add method for retrieving the component template at the cursor location (#43208)
feat - d5f9890c92 auto-apply optional chaining on nullable symbol (#42995)
feat - 69957f72e2 provide snippets for attribute (#43590)
fix - fc3b50e427 exclude the SafePropertyRead when applying the optional chaining (#43321)

migrations

Commit Description
fix - 95a68c5dc3 account for CRLF characters in template migrations (#44013)
fix - 77bd2538cb apply individual expression edits to preserve newline characters (#43519)
fix - d849350c7b Ensure routerLink migration doesn't update unrelated files (#43519)
fix - 2efc18e675 migration failed finding tsconfig file (#43343)
fix - b6f2a55147 prevent migrations from updating external templates multiple times (#44013)

router

Commit Description
feat - 4f3beffdbf emit activate/deactivate events when an outlet gets attached/detached (#43333)
feat - faf9f5a3bc new output that would notify when link is activated (#43280)
feat - 3c6b653089 Option to correctly restore history on failed navigation (#43289)
fix - 784671597e Allow question marks in query param values (#31187)
fix - 796da641f0 Do not modify parts of URL excluded from with 'eager' updates (#43421)
fix - 772e08d14e fix Router's public API for canceledNavigationResolution (#43842)
fix - ccb09b4558 null/undefined routerLink should disable navigation (#43087)
fix - 9e039ca68b Only trigger router navigation on popstate events from Location subscription (#43328)
fix - c5d0bd4966 Prevent URL flicker when new navigations cancel ongoing ones (#43496)
fix - adc68b100b reuse route strategy fix (#43791)
refactor - 361273fad5 remove support for loadChildren string syntax (#43591)

service-worker

Commit Description
feat - 59225f5586 SwUpdate#activeUpdate and SwUpdate#checkForUpdate should have a meaningful outcome (#43668)
feat - 0dc45446fe expose more version update events (#43668)

Special Thanks

Ahmed Ayed, Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bjarki, Charles Lyding, Dmitrij Kuba, Doug Parker, Dylan Hunn, George Kalpakas, Jessica Janiuk, Jochen Kraushaar, Joe Martin (Crowdstaffing), Joey Perrott, Jon Rimmer, JoostK, Kristiyan Kostadinov, Maximilian Köller, Paul Gschwendtner, Pei Wang, Pete Bacon Darwin, Tomasz Domański, Willy Schott, anandtiwary, dario-piotrowicz, iRealNirmal, ivanwonder, krzysztof-grzybek, mgechev and vthinkxie

12.2.13 (2021-11-03)

compiler-cli

Commit Description
fix - 9a89db790f avoid broken references in .d.ts files due to @internal markers (#43965)

core

Commit Description
fix - 8f402c9d06 support InjectFlags argument in NodeInjector.get() (#41592)

Special Thanks

Alan Agius, George Kalpakas, Jochen Kraushaar, Joe Martin (Crowdstaffing), JoostK and vthinkxie

13.0.0-rc.3 (2021-11-01)

core

Commit Description
fix - 8ae99821d6 support InjectFlags argument in NodeInjector.get() (#41592)

elements

Commit Description
fix - a468213f34 remove ng-add schematic (#43975)
fix - f544a53f5f remove incorrect @angular/platform-browser peer dependency (#43975)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Jessica Janiuk, Jochen Kraushaar, Joe Martin (Crowdstaffing), Pete Bacon Darwin, mgechev and vthinkxie

13.0.0-rc.2 (2021-10-27)

compiler-cli

Commit Description
fix - 8e13c351ac avoid broken references in .d.ts files due to @internal markers (#43527)

ngcc

Commit Description
fix - 7c5d642106 support alternate UMD layout when adding new imports (#43931)

router

Commit Description
fix - adc68b100b reuse route strategy fix (#43791)

Special Thanks

Alan Agius, Andrew Kushnir, Doug Parker, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Mladen Jakovljević, Tomasz Domański, Virginia Dooley, Willy Schott, amayer42, dirk diebel, ericcheng2005, iRealNirmal and krzysztof-grzybek

12.2.12 (2021-10-27)

compiler-cli

Commit Description
fix - 112557497c avoid broken references in .d.ts files due to @internal markers (#43527)

ngcc

Commit Description
fix - 067ae54d46 support alternate UMD layout when adding new imports (#43931)

Special Thanks

Alan Agius, Andrew Kushnir, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Mladen Jakovljević, Virginia Dooley, amayer42, dirk diebel and ericcheng2005

13.0.0-rc.1 (2021-10-20)

compiler

Commit Description
fix - 14b492df26 do not error if $any is used inside a listener (#43866)
fix - 8c91e33d5d support i18n interpolated only attribute bindings (#43815)

compiler-cli

Commit Description
fix - 426a3ecae7 updates ngc to pass the build when only warnings are emitted (#43673)

ngcc

Commit Description
fix - c882b9fa8b support alternate wrapper function layout for UMD (#43879)

router

Commit Description
fix - dc6909ad3e Do not clear currentNavigation if already set to next one (#43852)
fix - 772e08d14e fix Router's public API for canceledNavigationResolution (#43842)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, David Shevitz, Doug Parker, George Kalpakas, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kristiyan Kostadinov, Natalia Venditto, Paul Gschwendtner, Pete Bacon Darwin, Younes Jaaidi and dario-piotrowicz

12.2.11 (2021-10-20)

compiler

Commit Description
fix - b9c885b960 support i18n interpolated only attribute bindings (#43815)

ngcc

Commit Description
fix - cab21cea7a support alternate wrapper function layout for UMD (#43879)

router

Commit Description
fix - 58c11865ac Do not clear currentNavigation if already set to next one (#43852)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, David Shevitz, George Kalpakas, Joe Martin (Crowdstaffing), Natalia Venditto, Pete Bacon Darwin, Younes Jaaidi and dario-piotrowicz

13.0.0-rc.0 (2021-10-13)

Deprecations

  • The renderModuleFactory symbol in @angular/platform-server is no longer necessary as of Angular v13.

The renderModuleFactory calls can be replaced with renderModule.

Commit Description
docs - 747553dd68 deprecate ViewEngine-based renderModuleFactory (#43757)

core

Commit Description
fix - 7396021e4b avoid duplicating comments in TestBed teardown migration (#43776)

Special Thanks

Alan Agius, Andrew Scott, Daniel Díaz, David Shevitz, Doug Parker, George Kalpakas, Joe Martin (Crowdstaffing), Joey Perrott, Kristiyan Kostadinov, Paul Gschwendtner, Tanguy Nodet, Thomas Turrell-Croft, dario-piotrowicz, hchiam, markostanimirovic and mgechev

12.2.10 (2021-10-13)

Special Thanks

Alan Agius, Daniel Díaz, David Shevitz, Doug Parker, George Kalpakas, Joe Martin (Crowdstaffing), Tanguy Nodet, Thomas Turrell-Croft, dario-piotrowicz, hchiam, markostanimirovic and mgechev

13.0.0-next.15 (2021-10-07)

bazel

Commit Description
feat - d977701a43 allow for custom conditions to be set in ng_package targets (#43764)

Special Thanks

Dylan Hunn and Paul Gschwendtner

13.0.0-next.14 (2021-10-06)

common

Commit Description
feat - adf4481211a add injection token for default date pipe timezone (#43611)

Special Thanks

Alex Rickabaugh, Dylan Hunn, Kristiyan Kostadinov and Pete Bacon Darwin

13.0.0-next.13 (2021-10-06)

Breaking Changes

core

  • NodeJS versions older than v12.20.0 are no longer
    supported due to the Angular packages using the NodeJS package exports
    feature with subpath patterns.

bazel

Commit Description
feat - cd1b52483e expose esm2020 and es2020 conditions in APF package exports (#43740)

core

Commit Description
feat - e0a0d05d45 update node version support range to support v16 (#43740)

Special Thanks

Alan Agius, Andrew Kushnir, George Kalpakas, Kristiyan Kostadinov, Paul Gschwendtner, Pete Bacon Darwin and dario-piotrowicz

13.0.0-next.12 (2021-10-05)

Breaking Changes

core

  • TypeScript versions older than 4.4.2 are no longer supported.

service-worker

  • The return type of SwUpdate#activateUpdate and SwUpdate#checkForUpdate changed to Promise<boolean>.

Although unlikely, it is possible that this change will cause TypeScript type-checking to fail in
some cases. If necessary, update your types to account for the new
return type.

Deprecations

service-worker

  • The SwUpdate#activated observable is deprecated.

The SwUpdate#activated observable only emits values as a direct response to calling
SwUpdate#activateUpdate() and was only useful for determining whether the call resulted in an
update or not. Now, the return value of SwUpdate#activateUpdate() can be used to determine the
outcome of the operation and therefore using SwUpdate#activated does not offer any benefit.

  • The SwUpdate#availalbe observable is deprecated.

The new SwUpdate#versionUpdates observable provides the same information and more. Therefore, it
is possible to rebuild the same behavior as SwUpdate#availalbe using the events emitted by
SwUpdate#versionUpdates and filtering for VersionReadyEvent events.
As a result, the SwUpdate#availalbe observable is now redundant.

bazel

Commit Description
fix - dbe656d1e0 ngc-wrapped should not rely on linker for external workspaces (#43690)

compiler-cli

Commit Description
fix - 263feba5c2 handle nullable expressions correctly in the nullish coalescing extended template diagnostic (#43572)

core

Commit Description
feat - c14085e434 drop support for TypeScript 4.2 and 4.3 (#43642)
fix - 7fd0428aae don't rethrow errors if test teardown has been disabled (#43635)

language-service

Commit Description
feat - 69957f72e2 provide snippets for attribute (#43590)

router

Commit Description
fix - 2ab2a080b6 unset attachRef when router-outlet is destroyed to avoid mounting a destroyed component (#43697)

service-worker

Commit Description
feat - 59225f5586 SwUpdate#activeUpdate and SwUpdate#checkForUpdate should have a meaningful outcome (#43668)
feat - 0dc45446fe expose more version update events (#43668)
fix - fddb50b597 make ngsw.json generation deterministic and correct (#43679)

Special Thanks

Alan Agius, Andrew Scott, Doug Parker, George Kalpakas, Kristiyan Kostadinov, Maximilian Köller, Paul Gschwendtner, Wey-Han Liaw and ivanwonder

12.2.9 (2021-10-06)

core

Commit Description
fix - b4b441077a handle invalid constructor parameters in partial factory declarations (#43619)

router

Commit Description
fix - 7f6050587d unset attachRef when router-outlet is destroyed to avoid mounting a destroyed component (#43697)

service-worker

Commit Description
fix - c4ecc07838 make ngsw.json generation deterministic and correct (#43679)

Special Thanks

Alan Agius, Daniel Díaz, George Kalpakas, JoostK, Kristiyan Kostadinov, Pete Bacon Darwin, Wey-Han Liaw, dario-piotrowicz, iRealNirmal, little-pinecone, mgechev, ultrasonicsoft and xiaohanxu-nick

13.0.0-next.11 (2021-10-04)

core

Commit Description
feat - a3960846da add createNgModuleRef function to create NgModuleRef based on NgModule class (#43580)
feat - fe1f6421d2 add getNgModuleById function to retrieve loaded NgModules by id (#43580)
feat - 81c7eb813c add migration to opt out existing apps from new test module teardown behavior (#43353)
feat - 94ba59bc9d enable test module teardown by default (#43353)

Special Thanks

Andrew Kushnir, Andrew Scott, Charles Lyding, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, dario-piotrowicz, iRealNirmal, mgechev and ultrasonicsoft

13.0.0-next.10 (2021-10-01)

Breaking Changes

core

  • The WrappedValue class can no longer be imported from @angular/core,
    which may result in compile errors or failures at runtime if outdated
    libraries are used that are still using WrappedValue. The usage of
    WrappedValue should be removed as no replacement is available.

bazel

Commit Description
feat - 4886585875 create transition for enabling partial compilation (#43431)
feat - 49b82ae561 implement partial compilation APF v13 for ng_package rule (#43431)
feat - 274cb38e0b switch prodmode output to ES2020 (#43431)
feat - 73ac50c447 wire up partial compilation build setting in ng_module (#43431)

core

Commit Description
fix - ad6407dcd0 handle invalid constructor parameters in partial factory declarations (#43619)
perf - 8878183521 remove support for the deprecated WrappedValue (#43507)

Special Thanks

Daniel Díaz, George Kalpakas, JoostK, Paul Gschwendtner, Pete Bacon Darwin, dario-piotrowicz, little-pinecone and xiaohanxu-nick

13.0.0-next.9 (2021-09-30)

Breaking Changes

router

  • It is no longer possible to use Route.loadChildren using a string
    value. The following supporting classes were removed from
    @angular/core:

  • NgModuleFactoryLoader

  • SystemJsNgModuleFactoryLoader

The @angular/router package no longer exports these symbols:

  • SpyNgModuleFactoryLoader
  • DeprecatedLoadChildren

The signature of the setupTestingRouter function from
@angular/core/testing has been changed to drop its NgModuleFactoryLoader
parameter, as an argument for that parameter can no longer be created.

bazel

Commit Description
feat - 62d7005a52 add strict_templates and experimental_extended_template_diagnostics to ng_module() rule (#43582)
fix - e0a72857cc construct a manifest file even when warnings are emitted (#43582)

compiler-cli

Commit Description
fix - 8d2b6affcd correctly interpret token arrays in @Injectable deps (#43226)
fix - 8f7fdc59af not evaluating new signature for __spreadArray (#43618)

core

Commit Description
feat - 7dccbdd27b add support for Types in ViewContainerRef.createComponent (#43022)
fix - 66fb311d20 incorrect signature for initTestEnvironment (#43615)

language-service

Commit Description
fix - 3e37e8979d provide dom event completions (#43299)

ngcc

Commit Description
fix - 988cca7ef5 do not fail for packages which correspond with Object members (#43589)

router

Commit Description
feat - 4f3beffdbf emit activate/deactivate events when an outlet gets attached/detached (#43333)
refactor - 361273fad5 remove support for loadChildren string syntax (#43591)

Special Thanks

Adrien Crivelli, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bobby Galli, Charles Lyding, Chris, Daniel Díaz, Dmitrij Kuba, Doug Parker, JoostK, Kristiyan Kostadinov, Pete Bacon Darwin, Rafael Santana, Raj Sekhar, Ricardo Chavarria, Teri Glover, dario-piotrowicz, enisfr and wszgrcy

12.2.8 (2021-09-30)

compiler-cli

Commit Description
fix - c1338bf837 correctly interpret token arrays in @Injectable deps (#43226)

language-service

Commit Description
fix - c8f8d7d3b1 provide dom event completions (#43299)

ngcc

Commit Description
fix - 69299f7d4d do not fail for packages which correspond with Object members (#43589)

service-worker

Commit Description
fix - 3cf41354ae do not unassign clients from a broken version (#43518)

Special Thanks

Adrien Crivelli, Alex Rickabaugh, Andrew Scott, Bobby Galli, Chris, Daniel Díaz, Dario Piotrowicz, George Kalpakas, Joe Martin (Crowdstaffing), JoostK, Pete Bacon Darwin, Rafael Santana, Raj Sekhar, Ricardo Chavarria, Teri Glover, Virginia Dooley, dario-piotrowicz, enisfr and wszgrcy

13.0.0-next.8 (2021-09-27)

core

Commit Description
feat - ea61ec2562 support TypeScript 4.4 (#43281)

forms

Commit Description
feat - d9d8f950e9 allow disabling min/max validators dynamically (by setting the value to null) (#42978)

service-worker

Commit Description
fix - e131540f71 do not unassign clients from a broken version (#43518)

Special Thanks

Alan Agius, Daniel Díaz, Dario Piotrowicz, George Kalpakas, Joe Martin (Crowdstaffing), Kristiyan Kostadinov, Teri Glover, Virginia Dooley and iRealNirmal

13.0.0-next.7 (2021-09-22)

Breaking Changes

router

  • The router will no longer replace the browser URL when a new navigation
    cancels an ongoing navigation. This often causes URL flicker and was
    only in place to support some AngularJS hybrid applications. Hybrid
    applications which rely on the navigationId being present on initial
    navigations that were handled by the Angular router should instead
    subscribe to NavigationCancel events and perform the
    location.replaceState themselves to add navigationId to the Router
    state.
    In addition, tests which assert urlChanges on the SpyLocation may
    need to be adjusted to account for the replaceState which is no longer
    triggered.

common

Commit Description
fix - df792ebc26 titlecase pipe incorrectly handling numbers (#43476)

compiler

Commit Description
fix - feba4d2719 include leading whitespace in source-spans of i18n messages (#43132)

compiler-cli

Commit Description
fix - 9470f56ad3 handle directives that refer to a namespaced class in a type parameter bound (#43511)

migrations

Commit Description
fix - 77bd2538cb apply individual expression edits to preserve newline characters (#43519)
fix - d849350c7b Ensure routerLink migration doesn't update unrelated files (#43519)

platform-browser

Commit Description
fix - 35725f5550 improve error message for missing animation trigger (#41356)

router

Commit Description
fix - c5d0bd4966 Prevent URL flicker when new navigations cancel ongoing ones (#43496)

Special Thanks

Andrew Scott, Daniel Díaz, George Kalpakas, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Mwiku, Pei Wang, Pete Bacon Darwin, Teri Glover, Virginia Dooley, Xiaohanxu1996, dario-piotrowicz and kirjs

12.2.7 (2021-09-22)

common

Commit Description
fix - 2bb4bf1468 titlecase pipe incorrectly handling numbers (#43476)

compiler

Commit Description
fix - 9c8a1f8a71 include leading whitespace in source-spans of i18n messages (#43132)

compiler-cli

Commit Description
fix - defb02f11e handle directives that refer to a namespaced class in a type parameter bound (#43511)

platform-browser

Commit Description
fix - adc7c56ede improve error message for missing animation trigger (#41356)

Special Thanks

Andrew Scott, Daniel Díaz, George Kalpakas, JoostK, Kristiyan Kostadinov, Mwiku, Pete Bacon Darwin, Teri Glover, Virginia Dooley, Xiaohanxu1996, dario-piotrowicz and kirjs

13.0.0-next.6 (2021-09-15)

animations

Commit Description
fix - 6c84c5f513 emit pure annotations to static property initializers (#43344)

core

Commit Description
fix - c80278ac4a emit pure annotations to static property initializers (#43344)

router

Commit Description
fix - 0e8548f667 Allow renavigating to failed URLs (#43424)
fix - 796da641f0 Do not modify parts of URL excluded from with 'eager' updates (#43421)
fix - 9e039ca68b Only trigger router navigation on popstate events from Location subscription (#43328)

service-worker

Commit Description
fix - 59353c6305 clear service worker cache in safety worker (#43324)

Special Thanks

Alan Agius, Amadou Sall, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bjarki, Charles Lyding, David Shevitz, George Kalpakas, Joe Martin (Crowdstaffing), Michele Stieven, Naveed Ahmed, Pei Wang, dario-piotrowicz, mezhik91 and mgechev

12.2.6 (2021-09-15)

animations

Commit Description
fix - 141fde1632 emit pure annotations to static property initializers (#43344)

core

Commit Description
fix - ca510c87c5 emit pure annotations to static property initializers (#43344)

router

Commit Description
fix - 4034f252c9 Allow renavigating to failed URLs (#43424)

service-worker

Commit Description
fix - a102b27641 clear service worker cache in safety worker (#43324)

Special Thanks

Alan Agius, Amadou Sall, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bjarki, David Shevitz, George Kalpakas, Joe Martin (Crowdstaffing), Michele Stieven, Naveed Ahmed, dario-piotrowicz, mezhik91 and mgechev

13.0.0-next.5 (2021-09-08)

Breaking Changes

common

  • The behavior of the SpyLocation used by the RouterTestingModule has changed
    to match the behavior of browsers. It no longer emits a 'popstate' event
    when Location.go is called. In addition, simulateHashChange now
    triggers both a hashchange and a popstate event.
    Tests which use location.go and expect the changes to be picked up by
    the Router should likely change to simulateHashChange instead.
    Each test is different in what it attempts to assert so there is no
    single change that works for all tests. Each test using the SpyLocation to
    simulate browser URL changes should be evaluated on a case-by-case basis.

common

Commit Description
fix - c6a93001eb synchronise location mock behavior with the navigators (#41730)

language-service

Commit Description
fix - fc3b50e427 exclude the SafePropertyRead when applying the optional chaining (#43321)

migrations

Commit Description
fix - 2efc18e675 migration failed finding tsconfig file (#43343)

router

Commit Description
feat - 3c6b653089 Option to correctly restore history on failed navigation (#43289)
fix - 95f3aecc29 add more context to Unhandled Navigation Error (#43291)

Special Thanks

Ahmed Ayed, Alan Agius, Andrew Scott, Charles Barnes, Enea Jahollari, George Kalpakas, Ikko Ashimine, Paul Gschwendtner, Pete Bacon Darwin, William Sedlacek, dario-piotrowicz and ivanwonder

12.2.5 (2021-09-08)

router

Commit Description
fix - a0bd6e90f9 add more context to Unhandled Navigation Error (#43291)

Special Thanks:

Alan Agius, Charles Barnes, Enea Jahollari, George Kalpakas, Ikko Ashimine, Paul Gschwendtner, Pete Bacon Darwin, William Sedlacek and dario-piotrowicz

13.0.0-next.4 (2021-09-01)

compiler-cli

Commit Description
fix - 4341a5f4cb Emit type annotations for synthesized decorator fields (#43021)

router

Commit Description
feat - faf9f5a3bc new output that would notify when link is activated (#43280)

Special Thanks:

Alan Agius, Andrew Scott, Daniel Trevino, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Kristiyan Kostadinov, anandtiwary, nickreid and segunb

12.2.4 (2021-09-01)

compiler-cli

Commit Description
fix - 8233906be2 Emit type annotations for synthesized decorator fields (#43021)

Special Thanks:

Andrew Scott, Daniel Trevino, George Kalpakas, Joey Perrott, Kristiyan Kostadinov, nickreid and segunb

13.0.0-next.3 (2021-08-25)

Breaking Changes

router

  • Previously null and undefined inputs for routerLink were
    equaivalent to empty string and there was no way to disable the link's
    navigation.
    In addition, the href is changed from a property HostBinding() to an
    attribute binding (HostBinding('attr.href')). The effect of this
    change is that DebugElement.properties['href'] will now return the
    href value returned by the native element which will be the full URL
    rather than the internal value of the RouterLink href property.

compiler-cli

Commit Description
feat - bed121c34f inline resources when generating class metadata calls (#43178)

core

Commit Description
feat - e57691c9c5 Add migration to update empty routerLinks in templates (#43176)

language-service

Commit Description
feat - b10d90bef6 Add method for retrieving the component template at the cursor location (#43208)

router

Commit Description
fix - ccb09b4558 null/undefined routerLink should disable navigation (#43087)

service-worker

Commit Description
fix - 6e924313c3 NPE if onActionClick is undefined (#43210)

Special Thanks:

Alex Rickabaugh, Andrew Scott, Daniel Trevino, George Kalpakas, Paul Gschwendtner, dario-piotrowicz and shlasouski

12.2.3 (2021-08-25)

service-worker

Commit Description
fix - fc7f92159d NPE if onActionClick is undefined (#43210)

Special Thanks:

Daniel Trevino, Erik Slack, George Kalpakas, dario-piotrowicz and shlasouski

13.0.0-next.2 (2021-08-18)

animations

Commit Description
fix - 3cb1f18f97 add pure annotations to static property initializers (#43064)

core

Commit Description
fix - 27a89a9298 add pure annotations to static property initializers (#43064)

language-service

Commit Description
feat - d5f9890c92 auto-apply optional chaining on nullable symbol (#42995)

platform-browser

Commit Description
perf - 7e71370fe6 avoid intermediate arrays in server transition (#43145)

router

Commit Description
fix - 286b2807de eagerly update internal state on browser-triggered navigations (#43102)

Special Thanks:

Alan Agius, Andrew Scott, Aristeidis Bampakos, Charles Lyding, Dylan Hunn, Edoardo Dusi, Erik Slack, George Kalpakas, Joe Martin (Crowdstaffing), Joey Perrott, Kirk Larkin, Kristiyan Kostadinov, Paul Gschwendtner, Pete Bacon Darwin, TIffany Davis, Theoklitos Bampouris, ali, dario-piotrowicz, ivanwonder and pichuser

12.2.2 (2021-08-18)

animations

Commit Description
fix - bb6555979d add pure annotations to static property initializers (#43064)

core

Commit Description
fix - 738b23347e add pure annotations to static property initializers (#43064)

platform-browser

Commit Description
perf - 535837e617 avoid intermediate arrays in server transition (#43145)

router

Commit Description
fix - 6449590ec8 eagerly update internal state on browser-triggered navigations (#43102)

Special Thanks:

Andrew Scott, Aristeidis Bampakos, Charles Lyding, Edoardo Dusi, George Kalpakas, Joe Martin (Crowdstaffing), Joey Perrott, Kirk Larkin, Kristiyan Kostadinov, Pete Bacon Darwin, TIffany Davis, Theoklitos Bampouris, ali, dario-piotrowicz and pichuser

13.0.0-next.1 (2021-08-11)

forms

Commit Description
e49fc96ed3 feat(forms): Make Form Statuses use stricter types. (#42952)

router

Commit Description
bbad42310b fix(router): ensure check for match options is compatible with property renaming (#43086)
784671597e fix(router): Allow question marks in query param values (#31187)

Breaking Changes

forms

A new type called FormControlStatus has been introduced, which is a union of all possible status strings for form controls. AbstractControl.status has been narrowed from string to FormControlStatus, and statusChanges has been narrowed from Observable<any> to Observable<FormControlStatus>. Most applications should consume the new types seamlessly. Any breakage caused by this change is likely due to one of the following two problems: (1) the app is comparing AbstractControl.status against a string which is not a valid status; or, (2) the app is using statusChanges events as if they were something other than strings.

router

The default url serializer would previously drop everything after and including a question mark in query parameters. That is, for a navigation to /path?q=hello?&other=123, the query params would be parsed to just {q: 'hello'}. This is incorrect because the URI spec allows for question mark characters in query data. This change will now correctly parse the params for the above example to be {v: 'hello?', other: '123'}.

Special Thanks:

Amadou Sall, Andrew Kushnir, Andrew Scott, Daniel Trevino, Dylan Hunn, Erik Slack, Fabien BERNARD, George Kalpakas, Jeroen van Warmerdam, Joey Perrott, Jon Rimmer, Tim Gates and Vugar_Abdullayev

12.2.1 (2021-08-11)

router

Commit Description
dd3abdb9d9 fix(router): ensure check for match options is compatible with property renaming (#43086)

Special Thanks:

Amadou Sall, Andrew Kushnir, Andrew Scott, Daniel Trevino, Erik Slack, Fabien BERNARD, George Kalpakas, Jeroen van Warmerdam, Joey Perrott, Tim Gates and Vugar_Abdullayev

13.0.0-next.0 (2021-08-04)

compiler

Commit Description
f08516db09 fix(compiler): include leading whitespace in source-spans of i18n messages (#42062)

compiler-cli

Commit Description
ed9cfb674f fix(compiler-cli): use correct module resolution context for absolute imports in .d.ts files (#42879)
5fb23eccea perf(compiler-cli): skip analysis in incremental builds for files without Angular behavior (#42562)

core

Commit Description
8628826535 fix(core): incorrect error reported when trying to re-create view which had an error during creation (#43005)
eefe1682e8 fix(core): correctly handle null or undefined in ErrorHandler#handleError() (#42881)

forms

Commit Description
1d9d02696e feat(forms): add hasValidators, addValidators, and removeValidators methods (for both sync and async) (#42838)
a502279592 feat(forms): allow minLength/maxLength validator to be bound to null (#42565)

language-service

Commit Description
f0c5ba08f6 fix(language-service): global autocomplete doesn't work when the user tries to modify the symbol (#42923)
7c35ca0e00 feat(language-service): support autocomplete string literal union types in templates (#42729)

router

Commit Description
0d81b007e4 fix(router): add missing outlet events to RouterOutletContract (#42431)
dbae00195e feat(router): ability to provide custom route reuse strategy via DI for RouterTestingModule (#42434)

Special Thanks:

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Daniel Trevino, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Joe Martin, Joey Perrott, JoostK, Kristiyan Kostadinov, Nichola Alkhouri, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Steven Masala, Teri Glover, Vladyslav, Yuvaraj, atscott, codebriefcase, dario-piotrowicz, iRealNirmal and ivanwonder

12.2.0 (2021-08-04)

compiler

Commit Description
11ef03b36f fix(compiler): include leading whitespace in source-spans of i18n messages (#42062)

core

Commit Description
bd7f0d8b70 fix(core): incorrect error reported when trying to re-create view which had an error during creation (#43005)

language-service

Commit Description
aace1e71d8 fix(language-service): global autocomplete doesn't work when the user tries to modify the symbol (#42923)

Special Thanks:

Alex Rickabaugh, Joe Martin, Joey Perrott, Kristiyan Kostadinov, Nichola Alkhouri, Paul Gschwendtner, Pete Bacon Darwin, atscott, dario-piotrowicz and ivanwonder

12.1.5 (2021-08-04)

compiler

Commit Description
82ca69d6da fix(compiler): include leading whitespace in source-spans of i18n messages (#42062)

Special Thanks:

Alex Rickabaugh, George Kalpakas, Joe Martin, Joey Perrott, Nichola Alkhouri, Paul Gschwendtner, Pete Bacon Darwin, atscott and dario-piotrowicz

12.2.0-rc.0 (2021-07-28)

compiler-cli

Commit Description
ed9cfb674f fix(compiler-cli): use correct module resolution context for absolute imports in .d.ts files (#42879)
5fb23eccea perf(compiler-cli): skip analysis in incremental builds for files without Angular behavior (#42562)

core

Commit Description
eefe1682e8 fix(core): correctly handle null or undefined in ErrorHandler#handleError() (#42881)

forms

Commit Description
1d9d02696e feat(forms): add hasValidators, addValidators, and removeValidators methods (for both sync and async) (#42838)
a502279592 feat(forms): allow minLength/maxLength validator to be bound to null (#42565)

language-service

Commit Description
7c35ca0e00 feat(language-service): support autocomplete string literal union types in templates (#42729)

router

Commit Description
0d81b007e4 fix(router): add missing outlet events to RouterOutletContract (#42431)
dbae00195e feat(router): ability to provide custom route reuse strategy via DI for RouterTestingModule (#42434)

Special Thanks:

Andrew Scott, Daniel Trevino, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Paul Gschwendtner, Pete Bacon Darwin, Steven Masala, Teri Glover, Vladyslav, Yuvaraj, codebriefcase, iRealNirmal and ivanwonder

12.1.4 (2021-07-28)

compiler-cli

Commit Description
77ae4459d3 fix(compiler-cli): use correct module resolution context for absolute imports in .d.ts files (#42879)
f589b01672 perf(compiler-cli): skip analysis in incremental builds for files without Angular behavior (#42562)

core

Commit Description
a779a1029b fix(core): correctly handle null or undefined in ErrorHandler#handleError() (#42881)

Special Thanks:

Andrew Scott, Daniel Trevino, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Paul Gschwendtner, Pete Bacon Darwin, Teri Glover, Vladyslav, Yuvaraj and codebriefcase

12.2.0-next.3 (2021-07-21)

animations

Commit Description
f12c53342c fix(animations): normalize final styles in buildStyles (#42763)

compiler-cli

Commit Description
70c3461be3 fix(compiler-cli): use correct module import for types behind a forwardRef (#42887)
07d7e6034f perf(compiler-cli): optimize cycle detection using a persistent cache (#41271)

core

Commit Description
307dac67bc fix(core): use correct injector when resolving DI tokens from within a directive provider factory (#42886)

Special Thanks:

Alan Agius, Alex Rickabaugh, David Shevitz, George Kalpakas, Joey Perrott, JoostK, Krzysztof Kotowicz, Minko Gechev, Paul Gschwendtner, Renovate Bot and dario-piotrowicz

12.1.3 (2021-07-21)

animations

Commit Description
3cddc3d6bc fix(animations): normalize final styles in buildStyles (#42763)

compiler-cli

Commit Description
d207ea06d1 fix(compiler-cli): use correct module import for types behind a forwardRef (#42887)
e6d520f3d9 perf(compiler-cli): optimize cycle detection using a persistent cache (#41271)

core

Commit Description
a6db152c78 fix(core): use correct injector when resolving DI tokens from within a directive provider factory (#42886)

Special Thanks:

Alan Agius, David Shevitz, George Kalpakas, Joey Perrott, JoostK, Krzysztof Kotowicz, Minko Gechev, Paul Gschwendtner and dario-piotrowicz

12.2.0-next.2 (2021-07-14)

bazel

Commit Description
7e04116d15 fix(bazel): enable dts bundling for Ivy packages (#42728)

common

Commit Description
e42aa6c13b fix(common): re-sort output of KeyValuePipe when compareFn changes (#42821)

compiler

Commit Description
b33665ab2c fix(compiler): add mappings for all HTML entities (#42818)
404c8d0d88 fix(compiler): incorrect context object being referenced from listener instructions inside embedded views (#42755)

compiler-cli

Commit Description
81dce5c664 fix(compiler-cli): check split two way binding (#42601)
4c482bf3f1 fix(compiler-cli): properly emit literal types when recreating type parameters in a different file (#42761)
30c82cd177 fix(compiler-cli): inline type checking instructions no longer prevent incremental reuse (#42759)
4c78984ad2 fix(compiler-cli): support reflecting namespace declarations (#42728)
74350a5cf1 fix(compiler-cli): return directives for an element on a microsyntax template (#42640)

core

Commit Description
cd2d82a91a fix(core): associate the NgModule scope for an overridden component (#42817)
51156f3f07 fix(core): allow proper type inference when ngFor is used with a trackBy function (#42692)
0f23f7343e fix(core): error in TestBed if module is reset mid-compilation in ViewEngine (#42669)

language-service

Commit Description
ffeea63f43 fix(language-service): Do not override TS LS methods not supported by VE NgLS (#42727)

service-worker

Commit Description
cb2ca9a66e fix(service-worker): correctly handle unrecoverable state when a client no longer exists (#42736)
f592a12005 fix(service-worker): avoid storing redundant metadata for hashed assets (#42606)

Special Thanks:

Alan Agius, Andrew Kushnir, Andrew Scott, Arthur Ming, Bastian, Borislav Ivanov, Daniel Trevino, David Gilson, David Shevitz, Gabriele Franchitto, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Mark Goho, Meir Blumenfeld, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Ryan Andersen, Theoklitos Bampouris, behrooz bozorg chami, dario-piotrowicz, ivanwonder and mgechev

12.1.2 (2021-07-14)

bazel

Commit Description
4a8ab4f149 fix(bazel): enable dts bundling for Ivy packages (#42728)

common

Commit Description
d654c7933a fix(common): re-sort output of KeyValuePipe when compareFn changes (#42821)

compiler

Commit Description
2566cbb48c fix(compiler): add mappings for all HTML entities (#42818)
65330f03a9 fix(compiler): incorrect context object being referenced from listener instructions inside embedded views (#42755)

compiler-cli

Commit Description
17d3de25da fix(compiler-cli): properly emit literal types when recreating type parameters in a different file (#42761)
0a17e98ae2 fix(compiler-cli): inline type checking instructions no longer prevent incremental reuse (#42759)
45116097c1 fix(compiler-cli): support reflecting namespace declarations (#42728)
df5cc1fbbf fix(compiler-cli): return directives for an element on a microsyntax template (#42640)

core

Commit Description
63013546e1 fix(core): associate the NgModule scope for an overridden component (#42817)
9ebd41e39c fix(core): allow proper type inference when ngFor is used with a trackBy function (#42692)
41c6877c01 fix(core): error in TestBed if module is reset mid-compilation in ViewEngine (#42669)

language-service

Commit Description
97c18f4527 fix(language-service): Do not override TS LS methods not supported by VE NgLS (#42727)

service-worker

Commit Description
d87917542a fix(service-worker): correctly handle unrecoverable state when a client no longer exists (#42736)
f2523a8fef fix(service-worker): avoid storing redundant metadata for hashed assets (#42606)

Special Thanks:

Alan Agius, Andrew Kushnir, Andrew Scott, Arthur Ming, Bastian, Borislav Ivanov, David Gilson, David Shevitz, Gabriele Franchitto, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Mark Goho, Meir Blumenfeld, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Ryan Andersen, Theoklitos Bampouris, behrooz bozorg chami, dario-piotrowicz, ivanwonder and mgechev

12.2.0-next.1 (2021-06-30)

compiler

Commit Description
9f5cc7c808 feat(compiler): support number separators in templates (#42672)

compiler-cli

Commit Description
37a740c659 fix(compiler-cli): add support for partially evaluating types (#41661)

platform-browser

Commit Description
234b5edcc7 fix(platform-browser): in Meta.addTag() do not add duplicate meta tags (#42703)

Special Thanks:

Alan Agius, Alex Rickabaugh, Dario Piotrowicz, George Kalpakas, George Looshch, Joey Perrott, Kristiyan Kostadinov, Lars Gyrup Brink Nielsen, Paul Gschwendtner, Pete Bacon Darwin, Zach Arend, codebriefcase, dario-piotrowicz, marvinbeckert, mgechev and pavlenko

12.1.1 (2021-06-30)

compiler-cli

Commit Description
f6b828e292 fix(compiler-cli): add support for partially evaluating types (#41661)

platform-browser

Commit Description
d19ddd1a87 fix(platform-browser): in Meta.addTag() do not add duplicate meta tags (#42703)

Special Thanks:

Alan Agius, Dario Piotrowicz, George Kalpakas, George Looshch, Lars Gyrup Brink Nielsen, Paul Gschwendtner, Pete Bacon Darwin, Zach Arend, codebriefcase, dario-piotrowicz, marvinbeckert, mgechev and pavlenko

12.2.0-next.0 (2021-06-24)

This release contains the same set of changes as 12.1.0.

12.1.0 (2021-06-24)

compiler

Commit Description
9de65dbdce fix(compiler): should not break a text token on a non-valid start tag (#42605)
c873440ad2 fix(compiler): do not allow unterminated interpolation to leak into later tokens (#42605)
cc672f05bf feat(compiler): add support for shorthand property declarations in templates (#42421)
f52df99fe3 fix(compiler): generate view restoration for keyed write inside template listener (#42603)

compiler-cli

Commit Description
874de59d35 fix(compiler-cli): change default ngcc hash algorithm to be FIPS compliant (#42582)
729eea5716 fix(compiler-cli): transform type references in generic type parameter default (#42492)

core

Commit Description
873229f24b feat(core): add opt-in test module teardown configuration (#42566)

router

Commit Description
07c1ddc487 fix(router): error if module is destroyed before location is initialized (#42560)

service-worker

Commit Description
cc30dc0713 fix(service-worker): ensure obsolete caches are always cleaned up (#42622)
01128f5b5d fix(service-worker): ensure caches are cleaned up when failing to load state (#42622)
73b0275dc2 fix(service-worker): improve ServiceWorker cache names (#42622)
7507ed2e54 fix(service-worker): use correct names when listing CacheDatabase tables (#42622)
53fe557da7 feat(service-worker): include ServiceWorker version in debug info (#42622)
d546501ab5 feat(service-worker): add openWindow, focusLastFocusedOrOpen and navigateLastFocusedOrOpen (#42520)
9498da1038 fix(service-worker): correctly determine client ID on navigation requests (#42607)

Special Thanks:

Alex Rickabaugh, Dale Harris, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Németh Tamás, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Umair Hafeez, codingnuclei and mgechev

12.1.0-next.6 (2021-06-16)

compiler

Commit Description
8c1e0e6ad0 fix(compiler): always match close tag to the nearest open element (#42554)

compiler-cli

Commit Description
22bda2226b fix(compiler-cli): prevent prior compilations from being retained in watch builds (#42537)

core

Commit Description
3961b3c360 fix(core): ensure that autoRegisterModuleById registration in ɵɵdefineNgModule is not DCE-ed by closure (#42529)

forms

Commit Description
7180ec9e7c fix(forms): changes to status not always being emitted to statusChanges observable for async validators. (#42553)

language-service

Commit Description
4001e9d808 fix(language-service): 'go to defininition' for objects defined in template (#42559)
228beeabd1 fix(language-service): Use last child end span for parent without close tag (#42554)

Special Thanks:

Ahmed Ayed, Alan Agius, Alex Rickabaugh, Andrew Scott, Ankit Choudhary, Aristeidis Bampakos, Daniel Trevino, Dario Piotrowicz, Dylan Hunn, George Kalpakas, Igor Minar, JiaLiPassion, JoostK, Kapunahele Wong, Kristiyan Kostadinov, Marius Bethge, Mladen Jakovljević, Paul Gschwendtner, Pete Bacon Darwin, Pham Huu Hien, Renovate Bot, dario-piotrowicz and gobika21

12.0.5 (2021-06-16)

compiler

Commit Description
89fc131ef8 fix(compiler): always match close tag to the nearest open element (#42554)

compiler-cli

Commit Description
60dbf017fb fix(compiler-cli): prevent prior compilations from being retained in watch builds (#42537)

core

Commit Description
785da0f1bf fix(core): ensure that autoRegisterModuleById registration in ɵɵdefineNgModule is not DCE-ed by closure (#42529)

forms

Commit Description
6f1b907b79 fix(forms): changes to status not always being emitted to statusChanges observable for async validators. (#42553)

language-service

Commit Description
8192f1e1c2 fix(language-service): 'go to defininition' for objects defined in template (#42559)
11e0f53352 fix(language-service): Use last child end span for parent without close tag (#42554)

Special Thanks:

Ahmed Ayed, Alan Agius, Andrew Scott, Ankit Choudhary, Aristeidis Bampakos, Daniel Trevino, Dario Piotrowicz, Dylan Hunn, George Kalpakas, Igor Minar, JiaLiPassion, JoostK, Kapunahele Wong, Kristiyan Kostadinov, Marius Bethge, Pete Bacon Darwin, Pham Huu Hien, dario-piotrowicz and gobika21

12.1.0-next.5 (2021-06-09)

common

Commit Description
85c7f7691e fix(common): infer correct type when trackBy is used in ngFor (#41995)
374fa2c26f fix(common): initialize currencyCode in currencyPipe (#40505)

compiler

Commit Description
afd68e5674 feat(compiler): emit diagnostic for shadow dom components with an invalid selector (#42245)
ba084857ea feat(compiler): support safe keyed read expressions (#41911)

compiler-cli

Commit Description
bd1836b999 fix(compiler-cli): exclude type-only imports from cycle analysis (#42453)

core

Commit Description
25f763cff8 feat(core): support TypeScript 4.3 (#42022)

forms

Commit Description
34ce635e3a feat(forms): undo revert and add ng-submitted class to forms that have been submitted. (#42132) (#42132)
47270d9e63 feat(forms): add ng-submitted class to forms that have been submitted. (#42132)
751cd83ae3 fix(forms): the min and max validators should work correctly with 0 as a value (#42412)

language-service

Commit Description
a493ea9bcb fix(language-service): fix autocomplete info display for some cases (#42472)
fe22c2b0b6 fix(language-service): Correct rename info for pipe name expressions (#41974)

router

Commit Description
c44ab4f6da fix(router): fix serializeQueryParams logic (#42481)

Special Thanks:

Alex, Alex Inkin, Andrew Kushnir, Andrew Scott, Chris, David Shevitz, Dylan Hunn, George Kalpakas, Gourav102, Igor Minar, Jessica Janiuk, Joey Perrott, JoostK, Kapunahele Wong, Kristiyan Kostadinov, MarsiBarsi, MrJithil, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Sam Severance, Santosh Yadav, Teri Glover, Tiago Temporin, Vahid Mohammadi, anups1, cindygk, iRealNirmal, kuncevic and mgechev

12.0.4 (2021-06-09)

common

Commit Description
200cc31df4 fix(common): infer correct type when trackBy is used in ngFor (#41995)
0dad375de7 fix(common): initialize currencyCode in currencyPipe (#40505)

compiler-cli

Commit Description
b6d6a34eef fix(compiler-cli): exclude type-only imports from cycle analysis (#42453)

forms

Commit Description
50c87e86b6 fix(forms): the min and max validators should work correctly with 0 as a value (#42412)

language-service

Commit Description
34dd3c360b fix(language-service): fix autocomplete info display for some cases (#42472)

router

Commit Description
a77ec5bcab fix(router): fix serializeQueryParams logic (#42481)

Special Thanks:

Alex, Alex Inkin, Andrew Kushnir, Andrew Scott, Chris, David Shevitz, George Kalpakas, Gourav102, Igor Minar, Joey Perrott, JoostK, Kapunahele Wong, Kristiyan Kostadinov, MarsiBarsi, MrJithil, Paul Gschwendtner, Pete Bacon Darwin, Sam Severance, Santosh Yadav, Teri Glover, Tiago Temporin, Vahid Mohammadi, anups1, cindygk, iRealNirmal, kuncevic and mgechev

12.1.0-next.3 (2021-05-26)

forms

Commit Description
3d9062dad7 fix(forms): Add float number support for min and max validator (#42223)

migrations

Commit Description
7f6213a2f4 fix(migrations): add migration to replace /deep/ with ::ng-deep (#42214)

platform-browser

Commit Description
3a6af8e629 fix(platform-browser): update started state on reset (#41608)

Special Thanks:

Alan Agius, Andrew Scott, David Shevitz, George Kalpakas, Igor Minar, Joey Perrott, Kapunahele Wong, Madleina Scheidegger, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Sam Severance, Teri Glover, Zach Arend, chenyunhsin, iRealNirmal, mgechev and twerske

12.0.2 (2021-05-26)

forms

Commit Description
19d7bf4162 fix(forms): Add float number support for min and max validator (#42223)

migrations

Commit Description
11c7bec065 fix(migrations): add migration to replace /deep/ with ::ng-deep (#42214)

platform-browser

Commit Description
84ab81c286 fix(platform-browser): update started state on reset (#41608)

Special Thanks:

Alan Agius, Andrew Scott, David Shevitz, George Kalpakas, Igor Minar, Joey Perrott, Kapunahele Wong, Madleina Scheidegger, Paul Gschwendtner, Pete Bacon Darwin, Sam Severance, Teri Glover, Zach Arend, chenyunhsin, iRealNirmal, mgechev and twerske

12.1.0-next.2 (2021-05-19)

animations

Commit Description
e27ac018ed fix(animations): ensure consistent transition namespace ordering (#19854)
8ad90475e3 fix(animations): update supported range of node versions to only include LTS versions (#41822)
a99aa29040 fix(animations): allow animations on elements in the shadow DOM (#40134)
547363a851 feat(animations): update supported range of node versions (#41544)

bazel

Commit Description
6f0c7fb91c fix(bazel): update supported range of node versions to only include LTS versions (#41822)
d583d926db feat(bazel): update supported range of node versions (#41544)

benchpress

Commit Description
2e7eb270df fix(benchpress): update the check for start and end events (#42085)

common

Commit Description
4bc3cf216d feat(common): add URLSearchParams to request body (#37852)
6b8baad940 fix(common): add body as an optional property on the options of HttpClient.delete (#19438) (#41723)
6e11febf60 fix(common): add right ContentType for boolean values with HttpClient request body(#38924) (#41885)
bce3194f78 fix(common): update supported range of node versions to only include LTS versions (#41822)
1aebf165db fix(common): viewport scroller not finding elements inside the shadow DOM (#41644)
e0250e567a feat(common): update supported range of node versions (#41544)

compiler

Commit Description
3c726c3516 fix(compiler): unclear lexer error when using private identifier in expressions (#42027)
abcd4bbfaa fix(compiler): preserve @page rules in encapsulated styles (#41915)
1758d02972 feat(compiler): support directive selectors with attributes containing $ (#41567)
da6ed1562e fix(compiler): strip scoped selectors from @font-face rules (#41815)
e9952dd7f9 fix(compiler): update supported range of node versions to only include LTS versions (#41822)
73824d5337 fix(compiler): not generating update instructions for ng-template inside alternate namespaces (#41669)
62e3f3279d fix(compiler): non-literal inline templates incorrectly processed in partial compilation (#41583)
dde81ba0cd perf(compiler): reduce amount of generated code for safe accesses and nullish coalescing (#41563)
75cc8133ad feat(compiler): update supported range of node versions (#41544)
e1a2930893 fix(compiler): avoid parsing EmptyExpr with a backwards span (#41581)
ec27bd4ed1 feat(compiler): support nullish coalescing in templates (#41437)

compiler-cli

Commit Description
cd252b99fe fix(compiler-cli): use '' for the source map URL of indirect templates (#41973)
6eafaa7b5e fix(compiler-cli): expose the linker as a Babel plugin (#41918)
35450c78f7 fix(compiler-cli): prefer non-aliased exports in reference emitters (#41866)
b9276eadae fix(compiler-cli): update supported range of node versions to only include LTS versions (#41822)
c3a512a9e9 fix(compiler-cli): match string indexed partial declarations (#41747)
7744e1e673 fix(compiler-cli): allow linker to process minified booleans (#41747)
fe5bf7f53f fix(compiler-cli): autocomplete literal types in templates. (#41456) (#41645)
1b43158af6 fix(compiler-cli): do not error with prepocessing if component has no inline styles (#41602)
b7bd23817e feat(compiler-cli): update supported range of node versions (#41544)
1d12c50f63 fix(compiler-cli): autocomplete literal types in templates. (#41456)
fab1a6468e perf(compiler-cli): cache results of absoluteFromSourceFile (#41475)
c9aa87cec0 fix(compiler-cli): show a more specific error for Ivy NgModules (#41534)
ffea31f433 perf(compiler-cli): allow incremental compilation in the presence of redirected source files (#41448)
7f1651574e fix(compiler-cli): prevent eliding default imports in incremental recompilations (#41557)
3e0fda96b8 fix(compiler-cli): resolve rootDirs to absolute (#41359)
6ba67c6fff feat(compiler-cli): mark ability to use partial compilation mode as stable (#41518)
deacc741e0 fix(compiler-cli): ensure the compiler tracks ts.Programs correctly (#41291)

core

Commit Description
4bc5b4d93b fix(core): global listeners not being bound on non-node host elements (#42014)
a529d4f4f8 fix(core): do not retain dynamically compiled components and modules (#42003)
544e6a5ca1 fix(core): invoke profiler around ngOnDestroy lifecycle hooks (#41969)
e387d22f83 fix(core): AsyncPipe now compatible with RxJS 7 (#41590)
9b4b281c52 fix(core): handle multiple i18n attributes with expression bindings (#41882)
6581a1b48d perf(core): minor improvements to listener instructions (#41807)
af12d8deaa fix(core): update supported range of node versions to only include LTS versions (#41822)
18b33e79d3 perf(core): avoid storing LView in ngContext (#41358)
e66a5fbca6 feat(core): update supported range of node versions (#41544)
f7e391a912 perf(core): optimize getDirectives (#41525)
a07f303708 feat(core): introduce getDirectiveMetadata global debugging utility (#41525)
aa0e54fe97 fix(core): error if DebugRenderer2.destroyNode is called twice in a row (#41565)

elements

Commit Description
2364f7c94a fix(elements): update supported range of node versions to only include LTS versions (#41822)
12fc08bf9c feat(elements): update supported range of node versions (#41544)

forms

Commit Description
a4ebe8656e fix(forms): registerOnValidatorChange should be called for ngModelGroup. (#41971)
ff4f77b0b9 fix(forms): update supported range of node versions to only include LTS versions (#41822)
a0006a6bfb feat(forms): update supported range of node versions (#41544)

language-service

Commit Description
1be5d659a5 fix(language-service): fully de-duplicate reference and rename results (#40523)
a86ca4fe04 feat(language-service): Enable renaming of pipes (#40523)
c3990b4fd4 fix(language-service): update supported range of node versions to only include LTS versions (#41822)
86621bec58 feat(language-service): update supported range of node versions (#41544)
de93a7a4bb fix(language-service): resolve to the pre-compiled style when compiled css url is provided (#41538)
bd34bc9e89 fix(language-service): bound attributes should not break directive matching (#41597)
78236bfdca fix(language-service): use script versions for incremental compilations (#41475)
c7f9516ab9 feat(language-service): implement signature help (#41581)
0f54d6c4a5 fix(language-service): use 'any' instead of failing for inline TCBs (#41513)

localize

Commit Description
992c70df59 fix(localize): relax error to warning for missing target (#41944)
08ca922a68 fix(localize): update supported range of node versions to only include LTS versions (#41822)
590d4dd578 feat(localize): update supported range of node versions (#41544)

platform-browser

Commit Description
96624b71a7 fix(platform-browser): prevent memory leak of style nodes if shadow DOM encapsulation is used (#42005)
8dd382eda5 fix(platform-browser): update supported range of node versions to only include LTS versions (#41822)
ef0d1c3545 feat(platform-browser): update supported range of node versions (#41544)

platform-browser-dynamic

Commit Description
f259c246a6 fix(platform-browser-dynamic): update supported range of node versions to only include LTS versions (#41822)
b714f7b931 feat(platform-browser-dynamic): update supported range of node versions (#41544)

platform-server

Commit Description
1224726c42 fix(platform-server): update supported range of node versions to only include LTS versions (#41822)
c901b4d11f feat(platform-server): update supported range of node versions (#41544)

router

Commit Description
961296adf5 fix(router): update supported range of node versions to only include LTS versions (#41822)
6bceb709df fix(router): Only retrieve stored route when reuse strategy indicates it should reattach (#30263)
a1b2718b92 fix(router): recursively merge empty path matches (#41584)
c30b171d20 feat(router): update supported range of node versions (#41544)
44a7fae00f fix(router): handle new navigations from a NavigationEnd event (#41262)
d28a391385 fix(router): Remove information about attached component when deactivating route (#41381)

service-worker

Commit Description
f3c2abec6c fix(service-worker): update supported range of node versions to only include LTS versions (#41822)
fc597f1db5 feat(service-worker): update supported range of node versions (#41544)

upgrade

Commit Description
7a4414401a fix(upgrade): update supported range of node versions to only include LTS versions (#41822)
98fc4f4b2f fix(upgrade): preserve $interval.flush when ngMocks is being used (#30229)
beafa22de9 feat(upgrade): update supported range of node versions (#41544)

Breaking Changes

Minified UMD bundles are no longer included in the distributed NPM packages.

compiler-cli

Linked libraries no longer generate legacy i18n message ids. Any downstream
application that provides translations for these messages, will need to
migrate their message ids using the localize-migrate command line tool.

core

Angular no longer maintains support for node v10
Previously the ng.getDirectives function threw an error in case a
given DOM node had no Angular context associated with it (for example
if a function was called for a DOM element outside of an Angular app).
This behavior was inconsistent with other debugging utilities under ng
namespace, which handled this situation without raising an exception.
Now calling the ng.getDirectives function for such DOM nodes would
result in an empty array returned from that function.

Special Thanks:

Ajit Singh, Alan Agius, Alan Cohen, Alex Rickabaugh, Amadou Sall, Andrew J Asche, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Ben Lesh, Bendik Skarpnes, Benjamin Kindle, Charles Lyding, Chau Tran, Cosmin Ababei, Daniel Díaz, David Shevitz, Dharmen Shah, Dmitrij Kuba, Dylan Hunn, Eduard Bondarenko, Emily Wenberg, Front-end developer, George Kalpakas, Georgii Dolzhykov, Gopal Jayaraman, Gourav102, Gérôme Grignon, Hugo Mejia, Igor Minar, Jesse Palmer, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Julien Marcou, Kapunahele Wong, Keen Yee Liau, Kirk Larkin, Kristiyan Kostadinov, Lars Gyrup Brink Nielsen, Martin Sikora, Mathias Schäfer, Michael Hladky, Mikhail, Misko Hevery, MrJithil, Nishu Goel, Oluwole Majiyagbe, Paul Gschwendtner, Paul Muriel Biya-Bi, Pete Bacon Darwin, Pierre Portejoie, Renovate Bot, Richard Sithole, Sagar Pandita, Sam Severance, Sumit Arora, Talha Azhar, Teri Glover, Wojciech Okoński, Zach Arend, Zack DeRose, aschaap, cexbrayat, iRealNirmal, iron, jeripeierSBB, mgechev, nirmal bhagwani, pavlenko, profanis, rachid Oussanaa, sovtara, unknown, va-stefanek and wagnermaciel

12.0.1 (2021-05-19)

benchpress

Commit Description
28ee9864a4 fix(benchpress): update the check for start and end events (#42085)

compiler

Commit Description
52c07e403e fix(compiler): unclear lexer error when using private identifier in expressions (#42027)

core

Commit Description
3a46ad96ea fix(core): global listeners not being bound on non-node host elements (#42014)

forms

Commit Description
9b90c03a9f fix(forms): registerOnValidatorChange should be called for ngModelGroup. (#41971)

Special Thanks:

Alex Rickabaugh, Daniel Díaz, David Shevitz, Dylan Hunn, Front-end developer, George Kalpakas, Joey Perrott, Kristiyan Kostadinov, Lars Gyrup Brink Nielsen, MrJithil, Paul Gschwendtner, Renovate Bot, Sam Severance, Sumit Arora, iRealNirmal, iron, mgechev, rachid Oussanaa and wagnermaciel

12.0.0 (2021-05-12)

Bug Fixes

  • animations: ensure consistent transition namespace ordering (#19854) (01cc995)
  • animations: update supported range of node versions to only include LTS versions (#41822) (e918250)
  • animations: cleanup DOM elements when the root view is removed (#41059) (c49b280)
  • animations: allow animations on elements in the shadow DOM (#40134) (dad42c8), closes #25672
  • animations: cleanup DOM elements when the root view is removed (#41001) (a31da48)
  • bazel: update supported range of node versions to only include LTS versions (#41822) (8503246)
  • bazel: update build tooling for latest changes in rules_nodejs (#40710) (696f7bc)
  • bazel: update integration test to use [email protected] (#40710) (34de89a)
  • bazel: update type castings for JSON.parse usage (#40710) (2c90391)
  • benchpress: update type castings for JSON.parse usage (#40710) (e721a5d)
  • common: add right ContentType for boolean values with HttpClient request body(#38924) (#41885) (922a602)
  • common: update supported range of node versions to only include LTS versions (#41822) (f2b6fd8)
  • common: viewport scroller not finding elements inside the shadow DOM (#41644) (c0f5ba3), closes #41470
  • common: temporarily re-export and deprecate XhrFactory (#41393) (7dfa446)
  • common: cleanup location change listeners when the root view is removed (#40867) (38524c4), closes #31546
  • common: allow number or boolean as http params (#40663) (91cdc11), closes #23856
  • common: avoid mutating context object in NgTemplateOutlet (#40360) (d3705b3), closes #24515
  • compiler: preserve @page rules in encapsulated styles (#41915) (3e365ba), closes #26269
  • compiler: strip scoped selectors from @font-face rules (#41815) (2a11cda), closes #41751
  • compiler: update supported range of node versions to only include LTS versions (#41822) (bae8126)
  • compiler: non-literal inline templates incorrectly processed in partial compilation (#41583) (ab257b3)
  • compiler: not generating update instructions for ng-template inside alternate namespaces (#41669) (2bcbbda), closes #41308
  • compiler: avoid parsing EmptyExpr with a backwards span (#41581) (e1a2930)
  • compiler: handle case-sensitive CSS custom properties (#41380) (e112e32), closes #41364
  • compiler: include used components during JIT compilation of partial component declaration (#41353) (ff9470b), closes #41104 #41318
  • compiler: support multiple :host-context() selectors (#40494) (07b7af3), closes #19199
  • compiler: update type castings for JSON.parse usage (#40710) (f728490)
  • compiler-cli: use '' for the source map URL of indirect templates (#41973) (7a4d980), closes #40854
  • compiler-cli: expose the linker as a Babel plugin (#41918) (8fdac8f)
  • compiler-cli: prefer non-aliased exports in reference emitters (#41866) (75bb931), closes #41443 #41277
  • compiler-cli: allow linker to process minified booleans (#41747) (1fb6724), closes #41655
  • compiler-cli: match string indexed partial declarations (#41747) (f885750), closes #41655
  • compiler-cli: update supported range of node versions to only include LTS versions (#41822) (5b463f4)
  • compiler-cli: autocomplete literal types in templates. (#41456) (#41645) (8b2b5ef)
  • compiler-cli: do not error with prepocessing if component has no inline styles (#41602) (a5fe8b9)
  • compiler-cli: ensure the compiler tracks ts.Programs correctly (#41291) (deacc74)
  • compiler-cli: prevent eliding default imports in incremental recompilations (#41557) (7f16515), closes #41377
  • compiler-cli: resolve rootDirs to absolute (#41359) (3e0fda9), closes #36290
  • compiler-cli: add useInlining option to type check config (#41043) (09aefd2), closes #40963
  • compiler-cli: readConfiguration existing options should override options in tsconfig (#40694) (b7c4d07)
  • compiler-cli: extend angularCompilerOptions in tsconfig from node (#40694) (5eb1954), closes #36715
  • compiler-cli: update ngcc integration tests for latest changes in rules_nodejs (#40710) (d7f5755)
  • compiler-cli: update type castings for JSON.parse usage (#40710) (b75d7cb)
  • core: do not retain dynamically compiled components and modules (#42003) (1449c5c), closes #19997
  • core: invoke profiler around ngOnDestroy lifecycle hooks (#41969) (e9ddc57)
  • core: AsyncPipe now compatible with RxJS 7 (#41590) (9759bca)
  • core: handle multiple i18n attributes with expression bindings (#41882) (73c6c64), closes #41869
  • core: update supported range of node versions to only include LTS versions (#41822) (f9c1f08)
  • core: detect synthesized constructors that have been downleveled using TS 4.2 (#41305) (274dc15), closes #41298
  • core: Switch emitDistinctChangesOnlyDefaultValue to true (#41121) (7096246)
  • core: remove duplicated EMPTY_OBJ constant (#41066) (bf158e7)
  • core: remove duplicated EMPTY_ARRAY constant (#40991) (e12d9de)
  • core: allow EmbeddedViewRef context to be updated (#40360) (a3e1719), closes #24515
  • core: make DefaultIterableDiffer keep the order of duplicates (#23941) (a826926), closes #23815
  • core: NgZone coaleascing options should trigger onStable correctly (#40540) (22f9e45)
  • elements: update supported range of node versions to only include LTS versions (#41822) (4f5d094)
  • elements: update type castings for JSON.parse usage (#40710) (efd4149)
  • forms: update supported range of node versions to only include LTS versions (#41822) (dc975ba)
  • http: complete the request on timeout (#39807) (61a0b6d), closes #26453
  • http: emit error on XMLHttpRequest abort event (#40767) (3897265), closes #22324
  • language-service: update supported range of node versions to only include LTS versions (#41822) (9b6198c)
  • language-service: use script versions for incremental compilations (#41475) (78236bf)
  • language-service: Only provide Angular property completions in templates (#41278) (0226a11)
  • language-service: Add plugin option to force strictTemplates (#41062) (e9e7c33)
  • language-service: use single entry point for Ivy and View Engine (#40967) (e986a97)
  • localize: relax error to warning for missing target (#41944) (35ceed2), closes #21690
  • localize: update supported range of node versions to only include LTS versions (#41822) (658ed1f)
  • localize: update type castings for JSON.parse usage (#40710) (4b469c9)
  • ngcc: detect synthesized constructors that have been downleveled using TS 4.2 (#41305) (8d3da56), closes #41298
  • platform-browser: prevent memory leak of style nodes if shadow DOM encapsulation is used (#42005) (d555555), closes #36655
  • platform-browser: update supported range of node versions to only include LTS versions (#41822) (ea05cfd)
  • platform-browser: configure XhrFactory to use BrowserXhr (#41313) (e0028e5), closes #41311
  • platform-browser: update type castings for JSON.parse usage (#40710) (7ecfd2d)
  • platform-browser-dynamic: update supported range of node versions to only include LTS versions (#41822) (bc45029)
  • platform-server: update supported range of node versions to only include LTS versions (#41822) (4b9d4fa)
  • router: update supported range of node versions to only include LTS versions (#41822) (0067edd)
  • router: Only retrieve stored route when reuse strategy indicates it should reattach (#30263) (a4ff071), closes #23162
  • router: recursively merge empty path matches (#41584) (1179dc8), closes #41481
  • router: fragment can be null (#37336) (b555160), closes #23894 #34197
  • router: update type castings for JSON.parse usage (#40710) (350dada)
  • service-worker: update supported range of node versions to only include LTS versions (#41822) (6b823d7)
  • service-worker: update type castings for JSON.parse usage (#40710) (4f7ff96)
  • upgrade: preserve $interval.flush when ngMocks is being used (#30229) (87dc851)
  • upgrade: update supported range of node versions to only include LTS versions (#41822) (10c4523)

Build System

Features

  • animations: update supported range of node versions (#41544) (547363a)
  • animations: add support for disabling animations through BrowserAnimationsModule.withConfig (#40731) (29d8a0a)
  • bazel: update supported range of node versions (#41544) (d583d92)
  • common: update supported range of node versions (#41544) (e0250e5)
  • common: add historyGo method to Location service (#38890) (e05a6f3)
  • common: support ICU standard "stand alone day of week" with DatePipe (#40766) (c56ecab), closes #26922
  • common: implement appendAll() method on HttpParams (#20930) (575a2d1), closes #20798
  • compiler: support nullish coalescing in templates (#41437) (ec27bd4), closes #36528
  • compiler: update supported range of node versions (#41544) (75cc813)
  • compiler: emit @PURE or @pureOrBreakMyCode annotations in the generated code (#41096) (9c21028)
  • compiler-cli: mark ability to use partial compilation mode as stable (#41518) (6ba67c6), closes #41496
  • compiler-cli: update supported range of node versions (#41544) (b7bd238)
  • compiler-cli: support transforming component style resources (#41307) (1de04b1)
  • compiler-cli: support producing Closure-specific PURE annotations (#41021) (fbc9df1)
  • core: introduce getDirectiveMetadata global debugging utility (#41525) (a07f303)
  • core: update supported range of node versions (#41544) (e66a5fb)
  • core: support forwardRef in providedIn of Injectable declaration (#41426) (f7c294e), closes #41205
  • core: add migration for XhrFactory import (#41313) (95ff5ec)
  • core: drop support for TypeScript 4.0 and 4.1 (#41158) (fa04894)
  • core: support TypeScript 4.2 (#41158) (59ef409)
  • core: manually annotate de-sugarred core tree-shakable providers with @pureOrBreakMyCode (#41096) (03d47d5)
  • core: more precise type for APP_INITIALIZER token (#40986) (ca721c2), closes #40729
  • core: drop support for zone.js 0.10.x (#40823) (aaf9b31), closes angular/angular-cli#20034
  • core: support APP_INITIALIZER work with observable (#33222) (ca17ac5), closes #15088
  • elements: update supported range of node versions (#41544) (12fc08b)
  • forms: update supported range of node versions (#41544) (a0006a6)
  • forms: add emitEvent option for AbstractControl-based class methods (#31031) (4ec045e), closes #29662
  • forms: introduce min and max validators (#39063) (8fb83ea), closes #16352
  • http: introduce HttpContext request context (#25751) (1644d64)
  • http: expose a list of human-readable http status codes (#23548) (6fe3a1d), closes #23543
  • language-service: implement signature help (#41581) (c7f9516)
  • language-service: update supported range of node versions (#41544) (86621be)
  • language-service: add perf tracing to LanguageService (#41319) (90f85da)
  • language-service: add command for getting components for a template file (#40655) (5cde4ad)
  • language-service: Add diagnostics to suggest turning on strict mode (#40423) (ecae75f)
  • language-service: Implement getRenameInfo (#40439) (4e8198d)
  • language-service: initial implementation for findRenameLocations (#40140) (9a5ac47)
  • language-service: view template typecheck block (#39974) (d482f5c)
  • localize: update supported range of node versions (#41544) (590d4dd)
  • localize: add scripts to migrate away from legacy message IDs (#41026) (1735430)
  • ngcc: support __read helper as used by TypeScript 4.2 (#41201) (66e9970)
  • ngcc: support __spreadArray helper as used by TypeScript 4.2 (#41201) (7b1214e) #40394
  • platform-browser: update supported range of node versions (#41544) (ef0d1c3)
  • platform-browser-dynamic: update supported range of node versions (#41544) (b714f7b)
  • platform-server: update supported range of node versions (#41544) (c901b4d)
  • platform-server: allow shimming the global env sooner (#40559) (43ecf8a), closes #24551 #39950 #39950
  • router: update supported range of node versions (#41544) (c30b171)
  • router: add migration for ActivatedRouteSnapshot.fragment (#41092) (190fa07), closes #37336
  • router: Add more fine-tuned control in routerLinkActiveOptions (#40303) (6c05c80), closes #13205
  • router: Allow for custom router outlet implementations (#40827) (a82fddf)
  • service-worker: update supported range of node versions (#41544) (fc597f1)
  • upgrade: update supported range of node versions (#41544) (beafa22)

Performance Improvements

  • common: remove unused methods from DomAdapter (#41102) (3c66b10)
  • compiler: reduce amount of generated code for safe accesses and nullish coalescing (#41563) (9a3b82f), closes #41437 #41491
  • compiler-cli: allow incremental compilation in the presence of redirected source files (#41448) (ffea31f)
  • compiler-cli: cache results of absoluteFromSourceFile (#41475) (fab1a64)
  • core: minor improvements to listener instructions (#41807) (9346d61)
  • core: avoid storing LView in ngContext (#41358) (990067a), closes #41047
  • core: optimize getDirectives (#41525) (f7e391a)

BREAKING CHANGES

  • Minified UMD bundles are no longer included in the distributed NPM packages.
  • animations: DOM elements are now correctly removed when the root view is removed.
    If you are using SSR and use the app's HTML for rendering, you will need
    to ensure that you save the HTML to a variable before destorying the
    app.
    It is also possible that tests could be accidentally relying on the old behavior by
    trying to find an element that was not removed in a previous test. If
    this is the case, the failing tests should be updated to ensure they
    have proper setup code which initializes elements they rely on.
  • common: Methods of the PlatformLocation class, namely onPopState and onHashChange,
    used to return void. Now those methods return functions that can be called
    to remove event handlers.
  • common: The methods of the HttpParams class now accept string | number | boolean
    instead of string for the value of a parameter.
    If you extended this class in your application,
    you'll have to update the signatures of your methods to reflect these changes.
  • compiler-cli: Linked libraries no longer generate legacy i18n message ids. Any downstream
    application that provides translations for these messages, will need to
    migrate their message ids using the localize-migrate command line tool.
  • core: Angular no longer maintains support for node v10
  • core: Previously the ng.getDirectives function threw an error in case a
    given DOM node had no Angular context associated with it (for example
    if a function was called for a DOM element outside of an Angular app).
    This behavior was inconsistent with other debugging utilities under ng
    namespace, which handled this situation without raising an exception.
    Now calling the ng.getDirectives function for such DOM nodes would
    result in an empty array returned from that function.
  • core: Switching default of emitDistinctChangesOnlyDefaultValue
    which changes the default behavior and may cause some applications which
    rely on the incorrect behavior to fail.

emitDistinctChangesOnly flag has also been deprecated and will be
removed in a future major release.

The previous implementation would fire changes QueryList.changes.subscribe
whenever the QueryList was recomputed. This resulted in an artificially
high number of change notifications, as it is possible that recomputing
QueryList results in the same list. When the QueryList gets recomputed
is an implementation detail, and it should not be the thing that determines
how often change event should fire.

Unfortunately, fixing the behavior outright caused too many existing
applications to fail. For this reason, Angular considers this fix a
breaking fix and has introduced a flag in @ContentChildren and
@ViewChildren, that controls the behavior.

export class QueryCompWithStrictChangeEmitParent {
  @ContentChildren('foo', {
    // This option is the new default with this change.
    emitDistinctChangesOnly: true,
  })
  foos!: QueryList<any>;
}

For backward compatibility before v12
emitDistinctChangesOnlyDefaultValue was set to false. This change
changes the default to true.

  • core: The type of the APP_INITIALIZER token has been changed to more accurately
    reflect the types of return values that are handled by Angular. Previously,
    each initializer callback was typed to return any, this is now
    Promise<unknown> | Observable<unknown> | void. In the unlikely event that
    your application uses the Injector.get or TestBed.inject API to inject
    the APP_INITIALIZER token, you may need to update the code to account for
    the stricter type.

Additionally, TypeScript may report the TS2742 error if the APP_INITIALIZER
token is used in an expression of which its inferred type has to be emitted
into a .d.ts file. To workaround this, an explicit type annotation is needed,
which would typically be Provider or Provider[].

  • core: Minimum supported zone.js version is 0.11.4

  • forms: The emitEvent option was added to the following FormArray and FormGroup methods:

  • FormGroup.addControl

  • FormGroup.removeControl

  • FormGroup.setControl

  • FormArray.push

  • FormArray.insert

  • FormArray.removeAt

  • FormArray.setControl

  • FormArray.clear

If your app has custom classes that extend FormArray or FormGroup classes and override the
above-mentioned methods, you may need to update your implementation to take the new options into
account and make sure that overrides are compatible from a types perspective.

  • forms: Previously min and max attributes defined on the <input type="number">
    were ignored by Forms module. Now presence of these attributes would
    trigger min/max validation logic (in case formControl, formControlName
    or ngModel directives are also present on a given input) and
    corresponding form control status would reflect that.
  • platform-browser: XhrFactory has been moved from @angular/common/http to @angular/common.

Before

import {XhrFactory} from '@angular/common/http';

After

import {XhrFactory} from '@angular/common';
  • router: Strict null checks will report on fragment potentially being null.
    Migration path: add null check.
  • router: The type of the RouterLinkActive.routerLinkActiveOptions input was
    expanded to allow more fine-tuned control. Code that previously read
    this property may need to be updated to account for the new type.

11.2.14 (2021-05-12)

core

Commit Description
5bb7c0ef3a fix(core): do not retain dynamically compiled components and modules (#42003)
40cc29aa6e fix(core): invoke profiler around ngOnDestroy lifecycle hooks (#41969)

platform-browser

Commit Description
f66c9ae749 fix(platform-browser): prevent memory leak of style nodes if shadow DOM encapsulation is used (#42005)

Special Thanks:

Alex Rickabaugh, Andrew J Asche, Georgii Dolzhykov, Joey Perrott, JoostK, Julien Marcou, Kapunahele Wong, Pete Bacon Darwin, Richard Sithole, Teri Glover, iRealNirmal, mgechev, profanis and va-stefanek

12.0.0-rc.3 (2021-05-10)

compiler

Commit Description
3e365ba81e fix(compiler): preserve @page rules in encapsulated styles (#41915)

compiler-cli

Commit Description
7a4d9805ea fix(compiler-cli): use '' for the source map URL of indirect templates (#41973)

core

Commit Description
1449c5c8ff fix(core): do not retain dynamically compiled components and modules (#42003)
e9ddc57f94 fix(core): invoke profiler around ngOnDestroy lifecycle hooks (#41969)

platform-browser

Commit Description
d5555558d0 fix(platform-browser): prevent memory leak of style nodes if shadow DOM encapsulation is used (#42005)

Special Thanks:

Ajit Singh, Alan Agius, Alex Rickabaugh, Andrew J Asche, George Kalpakas, Georgii Dolzhykov, Igor Minar, Joey Perrott, JoostK, Julien Marcou, Kapunahele Wong, Kristiyan Kostadinov, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Richard Sithole, Teri Glover, iRealNirmal, mgechev, profanis and va-stefanek