Angular 13
https://github.com/angular/angular
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 |
---|---|
hardening attribute and property binding rules for elements (#48029) |
Special Thanks
Andrew Kushnir, Andrew Scott, George Looshch, Joey Perrott and Paul Gschwendtner
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
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
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.7 (2022-05-11)
core
Commit | Description |
---|---|
allow checkNoChanges mode to be tree-shaken in production (#45936) |
language-service
Commit | Description |
---|---|
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 ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ
13.3.6 (2022-05-04)
Special Thanks
Andrew Kushnir, Andrew Scott, George Kalpakas, Paul Gschwendtner, Pawel Kozlowski, Ryan Day and dario-piotrowicz
13.3.4 (2022-04-20)
core
Commit | Description |
---|---|
better error message when directive extends a component (#45658) | |
improve multiple components match error (#45645) |
language-service
Commit | Description |
---|---|
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
13.3.3 (2022-04-13)
compiler
Commit | Description |
---|---|
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
13.3.1 (2022-03-30)
bazel
Commit | Description |
---|---|
ng module compilation workers are subject to linker race-conditions (#45393) |
compiler
Commit | Description |
---|---|
scope css rules within @layer blocks (#45396) |
compiler-cli
Commit | Description |
---|---|
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
13.3.0 (2022-03-16)
Special Thanks
Andrew Scott, Kristiyan Kostadinov and Paul Gschwendtner
13.3.0-rc.0 (2022-03-10)
Special Thanks
Alistair Kane, Andrew Scott and Kristiyan Kostadinov
13.2.6 (2022-03-09)
compiler
Commit | Description |
---|---|
compute correct offsets when interpolations have HTML entities (#44811) |
language-service
Commit | Description |
---|---|
Prioritize Angular-specific completions over DOM completions (#45293) |
service-worker
Commit | Description |
---|---|
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
13.2.5 (2022-03-02)
animations
Commit | Description |
---|---|
allow animations with unsupported CSS properties (#45185) |
common
Commit | Description |
---|---|
canceled JSONP requests won't throw console error with missing callback function (#36807) | |
make NgLocalization token tree-shakable (#45118) (#45226) |
compiler-cli
Commit | Description |
---|---|
Support resolve animation name from the DTS (#45169) |
core
localize
Commit | Description |
---|---|
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
13.2.4 (2022-02-23)
animations
Commit | Description |
---|---|
improve algorithm to balance animation namespaces (#45113) |
core
Commit | Description |
---|---|
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
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
13.2.2 (2022-02-08)
compiler
Commit | Description |
---|---|
allow banana-in-a-box bindings to end with non-null assertion (#37809) |
forms
Commit | Description |
---|---|
incorrectly keeping track of ngModel with ngFor inside a form (#40459) |
http
Commit | Description |
---|---|
remove IE special status handling (#44354) |
upgrade
Commit | Description |
---|---|
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
13.2.1 (2022-02-02)
animations
Commit | Description |
---|---|
remove no longer needed CssKeyframes classes (#44903) (#44919) |
common
Commit | Description |
---|---|
include query parameters for open HTTP requests in verify (#44917) |
compiler-cli
core
Commit | Description |
---|---|
Add back support for namespace URIs in createElement of dom renderer (#44914) | |
flush delayed scoping queue while setting up TestBed (#44814) |
forms
Commit | Description |
---|---|
ensure OnPush ancestors are marked dirty when the promise resolves (#44886) | |
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
13.2.0 (2022-01-26)
Deprecations
-
The
CachedResourceLoader
andRESOURCE_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
andComponentFactoryResolver
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
andCompilerOptions.missingTranslation
config options are unused, passing them has no effect.
compiler
compiler-cli
core
Commit | Description |
---|---|
consistently use namespace short name rather than URI (#44766) | |
error if NgZone.isInAngularZone is called with a noop zone (#44800) |
forms
Commit | Description |
---|---|
Allow a FormControl to use initial value as default. (#44434) | |
Make some minor fixups for forward-compatibility with typed forms. (#44540) |
language-service
Commit | Description |
---|---|
support completions for animation (#44630) |
router
Commit | Description |
---|---|
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 |
---|---|
properly compile DI factories when coverage reporting is enabled (#44732) |
compiler-cli
Commit | Description |
---|---|
remove leftover _extendedTemplateDiagnostics requirements (#44777) |
|
skip ExtendedTemplateCheckerImpl construction if there were configuration errors (#44778) |
core
Commit | Description |
---|---|
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
andRESOURCE_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
andComponentFactoryResolver
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
animations
Commit | Description |
---|---|
apply setStyles to only rootTimelines (#44515) |
common
Commit | Description |
---|---|
add injector input to ngTemplateOutlet (#44761) |
compiler-cli
Commit | Description |
---|---|
enable extended diagnostics by default (#44712) | |
reduce analysis work during incremental rebuilds (#44731) |
core
Commit | Description |
---|---|
allow for injector to be specified when creating an embedded view (#44666) |
ngcc
Commit | Description |
---|---|
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 |
---|---|
apply setStyles to only rootTimelines (#44515) |
compiler-cli
Commit | Description |
---|---|
reduce analysis work during incremental rebuilds (#44731) |
ngcc
Commit | Description |
---|---|
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 |
---|---|
retain triggers values for moved tracked list items (#44578) |
compiler
Commit | Description |
---|---|
add support for safe calls in templates (#44580) | |
correct spans when parsing bindings with comments (#44678) |
compiler-cli
forms
Commit | Description |
---|---|
Add an unused symbol AnyForUntypedForms . (#44467) |
|
Make some minor fixups for forward-compatibility with typed forms. (#44540) |
language-service
Commit | Description |
---|---|
support completions for animation (#44630) | |
revert the test files for Ivy (#44528) |
router
Commit | Description |
---|---|
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 |
---|---|
retain triggers values for moved tracked list items (#44578) |
compiler
Commit | Description |
---|---|
correct spans when parsing bindings with comments (#44678) |
compiler-cli
language-service
Commit | Description |
---|---|
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 |
---|---|
don't consume instructions for animateChild (#44357) | |
should not invoke disabled child animations (#37724) |
core
Commit | Description |
---|---|
Add a migration for typed forms. (#44449) |
forms
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 |
---|---|
don't consume instructions for animateChild (#44357) | |
should not invoke disabled child animations (#37724) |
forms
Commit | Description |
---|---|
_reduceValue arrow function now has correct types. (#44483) |
|
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
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 baseddowngradeModule
calls instead.
common
TestRequest
from@angular/common/http/testing
no longer
acceptsErrorEvent
when simulating XHR errors. Instead instances of
ProgressEvent
should be passed, matching with the native browser behavior.
Commit | Description |
---|---|
deprecate factory-based signature of the downgradeModule function (#44090) |
common
Commit | Description |
---|---|
incorrect error type for XHR errors in TestRequest (#36082) |
|
code size reduction of ngFor directive (#44315) |
compiler
Commit | Description |
---|---|
reference ICU message IDs from their placeholders (#43534) |
core
Commit | Description |
---|---|
add migration to remove entryComponents (#44308) | |
add migration to remove entryComponents (#44322) | |
support TypeScript 4.5 (#44164) |
http
Commit | Description |
---|---|
add has() method to HttpContext class (#43887) |
localize
Commit | Description |
---|---|
support "associated message ids" for placeholders (#43534) |
ngcc
Commit | Description |
---|---|
correctly resolve UMD dependencies (#44381) |
upgrade
Commit | Description |
---|---|
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 baseddowngradeModule
calls instead.
common
TestRequest
from@angular/common/http/testing
no longer
acceptsErrorEvent
when simulating XHR errors. Instead instances of
ProgressEvent
should be passed, matching with the native browser behavior.
Commit | Description |
---|---|
deprecate factory-based signature of the downgradeModule function (#44090) |
common
Commit | Description |
---|---|
incorrect error type for XHR errors in TestRequest (#36082) |
compiler-cli
Commit | Description |
---|---|
downlevel transform incorrectly extracting constructor parameters for nested classes (#44281) | |
interpret string concat calls (#44167) |
core
forms
Commit | Description |
---|---|
make the FormControlStatus available as a public API (#44183) |
language-service
Commit | Description |
---|---|
Correctly parse inputs and selectors with dollar signs (#44268) |
ngcc
router
Commit | Description |
---|---|
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 |
---|---|
downlevel transform incorrectly extracting constructor parameters for nested classes (#44281) | |
interpret string concat calls (#44167) |
core
forms
Commit | Description |
---|---|
make the FormControlStatus available as a public API (#44183) |
language-service
Commit | Description |
---|---|
Correctly parse inputs and selectors with dollar signs (#44268) |
ngcc
router
Commit | Description |
---|---|
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.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 |
---|---|
ensure that partially compiled queries can handle forward references (#44113) | |
generate correct code for safe method calls (#44088) |
compiler-cli
Commit | Description |
---|---|
ensure literal types are retained when strictNullInputTypes is disabled (#38305) |
|
handle pre-release versions when checking version (#44109) |
core
Commit | Description |
---|---|
do not use Function constructors in development mode to avoid CSP violations (#43587) |
http
Commit | Description |
---|---|
add has() method to HttpContext class (#43887) |
platform-browser
Commit | Description |
---|---|
use correct parent in animation removeChild callback (#44033) |
upgrade
Commit | Description |
---|---|
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 |
---|---|
ensure that partially compiled queries can handle forward references (#44113) | |
generate correct code for safe method calls (#44088) |
compiler-cli
Commit | Description |
---|---|
ensure literal types are retained when strictNullInputTypes is disabled (#38305) |
|
handle pre-release versions when checking version (#44109) |
core
Commit | Description |
---|---|
do not use Function constructors in development mode to avoid CSP violations (#43587) |
platform-browser
Commit | Description |
---|---|
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 |
---|---|
reference ICU message IDs from their placeholders (#43534) |
localize
Commit | Description |
---|---|
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 theRouterTestingModule
has changed
to match the behavior of browsers. It no longer emits a 'popstate' event
whenLocation.go
is called. In addition,simulateHashChange
now
triggers both ahashchange
and apopstate
event.
Tests which uselocation.go
and expect the changes to be picked up by
theRouter
should likely change tosimulateHashChange
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 theSpyLocation
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 usingWrappedValue
. 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 fromstring
toFormControlStatus
, andstatusChanges
has been narrowed fromObservable<any>
toObservable<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 comparingAbstractControl.status
against a string which is not a valid status; or, (2) the app is usingstatusChanges
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
andundefined
inputs forrouterLink
were
equaivalent to empty string and there was no way to disable the link's
navigation.
In addition, thehref
is changed from a propertyHostBinding()
to an
attribute binding (HostBinding('attr.href')
). The effect of this
change is thatDebugElement.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 theRouterLink
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 thenavigationId
being present on initial
navigations that were handled by the Angular router should instead
subscribe toNavigationCancel
events and perform the
location.replaceState
themselves to addnavigationId
to the Router
state.
In addition, tests which asserturlChanges
on theSpyLocation
may
need to be adjusted to account for thereplaceState
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
andSwUpdate#checkForUpdate
changed toPromise<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 |
---|---|
deprecate ViewEngine-based renderModuleFactory (#43757) |
bazel
common
Commit | Description |
---|---|
add injection token for default date pipe timezone (#43611) | |
synchronise location mock behavior with the navigators (#41730) |
compiler
Commit | Description |
---|---|
do not error if $any is used inside a listener (#43866) |
compiler-cli
core
elements
Commit | Description |
---|---|
remove ng-add schematic (#43975) |
|
remove incorrect @angular/platform-browser peer dependency (#43975) |
forms
Commit | Description |
---|---|
allow disabling min/max validators dynamically (by setting the value to null ) (#42978) |
|
Make Form Statuses use stricter types. (#42952) |
language-service
migrations
router
service-worker
Commit | Description |
---|---|
SwUpdate#activeUpdate and SwUpdate#checkForUpdate should have a meaningful outcome (#43668) |
|
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
13.0.0-rc.3 (2021-11-01)
core
Commit | Description |
---|---|
support InjectFlags argument in NodeInjector.get() (#41592) |
elements
Commit | Description |
---|---|
remove ng-add schematic (#43975) |
|
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 |
---|---|
avoid broken references in .d.ts files due to @internal markers (#43527) |
ngcc
Commit | Description |
---|---|
support alternate UMD layout when adding new imports (#43931) |
router
Commit | Description |
---|---|
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
13.0.0-rc.1 (2021-10-20)
compiler
Commit | Description |
---|---|
do not error if $any is used inside a listener (#43866) | |
support i18n interpolated only attribute bindings (#43815) |
compiler-cli
Commit | Description |
---|---|
updates ngc to pass the build when only warnings are emitted (#43673) |
ngcc
Commit | Description |
---|---|
support alternate wrapper function layout for UMD (#43879) |
router
Commit | Description |
---|---|
Do not clear currentNavigation if already set to next one (#43852) | |
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
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 |
---|---|
deprecate ViewEngine-based renderModuleFactory (#43757) |
core
Commit | Description |
---|---|
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
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 |
---|---|
expose esm2020 and es2020 conditions in APF package exports (#43740) |
core
Commit | Description |
---|---|
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
andSwUpdate#checkForUpdate
changed toPromise<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 |
---|---|
ngc-wrapped should not rely on linker for external workspaces (#43690) |
compiler-cli
Commit | Description |
---|---|
handle nullable expressions correctly in the nullish coalescing extended template diagnostic (#43572) |
core
Commit | Description |
---|---|
drop support for TypeScript 4.2 and 4.3 (#43642) | |
don't rethrow errors if test teardown has been disabled (#43635) |
language-service
Commit | Description |
---|---|
provide snippets for attribute (#43590) |
router
Commit | Description |
---|---|
unset attachRef when router-outlet is destroyed to avoid mounting a destroyed component (#43697) |
service-worker
Special Thanks
Alan Agius, Andrew Scott, Doug Parker, George Kalpakas, Kristiyan Kostadinov, Maximilian Köller, Paul Gschwendtner, Wey-Han Liaw and ivanwonder
13.0.0-next.11 (2021-10-04)
core
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 usingWrappedValue
. The usage of
WrappedValue
should be removed as no replacement is available.
bazel
core
Commit | Description |
---|---|
handle invalid constructor parameters in partial factory declarations (#43619) | |
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 |
---|---|
add strict_templates and experimental_extended_template_diagnostics to ng_module() rule (#43582) |
|
construct a manifest file even when warnings are emitted (#43582) |
compiler-cli
Commit | Description |
---|---|
correctly interpret token arrays in @Injectable deps (#43226) |
|
not evaluating new signature for __spreadArray (#43618) |
core
Commit | Description |
---|---|
add support for Types in ViewContainerRef.createComponent (#43022) | |
incorrect signature for initTestEnvironment (#43615) |
language-service
Commit | Description |
---|---|
provide dom event completions (#43299) |
ngcc
Commit | Description |
---|---|
do not fail for packages which correspond with Object members (#43589) |
router
Commit | Description |
---|---|
emit activate/deactivate events when an outlet gets attached/detached (#43333) | |
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
13.0.0-next.8 (2021-09-27)
core
Commit | Description |
---|---|
support TypeScript 4.4 (#43281) |
forms
Commit | Description |
---|---|
allow disabling min/max validators dynamically (by setting the value to null ) (#42978) |
service-worker
Commit | Description |
---|---|
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 thenavigationId
being present on initial
navigations that were handled by the Angular router should instead
subscribe toNavigationCancel
events and perform the
location.replaceState
themselves to addnavigationId
to the Router
state.
In addition, tests which asserturlChanges
on theSpyLocation
may
need to be adjusted to account for thereplaceState
which is no longer
triggered.
common
Commit | Description |
---|---|
titlecase pipe incorrectly handling numbers (#43476) |
compiler
Commit | Description |
---|---|
include leading whitespace in source-spans of i18n messages (#43132) |
compiler-cli
Commit | Description |
---|---|
handle directives that refer to a namespaced class in a type parameter bound (#43511) |
migrations
Commit | Description |
---|---|
apply individual expression edits to preserve newline characters (#43519) | |
Ensure routerLink migration doesn't update unrelated files (#43519) |
platform-browser
Commit | Description |
---|---|
improve error message for missing animation trigger (#41356) |
router
Commit | Description |
---|---|
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
13.0.0-next.6 (2021-09-15)
animations
Commit | Description |
---|---|
emit pure annotations to static property initializers (#43344) |
core
Commit | Description |
---|---|
emit pure annotations to static property initializers (#43344) |
router
service-worker
Commit | Description |
---|---|
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
13.0.0-next.5 (2021-09-08)
Breaking Changes
common
- The behavior of the
SpyLocation
used by theRouterTestingModule
has changed
to match the behavior of browsers. It no longer emits a 'popstate' event
whenLocation.go
is called. In addition,simulateHashChange
now
triggers both ahashchange
and apopstate
event.
Tests which uselocation.go
and expect the changes to be picked up by
theRouter
should likely change tosimulateHashChange
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 theSpyLocation
to
simulate browser URL changes should be evaluated on a case-by-case basis.
common
Commit | Description |
---|---|
synchronise location mock behavior with the navigators (#41730) |
language-service
Commit | Description |
---|---|
exclude the SafePropertyRead when applying the optional chaining (#43321) |
migrations
Commit | Description |
---|---|
migration failed finding tsconfig file (#43343) |
router
Commit | Description |
---|---|
Option to correctly restore history on failed navigation (#43289) | |
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
13.0.0-next.4 (2021-09-01)
compiler-cli
Commit | Description |
---|---|
Emit type annotations for synthesized decorator fields (#43021) |
router
Commit | Description |
---|---|
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
13.0.0-next.3 (2021-08-25)
Breaking Changes
router
- Previously
null
andundefined
inputs forrouterLink
were
equaivalent to empty string and there was no way to disable the link's
navigation.
In addition, thehref
is changed from a propertyHostBinding()
to an
attribute binding (HostBinding('attr.href')
). The effect of this
change is thatDebugElement.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 theRouterLink
href
property.
compiler-cli
Commit | Description |
---|---|
inline resources when generating class metadata calls (#43178) |
core
Commit | Description |
---|---|
Add migration to update empty routerLinks in templates (#43176) |
language-service
Commit | Description |
---|---|
Add method for retrieving the component template at the cursor location (#43208) |
router
Commit | Description |
---|---|
null/undefined routerLink should disable navigation (#43087) |
service-worker
Commit | Description |
---|---|
NPE if onActionClick is undefined (#43210) |
Special Thanks:
Alex Rickabaugh, Andrew Scott, Daniel Trevino, George Kalpakas, Paul Gschwendtner, dario-piotrowicz and shlasouski
13.0.0-next.2 (2021-08-18)
animations
Commit | Description |
---|---|
add pure annotations to static property initializers (#43064) |
core
Commit | Description |
---|---|
add pure annotations to static property initializers (#43064) |
language-service
Commit | Description |
---|---|
auto-apply optional chaining on nullable symbol (#42995) |
platform-browser
Commit | Description |
---|---|
avoid intermediate arrays in server transition (#43145) |
router
Commit | Description |
---|---|
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
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
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