PackageTrack

npm · #3838

@angular/core

22.1.4angular/angular

Angular - the core framework

Release timeline

1101 releases since 2016
20182020202220242026

Releases

  1. 18.0.022 May 2024
    Release notes

    Blog post "Angular v18 is now available".

    Breaking Changes

    animations

    • Deprecated matchesElement method has been removed from AnimationDriver as it is unused.

    common

    • The deprecated isPlatformWorkerUi and isPlatformWorkerApp have been removed without replacement, as they serve no purpose since the removal of the WebWorker platform.

    compiler

    • Angular only supports writable expressions inside of two-way bindings.

    compiler-cli

      • Angular no longer supports TypeScript versions older than 5.4.

    core

    • OnPush views at the root of the application need to be marked dirty for their host bindings to refresh. Previously, the host bindings were refreshed for all root views without respecting the OnPush change detection strategy.

    • The ComponentFixture autoDetect feature will no longer refresh the component's host view when the component is OnPush and not marked dirty. This exposes existing issues in components which claim to be OnPush but do not correctly call markForCheck when they need to be refreshed. If this change causes test failures, the easiest fix is to change the component to ChangeDetectionStrategy.Default.

    • ComponentFixture.whenStable now matches the ApplicationRef.isStable observable. Prior to this change, stability of the fixture did not include everything that was considered in ApplicationRef. whenStable of the fixture will now include unfinished router navigations and unfinished HttpClient requests. This will cause tests that await the whenStable promise to time out when there are incomplete requests. To fix this, remove the whenStable, instead wait for another condition, or ensure HttpTestingController mocks responses for all requests. Try adding HttpTestingController.verify() before your await fixture.whenStable to identify the open requests. Also, make sure your tests wait for the stability promise. We found many examples of tests that did not, meaning the expectations did not execute within the test body.

      In addition, ComponentFixture.isStable would synchronously switch to true in some scenarios but will now always be asynchronous.

    • Angular will ensure change detection runs, even when the state update originates from outside the zone, tests may observe additional rounds of change detection compared to the previous behavior.

      This change will be more likely to impact existing unit tests. This should usually be seen as more correct and the test should be updated, but in cases where it is too much effort to debug, the test can revert to the old behavior by adding provideZoneChangeDetection({schedulingMode: NgZoneSchedulingMode.NgZoneOnly}) to the TestBed providers.

      Similarly, applications which may want to update state outside the zone and not trigger change detection can add provideZoneChangeDetection({schedulingMode: NgZoneSchedulingMode.NgZoneOnly}) to the providers in bootstrapApplication or add schedulingMode: NgZoneSchedulingMode.NgZoneOnly to the BootstrapOptions of bootstrapModule.

    • When Angular runs change detection, it will continue to refresh any views attached to ApplicationRef that are still marked for check after one round completes. In rare cases, this can result in infinite loops when certain patterns continue to mark views for check using ChangeDetectorRef.detectChanges. This will be surfaced as a runtime error with the NG0103 code.

    • async has been removed, use waitForAsync instead.

    • The ComponentFixture.autoDetect feature now executes change detection for the fixture within ApplicationRef.tick. This more closely matches the behavior of how a component would refresh in production. The order of component refresh in tests may be slightly affected as a result, especially when dealing with additional components attached to the application, such as dialogs. Tests sensitive to this type of change (such as screenshot tests) may need to be updated. Concretely, this change means that the component will refresh before additional views attached to ApplicationRef (i.e. dialog components). Prior to this change, the fixture component would refresh after other views attached to the application.

    • The exact timing of change detection execution when using event or run coalescing with NgZone is now the first of either setTimeout or requestAnimationFrame. Code which relies on this timing (usually by accident) will need to be adjusted. If a callback needs to execute after change detection, we recommend afterNextRender instead of something like setTimeout.

    • Newly created and views marked for check and reattached during change detection are now guaranteed to be refreshed in that same change detection cycle. Previously, if they were attached at a location in the view tree that was already checked, they would either throw ExpressionChangedAfterItHasBeenCheckedError or not be refreshed until some future round of change detection. In rare circumstances, this correction can cause issues. We identified one instance that relied on the previous behavior by reading a value on initialization which was queued to be updated in a microtask instead of being available in the current change detection round. The component only read this value during initialization and did not read it again after the microtask updated it.

    • Testability methods increasePendingRequestCount, decreasePendingRequestCount and getPendingRequestCount have been removed. This information is tracked with zones.

    http

    • By default we now prevent caching of HTTP requests that require authorization . To opt-out from this behaviour use the includeRequestsWithAuthHeaders option in withHttpTransferCache.

      Example:

      withHttpTransferCache({
        includeRequestsWithAuthHeaders: true,
      })
      

    platform-browser

    • Deprecated StateKey, TransferState and makeStateKey have been removed from @angular/platform-browser, use the same APIs from @angular/core.

    platform-browser-dynamic

    • No longer used RESOURCE_CACHE_PROVIDER APIs have been removed.

    platform-server

    • deprecated platformDynamicServer has been removed. Add an import @angular/compiler and replace the usage with platformServer

    • deprecated ServerTransferStateModule has been removed. TransferState can be use without providing this module.

    • deprecated useAbsoluteUrl and baseUrl been removed from PlatformConfig. Provide and absolute url instead.

    • Legacy handling or Node.js URL parsing has been removed from ServerPlatformLocation.

      The main differences are;

      • pathname is always suffixed with a /.
      • port is empty when http: protocol and port in url is 80
      • port is empty when https: protocol and port in url is 443

    router

    • Guards can now return RedirectCommand for redirects in addition to UrlTree. Code which expects only boolean or UrlTree values in Route types will need to be adjusted.
    • This change allows Route.redirectTo to be a function in addition to the previous string. Code which expects redirectTo to only be a string on Route objects will need to be adjusted.
    • When a a guard returns a UrlTree as a redirect, the redirecting navigation will now use replaceUrl if the initial navigation was also using the replaceUrl option. If this is not desirable, the redirect can configure new NavigationBehaviorOptions by returning a RedirectCommand with the desired options instead of UrlTree.
    • Providers available to the routed components always come from the injector heirarchy of the routes and never inherit from the RouterOutlet. This means that providers available only to the component that defines the RouterOutlet will no longer be available to route components in any circumstances. This was already the case whenever routes defined providers, either through lazy loading an NgModule or through explicit providers on the route config.
    • Providers available to the routed components always come from the injector heirarchy of the routes and never inherit from the RouterOutlet. This means that providers available only to the component that defines the RouterOutlet will no longer be available to route components in any circumstances. This was already the case whenever routes defined providers, either through lazy loading an NgModule or through explicit providers on the route config.

    Deprecations

    common

    • getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits

    core

    • @Component.interpolation is deprecated. Use Angular's delimiters instead.

    http

    • HttpClientModule, HttpClientXsrfModule and HttpClientJsonpModule

      As mentionned, those modules can be replaced by provider function only.

    animations

    Commit Type Description
    bcce85af72 refactor remove deprecated matchesElement from AnimationDriver (#55479)

    common

    Commit Type Description
    d34c033902 refactor Deprecate Local Data API functions (#54483)
    3b0de30b37 refactor remove deprecated isPlatformWorkerApp and isPlatformWorkerUi API (#55302)

    compiler

    Commit Type Description
    91b007e58f fix add math elements to schema (#55631)
    33d0102304 fix allow comments between connected blocks (#55966)
    7fc7f3f05f fix capture all control flow branches for content projection in if blocks (#54921)
    a369f43fbd fix capture switch block cases for content projection (#54921)
    eb625d3783 fix declare for loop aliases in addition to new name (#54942)
    f824911510 fix For FatalDiagnosticError, hide the message field without affecting the emit (#55160)
    a040fb720a fix maintain multiline CSS selectors during CSS scoping (#55509)
    39624c6b12 fix output input flags as a literal (#55215)
    eba92cfa55 fix prevent usage of reserved control flow symbol in custom interpolation context. (#55809)
    7d5bc1c628 fix remove container index from conditional instruction (#55190)
    4eb0165750 fix remove support for unassignable expressions in two-way bindings (#55342)
    e1650e3b13 fix throw error if item name and context variables conflict (#55045)

    compiler-cli

    Commit Type Description
    5bd188a394 feat add partial compilation support for deferred blocks (#54908)
    b02b31a915 feat drop support for TypeScript older than 5.4 (#54961)
    78188e877a fix add diagnostic if initializer API is used outside of an initializer (#54993)
    69a83993b3 fix do not throw when retrieving TCB symbol for signal input with restricted access (#55774)
    4f4f41016e fix dom property binding check in signal extended diagnostic (#54324)
    7a16d7e969 fix don't type check the bodies of control flow nodes in basic mode (#55360)
    8d93597a82 fix fix type narrowing of @if with aliases (#55835)
    9b424d7224 fix preserve original reference to non-deferrable dependency (#54759)
    694ba79cbf fix report cases where initializer APIs are used in a non-directive class (#54993)
    6219341d26 fix report errors when initializer APIs are used on private fields (#54981)
    c04ffb1fa6 fix use switch statements to narrow Angular switch blocks (#55168)

    core

    Commit Type Description
    a730f09ae9 feat Add a public API to establish events to be replayed and an attribute to mark an element with an event handler. (#55356)
    fdd560ea14 feat Add ability to configure zone change detection to use zoneless scheduler (#55252)
    bce5e2344f feat Add build target for jsaction contract binary. (#55319)
    666d646575 feat Add event delegation library to queue up events and replay them when the application is ready (#55121)
    5f06ca8f55 feat add HOST_TAG_NAME token (#54751)
    a600a39d0c feat add support for fallback content in ng-content (#54854)
    146306a141 feat add support for i18n hydration (#54823)
    f09c5a7bc4 feat Add zoneless change detection provider as experimental (#55329)
    d28614b90e feat Modify EventType from an enum to an object. (#55323)
    ac863ded48 feat provide ExperimentalPendingTasks API (#55487)
    1ee9f32621 feat Synchronize changes from internal JSAction codebase. (#55182)
    d888da4606 fix ApplicationRef.tick should respect OnPush for host bindings (#53718)
    64f870c12b fix ApplicationRef.tick should respect OnPush for host bindings (#53718) (#53718)
    8cad4e8cbe fix ComponentFixture autoDetect respects OnPush flag of host view (#54824)
    658cf8c384 fix ComponentFixture stability should match ApplicationRef (#54949)
    2fc11eae9e fix account for re-projected ng-content elements with fallback content (#54854)
    0cbd73c6e9 fix add warning when using zoneless but zone.js is still loaded (#55769)
    d5edfde6ee fix afterRender hooks registered outside change detection can mark views dirty (#55623)
    de7447d15e fix Angular should not ignore changes that happen outside the zone (#55102)
    ba8e465974 fix Change Detection will continue to refresh views while marked for check (#54734)
    5a10f405d3 fix complete the removal of deprecation async function (#55491)
    24bc0ed4f2 fix ComponentFixture autodetect should detect changes within ApplicationRef.tick (#54733)
    1c0ec56c46 fix correctly project single-root content inside control flow (#54921)
    840c375255 fix do not save point-in-time setTimeout and rAF references (#55124)
    10c5cdb49c fix ensure change detection runs in a reasonable timeframe with zone coalescing (#54578)
    ad045efd4b fix Ensure views marked for check are refreshed during change detection (#54735)
    69085ea26e fix error about provideExperimentalCheckNoChangesForDebug uses wrong name (#55824)
    0147e0b85a fix exhaustive checkNoChanges should only do a single pass (#55839)
    e02bcf89cf fix Fix clearing of pending task in zoneless cleanup implementation (#55074)
    0cec9e4f9a fix Fix null dereference error addEvent (#55353)
    44c0ed83a6 fix hide implementation details of ExperimentalPendingTasks (#55516)
    314112de99 fix Prevent markForCheck during change detection from causing infinite loops (#54900)
    a5fa279b6e fix prevent i18n hydration from cleaning projected nodes (#54823)
    6534c035c0 fix Remove deprecated Testability methods (#53768)
    a5c57c7484 fix resolve error for multiple component instances that use fallback content (#55478)
    f44a5e4604 fix support content projection and VCRs in i18n (#54823)
    0510930a25 fix TestBed should not override NgZone from initTestEnvironment (#55226)
    e9a0c86766 fix TestBed should not override NgZone from initTestEnvironment (#55226)
    700c0520bb fix Update ApplicationRef.tick loop to only throw in dev mode (#54848)
    a99cb7ce5b fix zoneless scheduler should check if Zone is defined before accessing it (#55118)
    1fd63e9cff refactor deprecate @Component.interpolation (#55778)

    forms

    Commit Type Description
    1c736dc3b2 feat Unified Control State Change Events (#54579)
    61007dced0 fix Add event for forms submitted & reset (#55667)
    2e27ca9ddf fix Allow canceled async validators to emit. (#55134)

    http

    Commit Type Description
    6f88d80758 feat allow caching requests with different origins between server and client (#55274)
    8eacb6e4b9 feat exclude caching for authenticated HTTP requests (#55034)
    d9b339fdbc fix resolve withRequestsMadeViaParent behavior with withFetch (#55652)
    ef665a40a5 refactor Deprecate HttpClientModule & related modules (#54020)

    language-service

    Commit Type Description
    6d1b82df32 fix allow external projects to use provided compiler options (#55035)
    a48afe0d94 fix avoid generating TS syntactic diagnostics for templates (#55091)
    bd236cc150 fix implement getDefinitionAtPosition for Angular templates (#55269)
    4166dfc1b6 fix prevent underlying TS Service from handling template files (#55003)
    b7f2fd4739 fix use type-only import in plugin factory (#55996)

    migrations

    Commit Type Description
    f914f6a362 feat Migration schematics for HttpClientModule (#54020)
    8459ee46cb fix handle more cases in HttpClientModule migration (#55640)
    c4b2f18709 fix migrate HttpClientTestingModule in test modules (#55803)
    bb4a4016a9 fix preserve existing properties in HttpClientModule migration (#55777)
    f93e5180be fix resolve multiple structural issues with HttpClient migration (#55557)

    platform-browser

    Commit Type Description
    45ae7a6b60 feat add withI18nSupport() in developer preview (#55130)
    23f914f101 fix Use the right namespace for mathML. (#55622)
    cba336d4f1 refactor remove deprecated transfer state APIs (#55474)

    platform-browser-dynamic

    Commit Type Description
    eb20c1a8b1 refactor unused RESOURCE_CACHE_PROVIDER API has been removed (#54875)

    platform-server

    Commit Type Description
    5674c644ab fix add nonce attribute to event record script (#55495)
    e71e869112 fix remove event dispatch script from HTML when hydration is disabled (#55681)
    07ac017731 refactor remove deprecated platformDynamicServer API (#54874)
    e8b588d8b7 refactor remove deprecated ServerTransferStateModule API (#54874)
    3b1967ca64 refactor remove deprecated useAbsoluteUrl and baseUrl from PlatformConfig (#54874)
    2357d3566c refactor remove legacy URL handling logic (#54874)

    router

    Commit Type Description
    4a42961393 feat withNavigationErrorHandler can convert errors to redirects (#55370)
    8735af08b9 feat Add ability to return UrlTree with NavigationBehaviorOptions from guards (#45023)
    87f3f27f90 feat Allow resolvers to return RedirectCommand (#54556)
    2b802587f2 feat Allow Route.redirectTo to be a function which returns a string or UrlTree (#52606)
    60f1d681e0 fix preserve replaceUrl when returning a urlTree from CanActivate (#54042)
    3839cfbb18 fix Routed components never inherit RouterOutlet EnvironmentInjector (#54265)
    da906fdafc fix Routed components never inherit RouterOutlet EnvironmentInjector (#54265)

    service-worker

    Commit Type Description
    3bc63eaaf3 fix avoid running CDs on controllerchange (#54222)
    e598634c10 fix remove controllerchange listener when app is destroyed (#55365)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.9"></a>

    Open source →
  2. 18.0.0-rc.321 May 2024pre-release

    Nothing published for this version

  3. 18.0.0-rc.215 May 2024pre-release

    Nothing published for this version

  4. 18.0.0-rc.18 May 2024pre-release

    Nothing published for this version

  5. 18.0.0-rc.01 May 2024pre-release

    Nothing published for this version

  6. 18.0.0-next.625 Apr 2024pre-release

    Nothing published for this version

  7. 18.0.0-next.517 Apr 2024pre-release

    Nothing published for this version

  8. 18.0.0-next.410 Apr 2024pre-release

    Nothing published for this version

  9. 18.0.0-next.33 Apr 2024pre-release

    Nothing published for this version

  10. 18.0.0-next.228 Mar 2024pre-release

    Nothing published for this version

  11. 18.0.0-next.120 Mar 2024pre-release

    Nothing published for this version

  12. 18.0.0-next.014 Mar 2024pre-release

    Nothing published for this version

  13. 17.3.1217 Jul 2024
    Release notes

    <a name="17.3.12"></a>

    17.3.12 (2024-07-17)

    compiler

    Commit Description
    JIT mode incorrectly interpreting host directive configuration in partial compilation (#57002) (#57003)
    Open source →
    Additional notes

    compiler

    Commit Type Description
    327bae473b fix JIT mode incorrectly interpreting host directive configuration in partial compilation (#57002) (#57003)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="18.1.0"></a>

    Open source →
  14. 17.3.115 Jun 2024

    Nothing published for this version

  15. 17.3.1022 May 2024
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="18.0.0"></a>

    Open source →
  16. 17.3.915 May 2024
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.8"></a>

    Open source →
  17. 17.3.88 May 2024
    Release notes

    compiler

    Commit Type Description
    c21b459ba6 fix add math elements to schema (#55631) (#55645)

    core

    Commit Type Description
    3818436ebc fix don't schedule timer triggers on the server (#55605)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.7"></a>

    Open source →
  18. 17.3.71 May 2024
    Release notes

    compiler-cli

    Commit Type Description
    51ac883167 fix don't type check the bodies of control flow nodes in basic mode (#55558)

    core

    Commit Type Description
    af0eb846a5 fix render hooks should not specifically run outside the Angular zone (#55399)

    router

    Commit Type Description
    3eea50da64 fix Scroller should scroll as soon as change detection completes (#55105)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.6"></a>

    Open source →
  19. 17.3.625 Apr 2024
    Release notes

    core

    Commit Type Description
    826861b1fa fix DeferBlockFixture.render should not wait for stability (#55271)
    5cf14da35c fix make ActivatedRoute inject correct instance inside @defer blocks (#55374)
    8979fba2c5 fix skip defer timers on the server (#55480)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.5"></a>

    Open source →
  20. 17.3.517 Apr 2024
    Release notes

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.4"></a>

    Open source →
  21. 17.3.410 Apr 2024
    Release notes

    common

    Commit Type Description
    53427d875d fix invalid ImageKit quality parameter (#55193)
    766548c3ec fix skip transfer cache on client (#55012)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.2"></a>

    Open source →
  22. 17.3.33 Apr 2024

    Nothing published for this version

  23. 17.3.228 Mar 2024
    Release notes

    compiler

    Commit Type Description
    2b7bad5151 fix invoke method-based tracking function with context (#54960)

    compiler-cli

    Commit Type Description
    b478dfbfda fix report errors when initializer APIs are used on private fields (#55070)

    core

    Commit Type Description
    708ba8115f fix establish proper injector resolution order for @defer blocks (#55079)

    http

    Commit Type Description
    cb433af0e1 fix include transferCache when cloning HttpRequest (#54939)
    64f202cab9 fix manage different body types for caching POST requests (#54980)

    migrations

    Commit Type Description
    2f9d94bc4a fix account for variables in imports initializer (#55081)

    router

    Commit Type Description
    365fd50407 fix RouterLinkActive will always remove active classes when links are not active (#54982)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.1"></a>

    Open source →
  24. 17.3.120 Mar 2024
    Release notes

    compiler

    Commit Type Description
    c0788200e2 fix capture data bindings for content projection purposes in blocks (#54876)

    compiler-cli

    Commit Type Description
    99e9474aa2 fix symbol feature detection for the compiler (#54711)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.3.0"></a>

    Open source →
  25. 17.3.013 Mar 2024
    Release notes

    compiler

    Commit Type Description
    1a6beae8a2 feat Enable template pipeline by default. (#54571)
    f386a04c9d fix handle two-way bindings to signal-based template variables in instruction generation (#54714)
    1f129f114e fix not catching for loop empty tracking expressions (#54772)

    compiler-cli

    Commit Type Description
    12dc4d074e fix account for as expression in docs extraction (#54414)
    da7fbb40f0 fix detect when the linker is working in unpublished angular and widen supported versions (#54439)
    492e03f699 fix flag two-way bindings to non-signal values in templates (#54714)
    5afa4f0ec1 fix support ModuleWithProviders literal detection with typeof (#54650)

    core

    Commit Type Description
    331b16efd2 feat add API to inject attributes on the host node (#54604)
    fb540e169a feat add migration for invalid two-way bindings (#54630)
    c687b8f453 feat expose new output() API (#54650)
    c809069f21 feat introduce outputFromObservable() interop function (#54650)
    aff65fd1f4 feat introduce outputToObservable interop helper (#54650)
    974958913c feat support TypeScript 5.4 (#54414)
    39a50f9a8d fix ensure all initializer functions run in an injection context (#54761)
    243ccce624 fix exclude class attribute intended for projection matching from directive matching (#54800)
    2909e9817d fix prevent infinite loops in clobbered elements check (#54425)
    7243c704cf fix return a readonly signal on asReadonly. (#54706)
    bb35414a38 perf speed up retrieval of DestroyRef in EventEmitter (#54748)

    http

    Commit Type Description
    8d37ed035c fix exclude caching for authenticated HTTP requests (#54746)

    router

    Commit Type Description
    c1c7384e02 feat Add reusable types for router guards (#54580)
    7225485311 fix Navigations triggered by cancellation events should cancel previous navigation (#54710)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.2.4"></a>

    Open source →
  26. 17.3.0-rc.06 Mar 2024pre-release

    Nothing published for this version

  27. 17.3.0-next.128 Feb 2024pre-release

    Nothing published for this version

  28. 17.3.0-next.022 Feb 2024pre-release

    Nothing published for this version

  29. 17.2.46 Mar 2024
    Release notes

    compiler-cli

    Commit Type Description
    917b9bdd2e fix unwrap expressions with type parameters in query read property (#54647)

    core

    Commit Type Description
    586cc24a10 fix apply TestBed provider overrides to @defer dependencies (#54667)
    b558a01c84 fix generic inference for signal inputs may break with --strictFunctionTypes (#54652)
    443e5f1591 fix return a readonly signal on asReadonly. (#54719)
    ffbafc7d4a fix untrack various core operations (#54614)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.2.3"></a>

    Open source →
  30. 17.2.328 Feb 2024
    Release notes

    common

    Commit Type Description
    1a526f2881 perf AsyncPipe should not call markForCheck on subscription (#54554)

    compiler-cli

    Commit Type Description
    2aefed8763 fix catch function instance properties in interpolated signal diagnostic (#54325)
    48aec63ee4 fix identify aliased initializer functions (#54480)
    daf7c611b2 fix identify aliased initializer functions (#54609)

    core

    Commit Type Description
    57123524a2 fix collect providers from NgModules while rendering @defer block (#52881)
    79a32816dc fix fix typo in injectors.svg file (#54596)

    migrations

    Commit Type Description
    dbe673b027 fix resolve infinite loop for a single line element with a long tag name and angle bracket on a new line (#54588)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.2.2"></a>

    Open source →
  31. 17.2.222 Feb 2024
    Release notes

    common

    Commit Type Description
    d34e3298db fix image placeholder not removed in OnPush component (#54515)

    compiler

    Commit Type Description
    6447c0eecc fix adding the inert property to the "SCHEMA" array (#53148)

    compiler-cli

    Commit Type Description
    0a3edfb543 fix correctly detect deferred dependencies across scoped nodes (#54499)
    790f4f7c26 fix use correct symbol name for default imported symbols in defer blocks (#54495)

    core

    Commit Type Description
    3bd5860c74 fix properly execute content queries for root components (#54457)

    migrations

    Commit Type Description
    bb57d34110 fix Fix cf migration regular expression to include underscores (#54533)

    router

    Commit Type Description
    3e31f1a34e fix Clear internal transition when navigation finalizes (#54261)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.2.1"></a>

    Open source →
  32. 17.2.114 Feb 2024
    Release notes

    compiler-cli

    Commit Type Description
    7234824228 fix fix broken version detection condition (#54443)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.2.0"></a>

    Open source →
  33. 17.2.014 Feb 2024
    Release notes

    common

    Commit Type Description
    03c3b3eb79 feat add Netlify image loader (#54311)
    f5c520b836 feat add placeholder to NgOptimizedImage (#53783)

    compiler

    Commit Type Description
    47e6e84101 feat Add a TSConfig option useTemplatePipeline (#54057)
    66e940aebf feat scope selectors in @starting-style (#53943)
    7b4d275f49 fix Fix the template pipeline option (#54148)

    compiler-cli

    Commit Type Description
    7e861c640e feat generate extra imports for component local dependencies in local mode (#53543)
    3263df23f2 feat generate global imports in local compilation mode (#53543)
    b774e22d8e feat make it configurable to generate alias reexports (#53937)
    3e1384048e feat support host directives for local compilation mode (#53877)
    a592904c69 fix allow custom/duplicate decorators for @Injectable classes in local compilation mode (#54139)
    4b1d948b36 fix consider the case of duplicate Angular decorators in local compilation diagnostics (#54139)
    96bcf4fb12 fix forbid custom/duplicate decorator when option forbidOrphanComponents is set (#54139)
    64fa5715c6 fix generating extra imports in local compilation mode when cycle is introduced (#53543)
    6c8b09468a fix highlight the unresolved element in the @Component.styles array for the error LOCAL_COMPILATION_UNRESOLVED_CONST (#54230)
    0970129e20 fix show proper error for custom decorators in local compilation mode (#53983)
    f39cb06418 fix show specific error for unresolved @Directive.exportAs in local compilation mode (#54230)
    f3851b5945 fix show specific error for unresolved @HostBinding's argument in local compilation mode (#54230)
    39ddd884e8 fix show specific error for unresolved @HostListener's event name in local compilation mode (#54230)
    5d633240fd fix show the correct message for the error LOCAL_COMPILATION_UNRESOLVED_CONST when an unresolved symbol used for @Component.styles (#54230)
    58b8a232d6 fix support jumping to definitions of signal-based inputs (#54053)

    core

    Commit Type Description
    702ab28b4c feat add support for model inputs (#54252)
    e95ef2cbc6 feat expose queries as signals (#54283)
    656bc282e3 fix add toString implementation to signals (#54002)
    62b87b4551 fix do not crash for signal query that does not have any matches (#54353)
    4b96f370ee fix expose model signal subcribe for type checking purposes (#54357)
    744cb1e561 fix return the same children query results if there are no changes (#54392)
    6d00115bf4 fix show placeholder block on the server with immediate trigger (#54394)

    http

    Commit Type Description
    1c536250b6 fix Use string body to generate transfer cache key. (#54379)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.1.3"></a>

    Open source →
  34. 17.2.0-rc.19 Feb 2024pre-release

    Nothing published for this version

  35. 17.2.0-rc.08 Feb 2024pre-release

    Nothing published for this version

  36. 17.2.0-next.131 Jan 2024pre-release

    Nothing published for this version

  37. 17.2.0-next.024 Jan 2024pre-release

    Nothing published for this version

  38. 17.1.38 Feb 2024
    Release notes

    compiler-cli

    Commit Type Description
    bc4a6a9715 fix do not error due to multiple components named equally (#54273)
    a997e08c6f fix handle default imports in defer blocks (#53695)
    63a9027720 fix interpolatedSignalNotInvoked diagnostic for model signals (#54338)
    40e1edc977 fix properly catch fatal diagnostics in type checking (#54309)
    9f6605d11b fix support jumping to definitions of signal-based inputs (#54233)

    core

    Commit Type Description
    7df133dcc2 fix afterRender hooks should allow updating state (#54074)
    744e20641a fix Fix possible infinite loop with markForCheck by partially reverting #54074 (#54329)
    0fb114274c fix update imports to be compatible with rxjs 6 (#54193)

    router

    Commit Type Description
    238f2a8bc9 fix Clear internal transition when navigation finalizes (#54261)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.1.2"></a>

    Open source →
  39. 17.1.231 Jan 2024
    Release notes

    Commit Type Description
    ccddacf11d fix cta clickability issue in adev homepage. (#52905)

    animations

    Commit Type Description
    98d545fafa fix cleanup DOM elements when root view is removed with async animations (#53033)

    common

    Commit Type Description
    cdc5e39532 fix The date pipe should return ISO format for week and week-year as intended in the unit test. (#53879)

    compiler

    Commit Type Description
    f12b01ec88 fix Update type check block to fix control flow source mappings (#53980)

    core

    Commit Type Description
    c477e876e3 fix change defer block fixture default behavior to playthrough (#54088)

    migrations

    Commit Type Description
    8264382a6b fix error in standalone migration when non-array value is used as declarations in TestBed (#54122)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.1.1"></a>

    Open source →
  40. 17.1.124 Jan 2024
    Release notes

    router

    Commit Type Description
    f222bee8fa fix revert commit that replaced last helper with native Array.at(-1) (#54021)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.1.0"></a>

    Open source →
  41. 17.1.017 Jan 2024
    Release notes

    compiler

    Commit Type Description
    79ff91a813 fix allow TS jsDocParsingMode host option to be programmatically set (#53126)
    5613051a8b fix allow TS jsDocParsingMode host option to be programmatically set again (#53292)
    df8a825910 fix project empty block root node (#53620)
    478d622265 fix project empty block root node in template pipeline (#53620)

    compiler-cli

    Commit Type Description
    abdc7e4578 feat support type-checking for generic signal inputs (#53521)
    e620b3a724 fix add compiler option to disable control flow content projection diagnostic (#53311)
    4c1d69e288 fix add diagnostic for control flow that prevents content projection (#53190)
    76ceebad04 fix do not throw fatal error if extended type check fails (#53896)
    1a6eaa0fea fix input transform in local compilation mode (#53645)
    56a76d73e0 fix modify getConstructorDependencies helper to work with reflection host after the previous change (#52215)

    core

    Commit Type Description
    863be4b698 feat expose new input API for signal-based inputs (#53872)
    94096c6ede feat support TypeScript 5.3 (#52572)
    69b384c0d1 fix SignalNode reactive node incorrectly exposing unset field (#53571)
    6f79507ea7 fix Change defer block fixture default behavior to playthrough (#53956)
    32f908ab70 fix do not accidentally inherit input transforms when overridden (#53571)
    bdd61c768a fix replace assertion with more intentional error (#52234)
    0daca457bb fix TestBed should still use the microtask queue to schedule effects (#53843)

    router

    Commit Type Description
    5c1d441029 feat Add info property to NavigationExtras (#53303)
    50d7916278 feat Add router configuration to resolve navigation promise on error (#48910)
    a5a9b408e2 feat Add transient info to RouterLink input (#53784)
    726530a9af feat Allow onSameUrlNavigation: 'ignore' in navigateByUrl (#52265)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.9"></a>

    Open source →
  42. 17.1.0-rc.010 Jan 2024pre-release

    Nothing published for this version

  43. 17.1.0-next.521 Dec 2023pre-release

    Nothing published for this version

  44. 17.1.0-next.414 Dec 2023pre-release

    Nothing published for this version

  45. 17.1.0-next.36 Dec 2023pre-release

    Nothing published for this version

  46. 17.1.0-next.229 Nov 2023pre-release

    Nothing published for this version

  47. 17.1.0-next.120 Nov 2023pre-release

    Nothing published for this version

  48. 17.1.0-next.015 Nov 2023pre-release

    Nothing published for this version

  49. 17.0.910 Jan 2024
    Release notes

    common

    Commit Type Description
    c22b513b3f fix remove unused parameters from the ngClass constructor (#53831)
    bd9f89d1c8 fix server-side rendering error when using in-memory scrolling (#53683)

    compiler

    Commit Type Description
    92fd6cc42e fix generate less code for advance instructions (#53845)
    6a41961fbd fix ignore empty switch blocks (#53776)

    compiler-cli

    Commit Type Description
    7309463697 fix interpolatedSignalNotInvoked diagnostic (#53585)

    core

    Commit Type Description
    441db5123f fix afterRender hooks now only run on ApplicationRef.tick (#52455)
    f9120d79cb fix allow effect to be used inside an ErrorHandler (#53713)

    migrations

    Commit Type Description
    e92c86b77f fix Fix empty switch case offset bug in cf migration (#53839)

    platform-server

    Commit Type Description
    91cb16fde9 fix Do not delete global Event (#53659)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.8"></a>

    Open source →
  50. 17.0.821 Dec 2023
    Release notes

    compiler

    Commit Type Description
    de5c9ca8e9 fix correctly intercept index in loop tracking function (#53604)

    core

    Commit Type Description
    d79489255a fix avoid repeated work when parsing version (#53598)
    513fee871e fix tree shake version class (#53598)

    migrations

    Commit Type Description
    eb7c29c7b6 fix cf migration - detect and error when result is invalid i18n nesting (#53638)
    ed936ba0e9 fix cf migration - detect and error when result is invalid i18n nesting (#53638) (#53639)
    5c2f2539e2 fix cf migration - ensure full check runs for all imports (#53637)
    817dc1b27f fix cf migration - fix bug in attribute formatting (#53636)
    7ac60bab9a fix cf migration - improve import declaration handling (#53622)
    c3f85e51a9 fix cf migration - preserve indentation on attribute strings (#53625)
    e73205ff5a fix cf migration - stop removing empty newlines from i18n blocks (#53578)
    886aa7b2a9 fix Fix cf migration bug with parsing for loop conditions properly (#53558)

    router

    Commit Type Description
    0696ab6a5b fix Should not freeze original object used for route data (#53635)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.7"></a>

    Open source →
  51. 17.0.714 Dec 2023
    Release notes

    compiler

    Commit Type Description
    4fd5409090 fix handle ambient types in input transform function (#51474)

    compiler-cli

    Commit Type Description
    a603338fe8 fix generate less type checking code in for loops (#53515)

    core

    Commit Type Description
    58ed76be93 fix Avoid refreshing a host view twice when using transplanted views (#53021)
    c16b5e8290 fix Multiple subscribers to ApplicationRef.isStable should all see values (#53541)
    17dbf8b8e2 fix remove signal equality check short-circuit (#53446)
    5b4add27b6 fix update feature usage marker (#53542)
    68d111c841 perf avoid changes Observable creation on QueryList (#53498)
    044cb553b4 perf optimize memory allocation when reconcilling lists (#52245)

    migrations

    Commit Type Description
    96ab999698 fix CF Migration - ensure bound ngIfElse cases ignore line breaks (#53435)
    c9a1c6f1c7 fix cf migration - undo changes when html fails to parse post migration (#53530)
    b75aca1d74 fix CF migration only remove newlines of changed template content (#53508)
    e88a12d5b3 fix cf migration validate structure of ngswitch before migrating (#53530)
    543df3dca5 fix ensure we do not overwrite prior template replacements in migration (#53393)
    d232ea143f fix fix cf migration import removal when errors occur (#53502)

    platform-browser

    Commit Type Description
    d5c631bf36 fix Get correct base path when using "." as base href when serving from the file:// protocol. (#53547)

    router

    Commit Type Description
    e750e4edcf fix provide more actionable error message when route is not matched in production mode (#53523)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.6"></a>

    Open source →
  52. 17.0.66 Dec 2023
    Release notes

    compiler

    Commit Type Description
    a2e5f483f5 fix generate proper code for nullish coalescing in styling host bindings (#53305)

    compiler-cli

    Commit Type Description
    66ecf4c274 fix add compiler option to disable control flow content projection diagnostic (#53387)
    74e6ce5d23 fix add diagnostic for control flow that prevents content projection (#53387)
    6ec7a42b95 fix avoid conflicts with built-in global variables in for loop blocks (#53319)

    core

    Commit Type Description
    0a53f96094 fix cleanup signal consumers for all views (#53351)
    4fc1581bbc fix handle hydration of multiple nodes projected in a single slot (#53270)
    14e66533ec fix support hydration for cases when content is re-projected using ng-template (#53304)
    8e366e8911 fix support swapping hydrated views in @for loops (#53274)

    migrations

    Commit Type Description
    45064f1ae1 fix CF migration - ensure NgIfElse attributes are properly removed (#53298)
    a6275cfa54 fix CF Migration - Fix case of aliases on i18n ng-templates preventing removal (#53299)
    58a96e0f50 fix CF Migration add support for ngIf with just a then (#53297)
    26e40c7f89 fix CF Migration fix missing alias for bound ngifs (#53296)
    836aeba01d fix Change CF Migration ng-template placeholder generation and handling (#53394)
    72d22ba7ee fix fix regexp for else and then in cf migration (#53257)
    7a2facae8a fix handle aliases on bound ngIf migrations (#53261)
    5104a89b30 fix handle nested ng-template replacement safely in CF migration (#53368)
    2a4e3f5373 fix handle templates outside of component in cf migration (#53368)
    0db75ab5b1 fix remove setting that removes comments in CF migration (#53350)

    router

    Commit Type Description
    13ade13a15 fix Ensure canMatch guards run on wildcard routes (#53239)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.5"></a>

    Open source →
  53. 17.0.529 Nov 2023
    Release notes

    core

    Commit Type Description
    6be88040d1 fix avoid stale provider info when TestBed.overrideProvider is used (#52918)
    dee50f1d78 fix inherit host directives (#52992)
    07920d96d4 fix Reattached views that are dirty from a signal update should refresh (#53001)

    migrations

    Commit Type Description
    aab7fb8654 fix Add ngForTemplate support to control flow migration (#53076)
    dbd6f386ea fix allows colons in ngIf else cases to migrate (#53076)
    5b9f896009 fix cf migration fix migrating empty switch default (#53237)
    2b3d3b0fe1 fix CF migration log warning when collection aliasing detected in @for (#53238)
    dffeac8386 fix cf migration removes unnecessary bound ngifelse attribute (#53236)
    00cb3339ba fix control flow migration formatting fixes (#53076)
    c22af72f75 fix fix off by one issue with template removal in CF migration (#53255)
    ba6d7fe018 fix fixes CF migration i18n ng-template offsets (#53212)
    8f6affdd64 fix fixes control flow migration common module removal (#53076)
    6ae408847c fix properly handle ngIfThen cases in CF migration (#53256)
    0fcef65cea fix Update CF migration to skip templates with duplicate ng-template names (#53204)

    router

    Commit Type Description
    91486aaf07 fix Resolvers in different parts of the route tree should be able to execute together (#52934)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.4"></a>

    Open source →
  54. 17.0.420 Nov 2023
    Release notes

    common

    Commit Type Description
    7f1c55755d fix remove load on image once it fails to load (#52990)
    fafcb0d23f fix scan images once page is loaded (#52991)

    compiler

    Commit Type Description
    98376f2c09 fix changed after checked error in for loops (#52935)
    291deac663 fix generate i18n instructions for blocks (#52958)
    49dca36880 fix nested for loops incorrectly calculating computed variables (#52931)
    f01b7183d2 fix produce placeholder for blocks in i18n bundles (#52958)

    compiler-cli

    Commit Type Description
    f671f86ac2 fix add diagnostic for control flow that prevents content projection (#52726)

    core

    Commit Type Description
    db1a8ebdb4 fix cleanup loading promise when no dependencies are defined (#53031)
    31a1575334 fix handle local refs when getDeferBlocks is invoked in tests (#52973)

    migrations

    Commit Type Description
    ac9cd6108f fix control flow migration fails for async pipe with unboxing of observable (#52756) (#52972)
    13bf5b7007 fix Fixes control flow migration if then else case (#53006)
    492ad4698a fix fixes migrations of nested switches in control flow (#53010)
    0fad36eff2 fix tweaks to formatting in control flow migration (#53058)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.3"></a>

    Open source →
  55. 17.0.315 Nov 2023
    Release notes

    animations

    Commit Type Description
    f5872c9921 fix prevent the AsyncAnimationRenderer from calling the delegate when there is no element. (#52570)

    core

    Commit Type Description
    6a1d4ed667 fix handle non-container environment injector cases (#52774)
    5de7575be8 fix reset cached scope for components that were overridden using TestBed (#52916)

    http

    Commit Type Description
    7c066a4af4 fix Use the response content-type to set the blob type. (#52840)

    migrations

    Commit Type Description
    4e200bf13b fix Add missing support for ngForOf (#52903)
    d033540d0f fix Add support for bound versions of NgIfElse and NgIfThenElse (#52869)
    aa2d815648 fix Add support for removing imports post migration (#52763)
    3831942771 fix Fixes issue with multiple if elses with same template (#52863)
    e1f84a31dc fix passed in paths will be respected in nx workspaces (#52796)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.2"></a>

    Open source →
  56. 17.0.29 Nov 2023
    Release notes

    compiler-cli

    Commit Type Description
    7a95cccf50 fix add interpolatedSignalNotInvoked to diagnostics (#52687)
    a548c0333e fix incorrect inferred type of for loop implicit variables (#52732)

    core

    Commit Type Description
    2cea80c6e2 fix error code in image performance warning (#52727)
    b16fc2610a fix limit rate of markers invocations (#52742)
    44c48a4835 fix properly update collection with repeated keys in @for (#52697)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.1"></a>

    Open source →
  57. 17.0.18 Nov 2023
    Release notes

    http

    Commit Type Description
    5c6f3f8ec0 fix Don't override the backend when using the InMemoryWebAPI (#52425)

    migrations

    Commit Type Description
    70d30c28e0 fix Add support for ng-templates with i18n attributes (#52597)
    4f125c5f9a fix Switches to multiple passes to fix several reported bugs (#52592)

    Web Frameworks: the internet frontier.<br/> These are the voyages of the framework Angular.<br/> Its continuing mission:<br/> To explore strange, new technologies.<br/> To seek out new users and new applications.<br/> To boldly go where no web framework has gone before.<br/>

    In honor of v17.0.1

                                                      ______
                                         ___.--------'------`---------.____
                                   _.---'----------------------------------`---.__
                                 .'___=]===========================================
    ,-----------------------..__/.'         >--.______        _______.---'
    ]====================<==||(__)        .'          `------'
    `-----------------------`' ----.___--/
         /       /---'                 `/
        /_______(______________________/
        `-------------.--------------.'
                       \________|_.-'
    

    Live long and prosper 🖖🏻

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="17.0.0"></a>

    Open source →
  58. 17.0.08 Nov 2023
    Release notes

    Blog post "Angular v17 is now available".

    Breaking Changes

    • Node.js v16 support has been removed and the minimum support version has been bumped to 18.13.0.

      Node.js v16 is planned to be End-of-Life on 2023-09-11. Angular will stop supporting Node.js v16 in Angular v17. For Node.js release schedule details, please see: https://github.com/nodejs/release#release-schedule

    common

    • the NgSwitch directive now defaults to the === equality operator, migrating from the previously used == operator. NgSwitch expressions and / or individual condition values need adjusting to this stricter equality check. The added warning message should help pin-pointing NgSwitch usages where adjustments are needed.

    core

    • Angular now requires zone.js version ~0.14.0

    • Versions of TypeScript older than 5.2 are no longer supported.

    • The mutate method was removed from the WritableSignal interface and completely dropped from the public API surface. As an alternative, please use the update method and make immutable changes to the object.

      Example before:

      items.mutate(itemsArray => itemsArray.push(newItem));
      

      Example after:

      items.update(itemsArray => [itemsArray, …newItem]);
      
    • OnPush components that are created dynamically now only have their host bindings refreshed and ngDoCheck run during change detection if they are dirty. Previously, a bug in the change detection would result in the OnPush configuration of dynamically created components to be ignored when executing host bindings and the ngDoCheck function. This is rarely encountered but can happen if code has a handle on the ComponentRef instance and updates values read in the OnPush component template without then calling either markForCheck or detectChanges on that component's ChangeDetectorRef.

    platform-browser

    • REMOVE_STYLES_ON_COMPONENT_DESTROY default value is now true. This causes CSS of components to be removed from the DOM when destroyed. You retain the previous behaviour by providing the REMOVE_STYLES_ON_COMPONENT_DESTROY injection token.

      import {REMOVE_STYLES_ON_COMPONENT_DESTROY} from '@angular/platform-browser';
      ...
      providers: [{
        provide: REMOVE_STYLES_ON_COMPONENT_DESTROY,
        useValue: false,
      }]
      
    • The withNoDomReuse() function was removed from the public API. If you need to disable hydration, you can exclude the provideClientHydration() call from provider list in your application (which would disable hydration features for the entire application) or use ngSkipHydration attribute to disable hydration for particular components. See this guide for additional information: https://angular.io/guide/hydration#how-to-skip-hydration-for-particular-components.

    router

    • Absolute redirects no longer prevent further redirects. Route configurations may need to be adjusted to prevent infinite redirects where additional redirects were previously ignored after an absolute redirect occurred.

    • Routes with loadComponent would incorrectly cause child routes to inherit their data by default. The default paramsInheritanceStrategy is emptyOnly. If parent data should be inherited in child routes, this should be manually set to always.

    • urlHandlingStrategy has been removed from the Router public API. This should instead be configured through the provideRouter or RouterModule.forRoot APIs.

    • The following Router properties have been removed from the public API:

      • canceledNavigationResolution
      • paramsInheritanceStrategy
      • titleStrategy
      • urlUpdateStrategy
      • malformedUriErrorHandler

      These should instead be configured through the provideRouter or RouterModule.forRoot APIs.

    • The setupTestingRouter function has been removed. Use RouterModule.forRoot or provideRouter to setup the Router for tests instead.

    • malformedUriErrorHandler is no longer available in the RouterModule.forRoot options. URL parsing errors should instead be handled in the UrlSerializer.parse method.

    zone.js

    • Deep and legacy dist/ imports like zone.js/bundles/zone-testing.js and zone.js/dist/zone are no longer allowed. zone-testing-bundle and zone-testing-node-bundle are also no longer part of the package.

      The proper way to import zone.js and zone.js/testing is:

      import 'zone.js';
      import 'zone.js/testing';
      

    Deprecations

    animations

    • The AnimationDriver.NOOP symbol is deprecated, use NoopAnimationDriver instead.

    core

    • ChangeDetectorRef.checkNoChanges is deprecated.

      Test code should use ComponentFixture instead of ChangeDetectorRef. Application code should not call ChangeDetectorRef.checkNoChanges directly.

    • Swapping out the context object for EmbeddedViewRef is no longer supported. Support for this was introduced with v12.0.0, but this pattern is rarely used. There is no replacement, but you can use simple assignments in most cases, or Object.assign , or alternatively still replace the full object by using a Proxy (see NgTemplateOutlet as an example).

      Also adds a warning if the deprecated

    • NgProbeToken

      The NgProbeToken is not used internally since the transition from View Engine to Ivy. The token has no utility and can be removed from applications and libraries.

    Commit Type Description
    59aa0634f4 build remove support for Node.js v16 (#51755)

    animations

    Commit Type Description
    e753278faa feat Add the possibility of lazy loading animations code. (#50738)
    698c058e1c fix remove code duplication between entry-points (#51500)
    0598613950 refactor deprecation of AnimationDriver.NOOP (#51843)

    benchpress

    Commit Type Description
    2da3551a70 feat report gc and render time spent in script (#50771)

    common

    Commit Type Description
    fe2fd7e1a8 feat make the warning for lazy-loaded lcp image an error (#51748)
    dde3fdabbd feat upgrade warning to logged error for lazy-loaded LCP images using NgOptimizedImage (#52004)
    da056a1fe2 fix add missing types field for @angular/common/locales of exports in package.json (#52080)
    85843e8212 fix allow to specify only some properties of DatePipeConfig (#51287)
    3bd85fb7b0 fix apply fixed_srcset_width value only to fixed srcsets (#52459)
    65b460448e fix missing space in ngSwitch equality warning (#52180)
    86c5e34601 fix remove code duplication between entry-points (#51500)
    28a5925f53 fix use === operator to match NgSwitch cases (#51504)

    compiler

    Commit Type Description
    1934524a0c feat add docs extraction for type aliases (#52118)
    7f6d9a73ab feat expand class api doc extraction (#51733)
    a7fa25306f feat extract api docs for interfaces (#52006)
    7bfe20707f feat extract api for fn overloads and abtract classes (#52040)
    c7daf7ea16 feat extract directive docs info (#51733)
    e0b1bb33d7 feat extract doc info for JsDoc (#51733)
    b9c70158ab feat extract docs for accessors, rest params, and types (#51733)
    a24ae994a0 feat extract docs for top level functions and consts (#51733)
    2e41488296 feat extract docs info for enums, pipes, and NgModules (#51733)
    34495b3533 feat extract docs via exports (#51828)
    7e82df45c5 feat initial skeleton for API doc extraction (#51733)
    6795cccbbb fix account for type-only imports in defer blocks (#52343)
    23bfa10ac8 fix add diagnostic for inaccessible deferred trigger (#51922)
    31295a3cf9 fix allocating unnecessary slots in conditional instruction (#51913)
    2aaddd3f64 fix allow comments between switch cases (#52449)
    ddd9df68bb fix allow decimals in defer block time values (#52433)
    7dbd47fb30 fix allow newlines in track and let expressions (#52137)
    0eae992c4e fix allow nullable values in for loop block (#51997)
    073ebfe09e fix apply style on :host attributes in prod builds. (#49118)
    81a287a79a fix avoid error in template parser for tag names that can occur in object prototype (#52225)
    6c58252521 fix compilation error when for loop block expression contains new line (#52447)
    9d19c8e317 fix don't allocate variable to for loop expression (#52158)
    9acd2ac98b fix enable block syntax in the linker (#51979)
    1d871c03a5 fix forward referenced dependencies not identified as deferrable (#52017)
    16ff08ec70 fix narrow the type of expressions in event listeners inside if blocks (#52069)
    ac0d5dcfd6 fix narrow the type of expressions in event listeners inside switch blocks (#52069)
    02edb43067 fix narrow the type of the aliased if block expression (#51952)
    83067b3ef2 fix ng-template directive invoke twice at the root of control flow (#52515)
    17078a3fe1 fix pipes used inside defer triggers not being picked up (#52071)
    861ce3a7c5 fix pipes using DI not working in blocks (#52112)
    1f5039bbd6 fix project control flow root elements into correct slot (#52414)
    81c315ec6e fix template type checking not reporting diagnostics for incompatible type comparisons (#52322)
    1beef49d80 fix update the minVersion if component uses block syntax (#51979)
    386e1e9500 fix work around TypeScript bug when narrowing switch statements (#52110)
    e5bca43224 perf further reduce bundle size using arrow functions (#52010)

    compiler-cli

    Commit Type Description
    5b66330329 fix allow non-array imports for standalone component in local compilation mode (#51819)
    377a7abfda fix bypass static resolving of the component's changeDetection field in local compilation mode (#51848)
    19c3dc18d3 fix fix NgModule injector def in local compilation mode when imports/exports are non-array expressions (#51819)
    11bb19cafc fix handle nested qualified names in ctor injection in local compilation mode (#51947)
    f91f222b55 fix resolve component encapsulation enum in local compilation mode (#51848)

    core

    Commit Type Description
    59b6ec6be8 docs Deprecate ChangeDetectorRef.checkNoChanges (#52431)
    4f04d1cdab feat add new list reconcilation algorithm (#51980)
    c7127b98b5 feat add schematic to escape block syntax characters (#51905)
    50275e58b8 feat Add schematic to migrate control flow syntax (#52035)
    81b67aa987 feat add support for zone.js 0.14.0 (#51774)
    048f400efc feat add warnings for oversized images and lazy-lcp (#51846)
    93675dc797 feat conditional built-in control flow (#51346)
    4427e1ebc2 feat create function to assert not running inside reactive context (#52049)
    e23aaa7d75 feat drop support for older TypeScript versions (#51792)
    43e6fb0606 feat enable block syntax (#51994)
    3cbb2a8ecf feat implement deferred block interaction triggers (#51830)
    8be2c48b7c feat implement new block syntax (#51891)
    a54713c831 feat implement ɵgetInjectorMetadata debug API (#51900)
    5b88d136af feat mark core signal APIs as stable (#51821)
    8eef694def feat Provide a diagnostic for missing Signal invocation in template interpolation. (#49660)
    40113f653c feat Remove deprecated CompilerOptions.useJit andCompilerOptions.missingTranslation. (#49672)
    68ba798ae3 feat revamp the runtime error message for orphan components to include full component info (#51919)
    1a4aee7e49 feat show runtime error for orphan component rendering (#52061)
    687b96186c feat support deferred hover triggers (#51874)
    e2e3d69a27 feat support deferred triggers with implicit triggers (#51922)
    16f5fc40a4 feat support deferred viewport triggers (#51874)
    59387ee476 feat support styles and styleUrl as strings (#51715)
    9cc52b9b85 feat support TypeScript 5.2 (#51334)
    7d42dc3c02 feat the new list reconciliation algorithm for built-in for (#51980)
    935c1816fd fix add rejectErrors option to toSignal (#52474)
    5411864c2e fix adjust toSignal types to handle more common cases (#51991)
    dcf18dc74c fix allow toSignal calls in reactive context (#51831)
    dbffdc09c2 fix avoid duplicated code between entry-points (primary, testing, rxjs-interop) (#51500)
    4f69d620d9 fix deferred blocks not removing content immediately when animations are enabled (#51971)
    df58c0b714 fix disallow afterRender in reactive contexts (#52138)
    5d61221ed7 fix disallow using effect inside reactive contexts (#52138)
    99e7629159 fix do not remove used ng-template nodes in control flow migration (#52186)
    c7ff9dff2c fix drop mutate function from the signals public API (#51821)
    00128e3853 fix drop mutate function from the signals public API (#51821) (#51986)
    ddef3ac9a4 fix effects wait for ngOnInit for their first run (#52473)
    5ead7d412d fix ensure a consumer drops all its stale producers (#51722)
    1dd8558f82 fix Ensure backwards-referenced transplanted views are refreshed (#51854)
    50ad074505 fix framework debug APIs getDependenciesForTokenInInjector and getInjectorMetadata (#51719)
    80e7a0f8fa fix guard usages of performance.mark (#52505)
    b9ea2d6900 fix handle aliased index with no space in control flow migration (#52444)
    ffe9b1fcc2 fix handle for alias with as in control flow migration (#52183)
    e5720edb46 fix handle if alias in control flow migration (#52181)
    4461cefa4f fix handle trackBy and aliased index in control flow migration (#52423)
    7368b8aaeb fix host directive validation not picking up duplicate directives on component node (#52073)
    696f003553 fix mutation bug in getDependenciesFromInjectable (#52450)
    d487014785 fix Remove no longer needed build rule related to removed migration (#52143)
    4da08dc2ef fix remove unnecessary migration (#52141)
    384d7aacd0 fix replace assertion with more intentional error (#52427)
    40bb45f329 fix Respect OnPush change detection strategy for dynamically created components (#51356)
    3a19d6b743 fix run afterRender callbacks outside of the Angular zone (#51385)
    a2ba5482c3 fix use TNode instead of LView for mapping injector providers (#52436)
    d5dad3eb4c fix viewport trigger deregistering callbacks multiple times (#52115)
    8e4a7ab52b perf avoid repeated access to LContainer and trackBy calculation (#52227)
    1dc14d9853 perf avoid unnecessary callbacks in after render hooks (#52292)
    e90694259e perf build-in for should update indexes only when views were added / removed (#52051)
    1032c1e1a5 perf cache LiveCollectionLContainerImpl (#52227)
    685d01e106 perf chain template instructions (#51546)
    88a0af64fd perf generate arrow functions for pure function calls (#51668)
    37d627dbd4 perf minimze trackBy calculations (#52227)
    3861a73135 perf Update LView consumer to only mark component for check (#52302)
    9b9e11fcaf refactor deprecate allowing full context object to be replaced in EmbeddedViewRef (#51887)
    ba9fc2419e refactor deprecate the NgProbeToken (#51396)

    http

    Commit Type Description
    7dde42a5df feat allow customization of the HttpTransferCache. (#52029)
    8156b3d4ec fix Don't override the backend when using the InMemoryWebAPI (#52425)
    bd9e91ecf7 perf reduce data transfer when using HTTP caching (#52347)

    language-service

    Commit Type Description
    449830f24e feat Complete inside @switch (#52153)
    e2416a284f feat Enable go to definition of styleUrl (#51746)
    023a181ba5 feat Implement outlining spans for control flow blocks (#52062)
    7c052bb6ef feat Support autocompletion for blocks (#52121)
    9d565cd6d6 fix Autocomplete block keywords in more cases (#52198)

    localize

    Commit Type Description
    5a20a44c64 fix ng-add schematics for application builder (#51777)

    migrations

    Commit Type Description
    f0da7c2e44 feat schematic to remove deprecated CompilerOptions properties (#49672)
    965ce5a8c5 feat Schematics for TransferState, StateKey and makeStateKey migration. (#49594)
    09e905ad67 fix account for separator characters inside strings (#52525)
    4c878f90d2 fix Add support for nested structures inside a switch statement (#52358)
    d7397fb29b fix Ensure control flow migration ignores new block syntax (#52402)
    6a01d62b9d fix fix broken migration when no control flow is present (#52399)
    9c2be715a3 fix Fixes a bug in the ngFor pre-v5 alias translation (#52531)
    54fed68bbf fix Fixes the root level template offset in control flow migration (#52355)
    57404d4723 fix handle comma-separated syntax in ngFor (#52525)
    54bc384661 fix handle nested classes in block entities migration (#52309)
    c9b1ddff4d fix handle nested classes in control flow migration (#52309)
    6988a0070e fix handle ngIf else condition with no whitespaces (#52504)
    e40e55d902 fix Remove unhelpful parsing errors from the log (#52401)
    c267f54bc3 fix Update regex to better match ng-templates (#52529)

    platform-browser

    Commit Type Description
    c340d6e044 feat enable removal of styles on component destroy by default (#51571)
    c5daa6ce77 feat expose EventManagerPlugin in the public API. (#49969)
    5b375d106f fix Fire Animations events when using async animations. (#52087)
    65786b2b96 fix prevent duplicate stylesheets from being created (#52019)
    75d610d420 fix set animation properties when using async animations. (#52087)
    3c0577f991 perf disable styles of removed components instead of removing (#51808)
    c9cde3ab10 perf only append style element on creation (#52237)
    dbc14eb41d refactor remove withNoDomReuse function (#52057)

    platform-server

    Commit Type Description
    0c66e2424c fix resolve relative requests URL (#52326)

    router

    Commit Type Description
    1da28f4825 feat Add callback to execute when a view transition is created (#52002)
    73e4bf2ed2 feat Add feature to support the View Transitions API (#51314)
    86e91463af feat Add option to skip the first view transition (#51825)
    ce1b915868 fix Allow redirects after an absolute redirect (#51731)
    37df395be0 fix children of routes with loadComponent should not inherit parent data by default (#52114)
    4dce8766f8 fix Ensure newly resolved data is inherited by child routes (#52167)
    f464e39364 fix Ensure title observable gets latest values (#51561)
    b2aff43621 fix Remove urlHandlingStrategy from public Router properties (#51631)
    c62e680098 fix Remove deprecated Router properties (#51502)
    3c6258c85b fix Remove deprecated setupTestingRouter function (#51826)
    0b3e6a41d0 fix Remove malformedUriErrorHandler from ExtraOptions (#51745)
    c03baed854 fix use DOCUMENT token instead of document directly in view transitions (#51814)

    <!-- CHANGELOG SPLIT MARKER -->

    <a name="16.2.12"></a>

    Open source →
  59. 17.0.0-rc.37 Nov 2023pre-release

    Nothing published for this version

  60. 17.0.0-rc.22 Nov 2023pre-release

    Nothing published for this version