Angular 14
https://github.com/angular/angular
14.2.12 (2022-11-21)
Breaking Changes
core
- Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
core
Commit | Description |
---|---|
hardening attribute and property binding rules for elements (#48028) |
Special Thanks
Andrew Kushnir
14.2.10 (2022-11-09)
core
Commit | Description |
---|---|
add zone.js version 0.12.x as a valid peer dependency (#48002) |
router
Commit | Description |
---|---|
fix redirectTo on named outlets - resolves #33783 (#47927) |
Special Thanks
Alan Agius, Albert Szekely, Andrew Scott, Doug Parker, Kristiyan Kostadinov, Markus Eckstein, Peter Scriven and abergquist
14.2.8 (2022-10-26)
Special Thanks
Andrew Scott, Balaji, Paul Gschwendtner, WD Snoeijer, onrails and vyom1611
14.2.7 (2022-10-19)
Special Thanks
Bob Watson, Charles Barnes, Joey Perrott, Virginia Dooley, WD Snoeijer, abergquist and urugator
14.2.6 (2022-10-12)
compiler-cli
Commit | Description |
---|---|
add missing period to error message (#47744) | |
minimize filesystem calls when generating shims (#47682) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Charles Lyding, Joey Perrott, Joshua Morony, Mathew Berg, Paul Gschwendtner, Peter Dickten, Renan Ferro, Sri Ram, WD Snoeijer, markostanimirovic and Álvaro Martínez
14.2.5 (2022-10-05)
Special Thanks
Alexander Wiebe, Ciprian Sauliuc, Dmytro Mezhenskyi, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Ole M, Paul Gschwendtner, Pawel Kozlowski and mgechev
14.2.4 (2022-09-28)
compiler-cli
Commit | Description |
---|---|
cache source file for reporting type-checking diagnostics (#47508) |
core
Commit | Description |
---|---|
correctly check for typeof of undefined in ngDevMode check (#47480) |
Special Thanks
Alan Agius, Ashley Hunter, Doug Parker, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Rokas Brazdžionis and Simona Cotin
14.2.2 (2022-09-14)
animations
Commit | Description |
---|---|
make sure that the animation function delay is applied (#47285) |
common
Commit | Description |
---|---|
rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362) (#47396) |
core
Commit | Description |
---|---|
imply @Optional flag when a default value is provided (#47242) |
forms
Commit | Description |
---|---|
don't prevent default behavior for forms with method="dialog" (#47308) |
Special Thanks
Abhishek Rawat, Andrew Kushnir, Benjamin Chanudet, Bob Watson, George Kalpakas, Ikko Ashimine, Kristiyan Kostadinov, Marc Wrobel, Mariia Subkov, Pawel Kozlowski, Sebastian, abergquist, dario-piotrowicz, onrails and vyom1611
14.2.1 (2022-09-07)
common
Commit | Description |
---|---|
improve formatting of image warnings (#47299) | |
use DOCUMENT token to query for preconnect links (#47353) |
compiler
Commit | Description |
---|---|
avoid errors for inputs with Object-builtin names (#47220) |
service-worker
Commit | Description |
---|---|
include headers in requests for assets (#47260) | |
only consider GET requests as navigation requests (#47263) |
Special Thanks
Aristeidis Bampakos, Asaf M, Bingo's Code, Bob Watson, Daniel Ostrovsky, George Kalpakas, Giovanni Alberto Rivas, Jeremy Elbourn, Jobayer Hossain, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Maina Wycliffe, Sabareesh Kappagantu, Simona Cotin, Sonu Sindhu, Yann Provoost, abergquist, jaybell and vyom1611
14.2.0 (2022-08-25)
animations
Commit | Description |
---|---|
fix stagger timing not handling params (#47208) |
common
compiler-cli
Commit | Description |
---|---|
support more recent version of tsickle (#47018) |
core
forms
Commit | Description |
---|---|
add FormBuilder.record() method (#46485) |
|
Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034) |
language-service
Commit | Description |
---|---|
support fix the component missing member (#46764) |
platform-browser
Commit | Description |
---|---|
add isEmpty method to the TransferState class (#46915) |
platform-server
Commit | Description |
---|---|
support document reference in render functions (#47032) |
router
service-worker
Commit | Description |
---|---|
support sendRequest as a notificationclick action (#46912) |
|
export NoNewVersionDetectedEvent (#47044) | |
update golden index.md (#47044) |
Special Thanks
Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Cédric Exbrayat, Dylan Hunn, Emmanuel Roux, FatalMerlin, George Kalpakas, Ilia Mirkin, Jan Kuehle, Jeremy Elbourn, Jessica Janiuk, JiaLiPassion, Kalbarczyk, Kara Erickson, Katie Hempenius, Kristiyan Kostadinov, Merlin, Paul Gschwendtner, Pawel Kozlowski, Tristan Sprößer, Victor Porof, angular-robot[bot], dario-piotrowicz, ivanwonder and vyom
14.2.0-rc.0 (2022-08-17)
common
compiler
Commit | Description |
---|---|
infinite loop in parser assignment expression with invalid left-hand expression (#47151) |
core
Commit | Description |
---|---|
support TypeScript 4.8 (#47038) |
forms
Commit | Description |
---|---|
Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034) |
router
Commit | Description |
---|---|
Create APIs for using Router without RouterModule (#47010) | |
improve typings for RouterLink boolean inputs (#47101) |
Special Thanks
AlirezaEbrahimkhani, Alma Eyre, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, Emmanuel Roux, George Kalpakas, Kalbarczyk, Kara Erickson, Katie Hempenius, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich and Sonu Kapoor
14.1.3 (2022-08-17)
compiler
Commit | Description |
---|---|
infinite loop in parser assignment expression with invalid left-hand expression (#47151) |
Special Thanks
AlirezaEbrahimkhani, Alma Eyre, Andrew Scott, Bob Watson, George Kalpakas, Kalbarczyk, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Roman Matusevich and Sonu Kapoor
14.2.0-next.1 (2022-08-10)
common
Commit | Description |
---|---|
allow null/undefined to be passed to ngStyle input (#47069) |
compiler-cli
Commit | Description |
---|---|
support more recent version of tsickle (#47018) |
core
Commit | Description |
---|---|
check if transplanted views are attached to change detector (#46974) |
platform-server
Commit | Description |
---|---|
support document reference in render functions (#47032) |
router
Commit | Description |
---|---|
allow guards and resolvers to be plain functions (#46684) | |
Fix route recognition behavior with some versions of rxjs (#47098) |
Special Thanks
4javier, Andrew Kushnir, Andrew Scott, AntonioCardenas, Bob Watson, Bruno Barbosa, Eduardo Speroni, Edward, George Kalpakas, Ilia Mirkin, Jan Melcher, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Mladen Jakovljević, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich, Victor Porof, Vovch, ashide2729, ileil and onrails
14.1.2 (2022-08-10)
core
Commit | Description |
---|---|
check if transplanted views are attached to change detector (#46974) |
router
Commit | Description |
---|---|
Fix route recognition behavior with some versions of rxjs (#47098) (#47112) |
Special Thanks
4javier, Andrew Kushnir, Andrew Scott, AntonioCardenas, Bob Watson, Bruno Barbosa, Eduardo Speroni, Edward, George Kalpakas, Jan Melcher, Kristiyan Kostadinov, Mladen Jakovljević, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich, Vovch, ashide2729, ileil and onrails
14.2.0-next.0 (2022-08-03)
common
Commit | Description |
---|---|
allow null/undefined to be passed to ngClass input (#39280) (#46906) |
core
Commit | Description |
---|---|
add createComponent function (#46685) |
|
add reflectComponentType function (#46685) |
|
introduce createApplication API (#46475) | |
align TestBed interfaces and implementation (#46635) |
forms
Commit | Description |
---|---|
add FormBuilder.record() method (#46485) |
language-service
Commit | Description |
---|---|
support fix the component missing member (#46764) |
platform-browser
Commit | Description |
---|---|
add isEmpty method to the TransferState class (#46915) |
router
Commit | Description |
---|---|
expose resolved route title (#46826) | |
Expose the default matcher for Routes used by the Router (#46913) |
|
Make router directives standalone (#46758) |
service-worker
Commit | Description |
---|---|
support sendRequest as a notificationclick action (#46912) |
Special Thanks
Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Emmanuel Roux, George Kalpakas, Ilia Mirkin, Jessica Janiuk, Paul Gschwendtner, Pawel Kozlowski, Tristan Sprößer, angular-robot[bot], dario-piotrowicz and ivanwonder
14.1.1 (2022-08-03)
core
Commit | Description |
---|---|
improve the missing control flow directive message (#46903) |
router
Commit | Description |
---|---|
Do not call preload method when not necessary (#47007) | |
Use correct return type for provideRoutes function (#46941) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Quinn, Andrew Scott, Aristeidis Bampakos, Asaf M, Bob Watson, Cédric Exbrayat, Durairaj Subramaniam, George Kalpakas, Ivaylo Kirov, J Rob Gant, Kristiyan Kostadinov, Marek Hám, Paul Gschwendtner, Roman Matusevich and Simona Cotin
14.1.0 (2022-07-20)
Deprecations
core
- The
createNgModuleRef
is deprecated in favor of newly addedcreateNgModule
one. - The bit field signature of
inject()
has been deprecated, in favor of the
new options object. Correspondingly,InjectFlags
is deprecated as well.
animations
Commit | Description |
---|---|
add provideAnimations() and provideNoopAnimations() functions (#46793) |
common
Commit | Description |
---|---|
make the CommonModule pipes standalone (#46401) |
|
make the CommonModule directives standalone (#46469) |
compiler
compiler-cli
core
http
Commit | Description |
---|---|
improve error message for nullish header (#46059) |
router
upgrade
Commit | Description |
---|---|
more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214) |
Special Thanks
AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Jessica Janiuk, JiaLiPassion, Joey Perrott, John Vandenberg, JoostK, Keith Li, Or'el Ben-Ya'ir, Paul Gschwendtner, Pawel Kozlowski, SyedAhm3r, arturovt, mariu, markostanimirovic and mgechev
14.0.7 (2022-07-20)
animations
Commit | Description |
---|---|
make sure falsy values are added to _globalTimelineStyles (#46863) |
compiler
Commit | Description |
---|---|
inputs/outputs incorrectly parsed in jit mode (#46813) |
core
Commit | Description |
---|---|
do not invoke jasmine done callback multiple times with waitForAsync |
Special Thanks
Andrew Kushnir, Andrew Scott, Bob Watson, Cédric Exbrayat, Doug Parker, George Kalpakas, Jessica Janiuk, Kristiyan Kostadinov, Paul Gschwendtner, acvi, dario-piotrowicz, jnizet and piyush132000
14.1.0-rc.0 (2022-07-13)
Deprecations
core
- The
createNgModuleRef
is deprecated in favor of newly addedcreateNgModule
one.
animations
Commit | Description |
---|---|
add provideAnimations() and provideNoopAnimations() functions (#46793) |
compiler
Commit | Description |
---|---|
Add extended diagnostic to warn when missing let on ngForOf (#46683) | |
warn when style suffixes are used with attribute bindings (#46651) |
compiler-cli
Commit | Description |
---|---|
add extended diagnostic for non-nullable optional chains (#46686) | |
only consider used pipes for inline type-check requirement (#46807) |
core
Commit | Description |
---|---|
alias createNgModuleRef as createNgModule (#46789) |
|
expose EnvironmentInjector on ApplicationRef (#46665) | |
import AsyncStackTaggingZone if available (#46693) |
forms
Commit | Description |
---|---|
expose ControlConfig in public API (#46594) | |
Move all remaining errors in Forms to use RuntimeErrorCode. (#46654) |
localize
Commit | Description |
---|---|
add --project option to ng-add schematic (#46664) |
router
Commit | Description |
---|---|
Add the target RouterStateSnapshot to NavigationError (#46731) |
|
Fix cancellation code for canLoad rejections (#46752) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, George Kalpakas, Ivaylo Kirov, Jessica Janiuk, JiaLiPassion, John Vandenberg, JoostK, Joshua VanAllen, Lukas Matta, Marcin Wosinek, Nicolas Molina Monroy, Or'el Ben-Ya'ir, Paul Gschwendtner, Pawel Kozlowski, SoulsMark, Uday Sony, dario-piotrowicz, markostanimirovic and zhysky
14.0.6 (2022-07-13)
compiler-cli
Commit | Description |
---|---|
only consider used pipes for inline type-check requirement (#46807) |
forms
Commit | Description |
---|---|
expose ControlConfig in public API (#46594) | |
Move all remaining errors in Forms to use RuntimeErrorCode. (#46654) |
localize
Commit | Description |
---|---|
add --project option to ng-add schematic (#46664) |
Special Thanks
Alan Agius, Andrew Scott, Bob Watson, Dylan Hunn, George Kalpakas, Ivaylo Kirov, Jessica Janiuk, JoostK, Joshua VanAllen, Lukas Matta, Marcin Wosinek, Nicolas Molina Monroy, Paul Gschwendtner, SoulsMark, Uday Sony, dario-piotrowicz, markostanimirovic and zhysky
14.1.0-next.4 (2022-07-06)
Deprecations
core
- The bit field signature of
inject()
has been deprecated, in favor of the
new options object. Correspondingly,InjectFlags
is deprecated as well.
compiler
Commit | Description |
---|---|
Add extended diagnostic to warn when text attributes are intended to be bindings (#46161) |
core
router
Commit | Description |
---|---|
Add stable cancelation code to NavigationCancel event (#46675) |
|
Ensure APP_INITIALIZER of enabledBlocking option completes (#46026) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Scott, Aristeidis Bampakos, Bob Watson, George Kalpakas, Paul Gschwendtner and Pawel Kozlowski
14.1.0-next.3 (2022-06-29)
animations
Commit | Description |
---|---|
cleanup DOM elements when the root view is removed (#45143) | |
enable shadowElements to leave when their parent does (#46459) |
common
Commit | Description |
---|---|
make the CommonModule pipes standalone (#46401) |
|
make the CommonModule directives standalone (#46469) | |
handle CSS custom properties in NgStyle (#46451) |
core
Commit | Description |
---|---|
trigger ApplicationRef.destroy when Platform is destroyed (#46497) |
|
Update ngfor error code to be negative (#46555) | |
Updates error to use RuntimeError code (#46526) |
forms
Commit | Description |
---|---|
Convert existing reactive errors to use RuntimeErrorCode. (#46560) | |
Update a Forms validator error to use RuntimeError (#46537) |
router
Commit | Description |
---|---|
Ensure that new RouterOutlet instances work after old ones are destroyed (#46554) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bezael, Chad Ramos, Chellappan, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Jeremy Meiss, Jessica Janiuk, Joey Perrott, KMathy, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ramesh Thiruchelvam, Vaibhav Kumar, arturovt, dario-piotrowicz and renovate[bot]
14.0.4 (2022-06-29)
animations
Commit | Description |
---|---|
cleanup DOM elements when the root view is removed (#45143) | |
enable shadowElements to leave when their parent does (#46459) |
common
Commit | Description |
---|---|
handle CSS custom properties in NgStyle (#46451) |
core
Commit | Description |
---|---|
trigger ApplicationRef.destroy when Platform is destroyed (#46497) |
|
Update ngfor error code to be negative (#46555) | |
Updates error to use RuntimeError code (#46526) |
forms
Commit | Description |
---|---|
Convert existing reactive errors to use RuntimeErrorCode. (#46560) | |
Update a Forms validator error to use RuntimeError (#46537) |
router
Commit | Description |
---|---|
Ensure that new RouterOutlet instances work after old ones are destroyed (#46554) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bezael, Chad Ramos, Chellappan, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Jeremy Meiss, Jessica Janiuk, Joey Perrott, KMathy, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ramesh Thiruchelvam, Vaibhav Kumar, arturovt, dario-piotrowicz and renovate[bot]
14.1.0-next.2 (2022-06-22)
animations
Commit | Description |
---|---|
reset the start and done fns on player reset (#46364) |
core
http
Commit | Description |
---|---|
improve error message for nullish header (#46059) |
platform-server
Commit | Description |
---|---|
invalid style attribute being generated for null values (#46433) |
router
Commit | Description |
---|---|
allow to return UrlTree from CanMatchFn (#46455) |
|
Ensure Route injector is created before running CanMatch guards (#46394) | |
Expose CanMatchFn as public API (#46394) |
Special Thanks
4javier, Aakash, Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Dany Paredes, Derek Cormier, Dmitrij Kuba, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ramesh Thiruchelvam, arturovt, behrooz bozorg chami, dario-piotrowicz, markostanimirovic, renovate[bot] and web-dave
14.0.3 (2022-06-22)
animations
Commit | Description |
---|---|
reset the start and done fns on player reset (#46364) |
core
Commit | Description |
---|---|
deduplicate imports of standalone components in JIT compiler (#46439) | |
handle NgModules with standalone pipes in TestBed correctly (#46407) |
platform-server
Commit | Description |
---|---|
invalid style attribute being generated for null values (#46433) |
Special Thanks
4javier, Aakash, Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Dany Paredes, Derek Cormier, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ramesh Thiruchelvam, behrooz bozorg chami, dario-piotrowicz, markostanimirovic, renovate[bot] and web-dave
14.1.0-next.1 (2022-06-15)
common
Commit | Description |
---|---|
allow null in ngComponentOutlet (#46280) |
compiler-cli
core
Commit | Description |
---|---|
Resolve forwardRef declarations for jit (#46334) |
router
Commit | Description |
---|---|
Add CanMatch guard to control whether a Route should match (#46021) |
Special Thanks
Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Badawi7, Daniel Schmitz, Derek Cormier, Jessica Janiuk, JiaLiPassion, JoostK, Kevin Davila, Kristiyan Kostadinov, Paul Draper, Paul Gschwendtner, Tom Eustace, Totati, Younes Jaaidi, alefra, dario-piotrowicz, markostanimirovic, mgechev, piyush132000, sten-bone and vivekkoya
14.0.2 (2022-06-15)
common
Commit | Description |
---|---|
allow null in ngComponentOutlet (#46280) |
compiler-cli
Commit | Description |
---|---|
don't emit empty providers array (#46301) | |
use inline type-check blocks for components outside rootDir (#46096) |
core
Commit | Description |
---|---|
Resolve forwardRef declarations for jit (#46334) |
Special Thanks
Alex Rickabaugh, Andrew Scott, Badawi7, Daniel Schmitz, Derek Cormier, JoostK, Kevin Davila, Kristiyan Kostadinov, Paul Draper, Paul Gschwendtner, Tom Eustace, Totati, Younes Jaaidi, alefra, dario-piotrowicz, markostanimirovic, mgechev, piyush132000, sten-bone and vivekkoya
14.1.0-next.0 (2022-06-08)
router
Commit | Description |
---|---|
Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877) |
upgrade
Commit | Description |
---|---|
more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214) |
Special Thanks
AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Jessica Janiuk, Joey Perrott, Keith Li, SyedAhm3r, mariu and mgechev
14.0.1 (2022-06-08)
bazel
Commit | Description |
---|---|
update API extractor version (#46259) | |
reduce input files for ng_package rollup and type bundle actions (#46187) |
forms
Commit | Description |
---|---|
allow FormBuilder.group(...) to accept optional fields. (#46253) |
Special Thanks
Adrien Crivelli, Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dylan Hunn, Fabrizio Fallico, George Kalpakas, Jelle Bruisten, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Paul Gschwendtner, Phalgun Vaddepalli, San Leen, dario-piotrowicz, mgechev and wellWINeo
14.0.0 (2022-06-02)
Breaking Changes
animations
- The
AnimationDriver.getParentElement
method has become required, so any
implementors of this interface are now required to provide an implementation
for this method. This breakage is unlikely to affect application developers,
asAnimationDriver
is not expected to be implemented in user code.
common
- Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
Location does not depend on PlatformLocation anymore.
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
orShadowDom
- define keyframes rules in global stylesheets (e.g styles.css)
- define keyframes rules programmatically in code.
- change the component's view encapsulation to the
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
orShadowDom
- define keyframes rules in global stylesheets (e.g styles.css)
- define keyframes rules programmatically in code.
- change the component's view encapsulation to the
core
-
Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.
-
TypeScript versions older than 4.6 are no longer supported.
-
Forms [email] input coercion
Forms [email] input value will be considered as true if it is defined with any value rather
than false and 'false'. -
Since Ivy, TestBed doesn't use AOT summaries. The
aotSummaries
fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. TheaotSummaries
fields were completely unused, so you can just drop them from the TestBed APIs usage.
forms
-
Forms classes accept a generic.
Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.
-
objects with a length key set to zero will no longer validate as empty.
This is technically a breaking change, since objects with a key
length
and value0
will no longer validate as empty. This is a very minor change, and any reliance on this behavior is probably a bug anyway.
http
-
Queries including + will now actually query for + instead of space.
Most workarounds involving custom codecs will be unaffected.
Possible server-side workarounds will need to be undone. -
JSONP will throw an error when headers are set on a reques
JSONP does not support headers being set on requests. Before when
a request was sent to a JSONP backend that had headers set the headers
were ignored. The JSONP backend will now throw an error if it
receives a request that has any headers set. Any uses of JSONP
on requests with headers set will need to remove the headers
to avoid the error.
platform-browser
-
This change may cause a breaking change in unit tests that are implicitly depending on a specific
number and sequence of change detections in order for their assertions to pass. -
This may break invalid calls to
TransferState
methods.This tightens parameter types of
TransferState
usage, and is a minor breaking change which may reveal existing problematic calls.
router
-
The type of
Route.pathMatch
is now more strict. Places that use
pathMatch
will likely need to be updated to have an explicit
Route
/Routes
type so that TypeScript does not infer the type as
string
. -
When returning a
Promise
from the
LoadChildrenCallback
, the possible type is now restricted to
Type<any>|NgModuleFactory<any>
rather thanany
. -
initialNavigation: 'enabled'
was deprecated in v11 and is replaced by
initialNavigation: 'enabledBlocking'
. -
The type of
component
onActivatedRoute
andActivatedRouteSnapshot
includesstring
. In reality, this is not the case. The component
cannot be anything other than a component class. -
- The type of
initialUrl
is set tostring|UrlTree
but in reality,
theRouter
only sets it to a value that will always beUrlTree
initialUrl
is documented as "The target URL passed into the
Router#navigateByUrl()
call before navigation" but the value
actually gets set to something completely different. It's set to the
current internalUrlTree
of the Router at the time navigation
occurs.
With this change, there is no exact replacement for the old value of
initialUrl
because it was enver intended to be exposed.
Router.url
is likely the best replacement for this.
In more specific use-cases, tracking thefinalUrl
between successful
navigations can also be used as a replacement. - The type of
-
Lazy loaded configs are now also validated once loaded like the
initial set of routes are. Lazy loaded modules which have invalid Route
configs will now error. Note that this is only done in dev mode so
there is no production impact of this change. -
When a guard returns a
UrlTree
, the router would previously schedule
the redirect navigation within asetTimeout
. This timeout is now removed,
which can result in test failures due to incorrectly written tests.
Tests which perform navigations should ensure that all timeouts are
flushed before making assertions. Tests should ensure they are capable
of handling all redirects from the original navigation. -
Previously, resolvers were waiting to be completed
before proceeding with the navigation and the Router would take the last
value emitted from the resolver.
The router now takes only the first emitted value by the resolvers
and then proceeds with navigation. This is now consistent withObservables
returned by other guards: only the first value is used.
zone.js
-
in TaskTrackingZoneSpec track a periodic task until it is cancelled
The breaking change is scoped only to the plugin
zone.js/plugins/task-tracking
. If you usedTaskTrackingZoneSpec
and
checked the pending macroTasks e.g. using(this.ngZone as any)._inner ._parent._properties.TaskTrackingZone.getTasksFor('macroTask')
, then
its behavior slightly changed for periodic macrotasks. For example,
previously thesetInterval
macrotask was no longer tracked after its
callback was executed for the first time. Now it's tracked until
the task is explicitly cancelled, e.g withclearInterval(id)
.fixes 45350
Deprecations
common
- The
ngModuleFactory
input of theNgComponentOutlet
directive is deprecated in favor of a newly addedngModule
input. ThengModule
input accepts references to the NgModule class directly, without the need to resolve module factory first.
forms
- The
initialValueIsDefault
option has been deprecated and replaced with the otherwise-identicalnonNullable
option, for the sake of naming consistency. - It is now deprecated to provide both
AbstractControlOption
s and an async validators argument to a FormControl. Previously, the async validators would just be silently dropped, resulting in a probably buggy forms. Now, the constructor call is deprecated, and Angular will print a warning in devmode.
router
- The
resolver
argument of theRouterOutletContract.activateWith
function and theresolver
field of theOutletContext
class are deprecated. Passing component factory resolvers are no longer needed. TheComponentFactoryResolver
-related symbols were deprecated in@angular/core
package since v13.
animations
bazel
common
compiler
Commit | Description |
---|---|
exclude empty styles from emitted metadata (#45459) | |
scope css keyframes in emulated view encapsulation (#42608) | |
scope css keyframes in emulated view encapsulation (#42608) |
compiler-cli
core
devtools tabs
Commit | Description |
---|---|
stop scroll occuring at tabs level |
forms
http
Commit | Description |
---|---|
encode + signs in query params as %2B (angular#11058) (#45111) | |
Throw error when headers are supplied in JSONP request (#45210) |
language-service
Commit | Description |
---|---|
Provide plugin to delegate rename requests to Angular (#44696) | |
Fix detection of Angular for v14+ projects (#45998) |
localize
Commit | Description |
---|---|
ensure transitively loaded compiler code is tree-shakable (#45405) |
migrations
Commit | Description |
---|---|
Add migration to add explicit Route /Routes type (#45084) |
ngcc
Commit | Description |
---|---|
cope with packages following APF v14+ (#45833) |
platform-browser
platform-server
Commit | Description |
---|---|
implement renderApplication function (#45785) |
|
update renderApplication to move appId to options (#45844) |
router
service-worker
Commit | Description |
---|---|
add cacheOpaqueResponses option for data-groups (#44723) |
|
emit a notification when the service worker is already up to date after check (#45216) |
Special Thanks
Adrian Kunz, Alan Agius, AleksanderBodurri, Alex Rickabaugh, AlirezaEbrahimkhani, Amir Rustamzadeh, Andrew Kushnir, Andrew Scott, Chabbey François, Charles Lyding, Cédric Exbrayat, Daan De Smedt, David Schmidt, Derek Cormier, Dmitrij Kuba, Doug Parker, Dylan Hunn, Emma Twersky, George Kalpakas, George Looshch, Jan Kuehle, Jessica Janiuk, JiaLiPassion, JimMorrison723, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Leosvel Pérez Espinosa, Maddie Klein, Mark Whitfeld, Martin Sikora, Michael-Doner, Michal Materowski, Minko Gechev, Paul Gschwendtner, Pawel Kozlowski, Payam Shahidi, Pusztai Tibor, Ricardo Mattiazzi Baumgartner, Roy Dorombozi, Ruslan Lekhman, Samuel Littley, Sergej Grilborzer, Sumit Arora, Tobias Speicher, Virginia Dooley, Zack Elliott, alirezaghey, ananyahs96, arturovt, cexbrayat, dario-piotrowicz, ivanwonder, kamikopi, markostanimirovic, markwhitfeld, mgechev, renovate[bot], twerske and zverbeta
14.0.0-rc.3 (2022-05-31)
compiler-cli
Commit | Description |
---|---|
preserve forwardRef for component scopes (#46139) |
core
Special Thanks
Alex Rickabaugh, Andrew Kushnir, Billy Lando, George Kalpakas, Ian Gregory, Matt Shaffer, Paul Gschwendtner, Pawel Kozlowski, Rune Andersen Hartvig, dario-piotrowicz and mgechev
14.0.0-rc.2 (2022-05-25)
Deprecations
forms
- The
initialValueIsDefault
option has been deprecated and replaced with the otherwise-identicalnonNullable
option, for the sake of naming consistency. - It is now deprecated to provide both
AbstractControlOption
s and an async validators argument to a FormControl. Previously, the async validators would just be silently dropped, resulting in a probably buggy forms. Now, the constructor call is deprecated, and Angular will print a warning in devmode.
bazel
Commit | Description |
---|---|
use allowedInputs to avoid fs.stat (#46069) |
compiler-cli
Commit | Description |
---|---|
update unknown tag error for aot standalone components (#45919) |
core
forms
Commit | Description |
---|---|
Add a nonNullable option to FormControl for consistency. |
|
Warn on FormControls that are constructed with both options and asyncValidators. |
Special Thanks
A. J. Javier, Alex Rickabaugh, Andrew Kushnir, Aristeidis Bampakos, David Schmidt, Doug Parker, Dylan Hunn, George Kalpakas, J Rob Gant, Jan Kuehle, Jerome Kruse, Joey Perrott, JoostK, Kristiyan Kostadinov, Nathan Nontell, Paul Gschwendtner, Pawel Kozlowski, Roopesh Chinnakampalli, Thomas Mair, Tom Raithel, dario-piotrowicz and mgechev
14.0.0-rc.1 (2022-05-18)
compiler-cli
Commit | Description |
---|---|
handle standalone components with cycles (#46029) | |
use existing imports for standalone dependencies (#46029) |
core
Commit | Description |
---|---|
set correct context for inject() for component ctors (#45991) |
forms
Commit | Description |
---|---|
Value and RawValue should be part of the public API. (#45978) |
language-service
Commit | Description |
---|---|
Fix detection of Angular for v14+ projects (#45998) | |
Prevent TSServer from removing templates from project (#45965) |
Special Thanks
4javier, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, Evan Lee, George Kalpakas, Joey Perrott, Kristiyan Kostadinov, Pavan Kumar Jadda, Roy Dorombozi, Virginia Dooley, celinetunc, ivanwonder and mariu
14.0.0-rc.0 (2022-05-11)
bazel
Commit | Description |
---|---|
speed up d.ts bundling by configuring worker (#45900) |
core
Commit | Description |
---|---|
allow checkNoChanges mode to be tree-shaken in production (#45913) |
forms
Commit | Description |
---|---|
Allow NonNullableFormBuilder to be injected. (#45904) | |
Prevent FormBuilder from distributing unions to control types. (#45942) |
language-service
Commit | Description |
---|---|
Add resource files as roots to their associated projects (#45601) |
ngcc
Commit | Description |
---|---|
cope with packages following APF v14+ (#45833) |
platform-browser
Commit | Description |
---|---|
avoid including Testability by default in bootstrapApplication (#45885) |
Special Thanks
AleksanderBodurri, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Dylan Hunn, George Kalpakas, JayMartMedia, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ted.chang, Thomas Mair, Will 保哥, dario-piotrowicz, mgechev and ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ
14.0.0-next.16 (2022-05-04)
Breaking Changes
router
initialNavigation: 'enabled'
was deprecated in v11 and is replaced by
initialNavigation: 'enabledBlocking'
.
common
Commit | Description |
---|---|
properly cast http param values to strings (#42643) |
compiler
Commit | Description |
---|---|
exclude empty styles from emitted metadata (#45459) |
compiler-cli
core
forms
Commit | Description |
---|---|
Add FormBuilder.nonNullable . (#45852) |
platform-server
Commit | Description |
---|---|
implement renderApplication function (#45785) |
|
update renderApplication to move appId to options (#45844) |
router
Commit | Description |
---|---|
add type properties to all router events (#44189) | |
Remove deprecated initialNavigation option (#45729) |
Special Thanks
AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Cédric Exbrayat, Dylan Hunn, George Kalpakas, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ryan Day, Zack Elliott, cexbrayat and dario-piotrowicz
14.0.0-next.15 (2022-04-27)
Breaking Changes
common
- Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
Location does not depend on PlatformLocation anymore.
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
orShadowDom
- define keyframes rules in global stylesheets (e.g styles.css)
- define keyframes rules programmatically in code.
- change the component's view encapsulation to the
router
- When a guard returns a
UrlTree
, the router would previously schedule
the redirect navigation within asetTimeout
. This timeout is now removed,
which can result in test failures due to incorrectly written tests.
Tests which perform navigations should ensure that all timeouts are
flushed before making assertions. Tests should ensure they are capable
of handling all redirects from the original navigation.
bazel
Commit | Description |
---|---|
speed up dev-turnaround by bundling types only when packaging (#45405) | |
add this_is_bazel marker (#45728) |
common
Commit | Description |
---|---|
add getState method to LocationStrategy interface (#45648) |
compiler
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) |
core
Commit | Description |
---|---|
add the bootstrapApplication function (#45674) |
|
implement standalone directives, components, and pipes (#45687) |
localize
Commit | Description |
---|---|
ensure transitively loaded compiler code is tree-shakable (#45405) |
router
Special Thanks
Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Joey Perrott, Michal Materowski, Paul Gschwendtner, Pawel Kozlowski, Sumit Arora and dario-piotrowicz
14.0.0-next.14 (2022-04-20)
Breaking Changes
http
- Queries including + will now actually query for + instead of space.
Most workarounds involving custom codecs will be unaffected.
Possible server-side workarounds will need to be undone.
router
-
The type of
component
onActivatedRoute
andActivatedRouteSnapshot
includesstring
. In reality, this is not the case. The component
cannot be anything other than a component class. -
Lazy loaded configs are now also validated once loaded like the
initial set of routes are. Lazy loaded modules which have invalid Route
configs will now error. Note that this is only done in dev mode so
there is no production impact of this change.
Deprecations
router
- The
resolver
argument of theRouterOutletContract.activateWith
function and theresolver
field of theOutletContext
class are deprecated. Passing component factory resolvers are no longer needed. TheComponentFactoryResolver
-related symbols were deprecated in@angular/core
package since v13.
bazel
Commit | Description |
---|---|
do not error if files part of srcs are outside of package (#45622) |
compiler-cli
Commit | Description |
---|---|
fix issue with incremental tracking of APIs for pipes (#45672) |
core
forms
Commit | Description |
---|---|
Add a FormRecord type. (#45607) | |
Fix a typing bug in FormBuilder. (#45684) |
http
Commit | Description |
---|---|
encode + signs in query params as %2B (angular#11058) (#45111) |
language-service
Commit | Description |
---|---|
two-way binding completion should not remove the trailing quote (#45582) |
router
Special Thanks
Adrian Kunz, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dmitrij Kuba, Doug Parker, Dylan Hunn, George Kalpakas, Ilya Marchik, Jeremy Elbourn, Kristiyan Kostadinov, Louis Gombert, Mangalraj, Marko Kaznovac, Paul Gschwendtner, Saurabh Kamble, dario-piotrowicz and ivanwonder
14.0.0-next.13 (2022-04-13)
Breaking Changes
core
- Since Ivy, TestBed doesn't use AOT summaries. The
aotSummaries
fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. TheaotSummaries
fields were completely unused, so you can just drop them from the TestBed APIs usage.
compiler
Commit | Description |
---|---|
avoid errors with extremely long instruction chains (#45574) |
core
Commit | Description |
---|---|
remove deprecated aotSummaries fields in TestBed config (#45487) |
Special Thanks
4javier, Andrew Kushnir, Andrew Scott, Dylan Hunn, Jason Hendee, Jessica Janiuk, Kristiyan Kostadinov, Michael-Doner, Michal Materowski and Virginia Dooley
14.0.0-next.12 (2022-04-12)
Breaking Changes
forms
-
Forms classes accept a generic.
Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.
router
- When returning a
Promise
from the
LoadChildrenCallback
, the possible type is now restricted to
Type<any>|NgModuleFactory<any>
rather thanany
.
animations
Commit | Description |
---|---|
make validateStyleProperty check dev-mode only (#45570) |
bazel
forms
Commit | Description |
---|---|
Implement strict types for the Angular Forms package. (#43834) |
platform-browser
Commit | Description |
---|---|
remove obsolete shim for Map comparison in Jasmine (#45521) |
router
Commit | Description |
---|---|
Remove any from LoadChildrenCallback type (#45524) |
Special Thanks
Andrew Scott, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Hossein Mousavi, Jessica Janiuk, Joe Martin (Crowdstaffing), Joey Perrott, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Michael-Doner, Michal Materowski, Paul Gschwendtner, Samuel Littley, Sumit Arora and dario-piotrowicz
14.0.0-next.11 (2022-04-06)
animations
Commit | Description |
---|---|
handle structured AnimateTimings (#31107) |
migrations
Commit | Description |
---|---|
Add migration to add explicit Route /Routes type (#45084) |
router
Commit | Description |
---|---|
merge interited resolved data and static data (#45276) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Chabbey François, Christoph Guttandin, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Martin Sikora, mgechev and piyush132000
14.0.0-next.10 (2022-03-30)
Breaking Changes
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
orShadowDom
- define keyframes rules in global stylesheets (e.g styles.css)
- define keyframes rules programmatically in code.
- change the component's view encapsulation to the
http
-
JSONP will throw an error when headers are set on a reques
JSONP does not support headers being set on requests. Before when
a request was sent to a JSONP backend that had headers set the headers
were ignored. The JSONP backend will now throw an error if it
receives a request that has any headers set. Any uses of JSONP
on requests with headers set will need to remove the headers
to avoid the error.
compiler
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) |
compiler-cli
core
Commit | Description |
---|---|
avoid Closure Compiler error in restoreView (#45445) |
forms
Commit | Description |
---|---|
not picking up disabled state if group is swapped out and disabled (#43499) |
http
Commit | Description |
---|---|
Throw error when headers are supplied in JSONP request (#45210) |
Special Thanks
Alex Rickabaugh, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Dylan Hunn, JiaLiPassion, JoostK, Kristiyan Kostadinov, Maddie Klein, Michael-Doner, Paul Gschwendtner, Willian Corrêa, arturovt, dario-piotrowicz and zverbeta
14.0.0-next.9 (2022-03-25)
Special Thanks
Paul Gschwendtner
14.0.0-next.8 (2022-03-25)
Breaking Changes
core
- TypeScript versions older than 4.6 are no longer supported.
zone.js
- in TaskTrackingZoneSpec track a periodic task until it is cancelled
The breaking change is scoped only to the plugin
zone.js/plugins/task-tracking
. If you used TaskTrackingZoneSpec
and
checked the pending macroTasks e.g. using (this.ngZone as any)._inner ._parent._properties.TaskTrackingZone.getTasksFor('macroTask')
, then
its behavior slightly changed for periodic macrotasks. For example,
previously the setInterval
macrotask was no longer tracked after its
callback was executed for the first time. Now it's tracked until
the task is explicitly cancelled, e.g with clearInterval(id)
.
fixes 45350
animations
Commit | Description |
---|---|
provide warnings for non-animatable CSS properties (#45212) | |
apply default params when resolved value is null or undefined (#45339) |
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 |
---|---|
full side-effectful registration of NgModules with ids (#45024) | |
ignore the module.id anti-pattern for NgModule ids (#45024) |
core
Commit | Description |
---|---|
drop support for TypeScript 4.4 and 4.5 (#45394) | |
memory leak in event listeners inside embedded views (#43075) |
forms
Commit | Description |
---|---|
Make UntypedFormBuilder assignable to FormBuilder, and vice versa. (#45421) |
Special Thanks
Alan Agius, Alex Rickabaugh, AlirezaEbrahimkhani, Ben Brook, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Mike, Paul Gschwendtner, Tobias Speicher, alirezaghey, arturovt, dario-piotrowicz, khai and mgechev
14.0.0-next.7 (2022-03-16)
core
Commit | Description |
---|---|
triggerEventHandler accept optional eventObj (#45279) |
forms
Commit | Description |
---|---|
improve error message for invalid value accessors (#45192) |
Special Thanks
Alan Agius, Alistair Kane, Amer Yousuf, Andrew Kushnir, Andrew Scott, Derek Cormier, Jessica Janiuk, JiaLiPassion, Lee Cooper, Paul Gschwendtner, alirezaghey and why520crazy
14.0.0-next.6 (2022-03-09)
Breaking Changes
core
- Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.
compiler
Commit | Description |
---|---|
compute correct offsets when interpolations have HTML entities (#44811) |
core
Commit | Description |
---|---|
drop support for Node.js 12 (#45286) | |
support TypeScript 4.6 (#45190) | |
incorrectly inserting elements inside <template> element (#43429) |
forms
Commit | Description |
---|---|
Add UntypedFormBuilder (#45268) | |
Property renaming safe code (#45271) | |
Update the typed forms migration. (#45281) |
language-service
Commit | Description |
---|---|
Prioritize Angular-specific completions over DOM completions (#45293) |
service-worker
Commit | Description |
---|---|
emit a notification when the service worker is already up to date after check (#45216) | |
file system hash in batch of 500 elements (#45262) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Anner Visser, Aristeidis Bampakos, Dylan Hunn, George Kalpakas, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Luca, Mladen Jakovljević, Paul Gschwendtner, Srikanth Kolli, ananyahs96 and nanda18
14.0.0-next.5 (2022-03-02)
Breaking Changes
router
-
The type of
Route.pathMatch
is now more strict. Places that use
pathMatch
will likely need to be updated to have an explicit
Route
/Routes
type so that TypeScript does not infer the type as
string
. -
Previously, resolvers were waiting to be completed
before proceeding with the navigation and the Router would take the last
value emitted from the resolver.
The router now takes only the first emitted value by the resolvers
and then proceeds with navigation. This is now consistent withObservables
returned by other guards: only the first value is used.
common
Commit | Description |
---|---|
canceled JSONP requests won't throw console error with missing callback function (#36807) | |
make NgLocalization token tree-shakable (#45118) |
core
forms
Commit | Description |
---|---|
Add untyped versions of the model classes for use in migration. (#45205) |
localize
Commit | Description |
---|---|
avoid imports into compiler-cli package (#45180) |
router
Commit | Description |
---|---|
Fix type of Route.pathMatch to be more accurate (#45176) | |
take only the first emitted value of every resolver to make it consistent with guards (#44573) |
Special Thanks
Andrew Kushnir, Andrew Scott, Charles Lyding, Dmitrij Kuba, Dylan Hunn, Guillaume Bonnet, Jessica Janiuk, JiaLiPassion, JoostK, Kristiyan Kostadinov, Martin Sikora, Paul Gschwendtner, Theodore Brown and dario-piotrowicz
14.0.0-next.4 (2022-02-23)
Breaking Changes
animations
- The
AnimationDriver.getParentElement
method has become required, so any
implementors of this interface are now required to provide an implementation
for this method. This breakage is unlikely to affect application developers,
asAnimationDriver
is not expected to be implemented in user code.
animations
Commit | Description |
---|---|
allow animations with unsupported CSS properties (#44729) | |
make AnimationDriver.getParentElement required (#45114) |
compiler-cli
Commit | Description |
---|---|
Support resolve animation name from the DTS (#45107) |
core
Special Thanks
Alan Cohen, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Daniele Maltese, David Wolf, JiaLiPassion, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, arturovt, dario-piotrowicz, ivanwonder and manuelkroiss
14.0.0-next.3 (2022-02-17)
animations
Commit | Description |
---|---|
improve algorithm to balance animation namespaces (#45057) | |
made errors in the animations package tree shakeable (#45004) |
common
Commit | Description |
---|---|
cleanup URL change listeners when the root view is removed (#44901) |
compiler
Commit | Description |
---|---|
chain element start/end instructions (#44994) |
core
Special Thanks
Alan Cohen, AlirezaEbrahimkhani, Amer Yousuf, Andrew Kushnir, Aristeidis Bampakos, Dario Piotrowicz, Dylan Hunn, Esteban Gehring, George Kalpakas, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Mina Hosseini Moghadam, Patrick Cameron, Srdjan Milic, Yousaf Nawaz, arturovt, dario-piotrowicz, markostanimirovic, mgechev and zuckjet
14.0.0-next.2 (2022-02-07)
Breaking Changes
core
- Forms [email] input coercion
Forms [email] input value will be considered as true if it is defined with any value rather
than false and 'false'.
forms
- objects with a length key set to zero will no longer validate as empty.
This is technically a breaking change, since objects with a key length
and value 0
will no longer validate as empty. This is a very minor change, and any reliance on this behavior is probably a bug anyway.
platform-browser
-
This change may cause a breaking change in unit tests that are implicitly depending on a specific
number and sequence of change detections in order for their assertions to pass. -
This may break invalid calls to
TransferState
methods.
This tightens parameter types of TransferState
usage, and is a minor breaking change which may reveal existing problematic calls.
router
-
- The type of
initialUrl
is set tostring|UrlTree
but in reality,
theRouter
only sets it to a value that will always beUrlTree
- The type of
initialUrl
is documented as "The target URL passed into the
Router#navigateByUrl()
call before navigation" but the value
actually gets set to something completely different. It's set to the
current internalUrlTree
of the Router at the time navigation
occurs.
With this change, there is no exact replacement for the old value of
initialUrl
because it was enver intended to be exposed.
Router.url
is likely the best replacement for this.
In more specific use-cases, tracking the finalUrl
between successful
navigations can also be used as a replacement.
animations
Commit | Description |
---|---|
implement missing transition delay (#44799) |
common
Commit | Description |
---|---|
support years greater than 9999 (#43622) |
compiler
Commit | Description |
---|---|
allow banana-in-a-box bindings to end with non-null assertion (#37809) |
compiler-cli
Commit | Description |
---|---|
initial implementation of standalone components (#44812) |
core
Commit | Description |
---|---|
input coercion (#42803) |
forms
Commit | Description |
---|---|
Correct empty validator to handle objects with a property length: 0 . (#33729) |
|
incorrectly keeping track of ngModel with ngFor inside a form (#40459) |
http
Commit | Description |
---|---|
remove IE special status handling (#44354) |
platform-browser
Commit | Description |
---|---|
do not run change detection when loading Hammer (#44921) | |
Make transfer state key typesafe. (#23020) |
router
Commit | Description |
---|---|
set stricter type for Route.title (#44939) | |
Update Navigation#initialUrl to match documentation and reality (#43863) |
upgrade
Commit | Description |
---|---|
Do not trigger duplicate navigation events from Angular Router (#43441) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Daniel Díaz, Dario Piotrowicz, Doug Parker, Jayson Acosta, Joey Perrott, JoostK, Kristiyan Kostadinov, Olivier Capuozzo, Payam Shahidi, Pusztai Tibor, Ramzan, Ruslan Lekhman, Sergej Grilborzer, Shai Reznik, TANMAY SRIVASTAVA, arturovt, dario-piotrowicz, iRealNirmal, jhonyeduardo, markostanimirovic, mgechev and zuckjet
14.0.0-next.1 (2022-02-02)
Deprecations
common
- The
ngModuleFactory
input of theNgComponentOutlet
directive is deprecated in favor of a newly addedngModule
input. ThengModule
input accepts references to the NgModule class directly, without the need to resolve module factory first.
animations
Commit | Description |
---|---|
Remove generic objects in favor of Maps (#44482) | |
remove no longer needed CssKeyframes classes (#44903) |
common
Commit | Description |
---|---|
support NgModule as an input to the NgComponentOutlet (#44815) | |
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) |
devtools
devtools tabs
Commit | Description |
---|---|
stop scroll occuring at tabs level |
forms
router
Commit | Description |
---|---|
Add Route.title with a configurable TitleStrategy (#43307) |
Special Thanks
Alan, Alan Agius, AleksanderBodurri, Amir Rustamzadeh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Arjen, Daan De Smedt, Daniel Díaz, David Shevitz, Doug Parker, Dylan Hunn, Emma Twersky, Esteban Gehring, George Kalpakas, Jessica Janiuk, JimMorrison723, JoostK, Juri Strumpflohner, Lee Robinson, Maarten Tibau, Mark Whitfeld, Minko Gechev, Paul Gschwendtner, Ricardo Mattiazzi Baumgartner, Sumit Arora, Theodore Brown, arturovt, dario-piotrowicz, fru2, kamikopi, markostanimirovic, markwhitfeld, mgechev, renovate[bot] and twerske
14.0.0-next.0 (2022-01-26)
language-service
Commit | Description |
---|---|
Provide plugin to delegate rename requests to Angular (#44696) |
service-worker
Commit | Description |
---|---|
add cacheOpaqueResponses option for data-groups (#44723) |
Special Thanks
Andrew Kushnir, Dylan Hunn, George Kalpakas, JiaLiPassion, Joey Perrott and ivanwonder