angular/angular
Compare Source
common
Commit |
Type |
Description |
930af9dd26 |
fix |
Fix MockPlatformLocation events and missing onPopState implementation (#48113) |
forms
language-service
Commit |
Type |
Description |
cc8b76ef7c |
fix |
correctly handle host directive inputs/outputs (#48147) |
a8c33bf931 |
fix |
update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build (#48120) |
router
Commit |
Type |
Description |
e4309d57d8 |
fix |
correct type of nextState parameter in canDeactivate (#48038) |
9baefd085f |
fix |
Ensure renavigating in component init works with enabledBlocking (#48063) |
fa5528fb5f |
fix |
restore 'history.state' on popstate even if navigationId missing (#48033) |
Special Thanks
Alan Agius, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn, George Kalpakas, Greg Magolan, Ikko Ashimine, Ivan Rodriguez, Jessica Janiuk, Joe Roxbury, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Mikhail Savchuk, Nebojsa Cvetkovic, Pawel Kozlowski, Volodymyr and Wooshaah
Compare Source
Blog post "Angular v15 is now available".
Breaking Changes
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:
@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.
The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
or ShadowDom
- define keyframes rules in global stylesheets (e.g styles.css)
- define keyframes rules programmatically in code.
compiler-cli
-
Invalid constructors for DI may now report compilation errors
When a class inherits its constructor from a base class, the compiler may now
report an error when that constructor cannot be used for DI purposes. This may
either be because the base class is missing an Angular decorator such as
@Injectable()
or @Directive()
, or because the constructor contains parameters
which do not have an associated token (such as primitive types like string
).
These situations used to behave unexpectedly at runtime, where the class may be
constructed without any of its constructor parameters, so this is now reported
as an error during compilation.
Any new errors that may be reported because of this change can be resolved either
by decorating the base class from which the constructor is inherited, or by adding
an explicit constructor to the class for which the error is reported.
-
Angular compiler option enableIvy
has been removed as Ivy is the only rendering engine.
core
- Angular no longer supports Node.js versions
14.[15-19].x
and 16.[10-12].x
. Current supported versions of Node.js are 14.20.x
, 16.13.x
and 18.10.x
.
- TypeScript versions older than 4.8 are no longer supported.
- Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
- Existing iframe usages may have
src
or srcdoc
preceding other attributes. Such usages may need to be updated to ensure compliance with the new stricter rules around iframe bindings.
forms
- setDisabledState will always be called when a
ControlValueAccessor
is attached. You can opt-out with FormsModule.withConfig
or ReactiveFormsModule.withConfig
.
localize
-
-
canParse
method has been removed from all translation parsers in @angular/localize/tools
. analyze
should be used instead.
- the
hint
parameter in theparse
methods is now mandatory.
router
- Previously, the
RouterOutlet
would immediately
instantiate the component being activated during navigation. Now the
component is not instantiated until the change detection runs. This
could affect tests which do not trigger change detection after a router
navigation. In rarer cases, this can affect production code that relies
on the exact timing of component availability.
- The title property is now required on ActivatedRouteSnapshot
-
relativeLinkResolution
is no longer configurable in
the Router. This option was used as a means to opt out of a bug fix.
Deprecations
common
- The
DATE_PIPE_DEFAULT_TIMEZONE
token is now deprecated in favor
of the DATE_PIPE_DEFAULT_OPTIONS
token, which accepts an object
as a value and the timezone can be defined as a field (called timezone
)
on that object.
core
-
- The ability to pass an
NgModule
to the providedIn
option for
@Injectable
and InjectionToken
is now deprecated.
providedIn: NgModule
was intended to be a tree-shakable alternative to
NgModule providers. It does not have wide usage, and in most cases is used
incorrectly, in circumstances where providedIn: 'root'
should be
preferred. If providers should truly be scoped to a specific NgModule, use
NgModule.providers
instead.
- The ability to set
providedIn: 'any'
for an @Injectable
or
InjectionToken
is now deprecated.
providedIn: 'any'
is an option with confusing semantics and is almost
never used apart from a handful of esoteric cases internal to the framework.
-
The bit field signature of Injector.get()
has been deprecated, in favor of the new options object.
-
The bit field signature of TestBed.inject()
has been deprecated, in favor of the new options object.
router
- The
RouterLinkWithHref
directive is deprecated, use the RouterLink
directive instead. The RouterLink
contains the code from the RouterLinkWithHref
to handle elements with href
attributes.
common
compiler
compiler-cli
core
forms
http
language-service
Commit |
Type |
Description |
bebef5fb43 |
feat |
Quick fix to import a component when its selector is used (#47088) |
e7ee53c541 |
feat |
support to fix invalid banana in box (#47393) |
localize
Commit |
Type |
Description |
400a6b5e37 |
fix |
add polyfill in polyfills array instead of polyfills.ts (#47569) |
b6fd814542 |
fix |
update ng add schematic to support Angular CLI version 15 (#47763) |
d36fd3d9e4 |
refactor |
remove deprecated canParse method from TranslationParsers (#47275) |
platform-server
Commit |
Type |
Description |
2908eba59c |
fix |
align server renderer interface with base renderer (#47868) |
router
Special Thanks
Alan Agius, AleksanderBodurri, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, Ferdinand Malcher, George Kalpakas, Jeremy Elbourn, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Martin Probst, Matthias Weiß, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Sabareesh Kappagantu, WD Snoeijer, angular-robot[bot], arturovt, ced, dario-piotrowicz, ivanwonder and jaybell
Compare Source
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 |
Type |
Description |
54814c8e9b |
fix |
hardening attribute and property binding rules for |
Special Thanks
Andrew Kushnir
Compare Source
router
Commit |
Type |
Description |
aef353c143 |
fix |
Ensure renavigating in component init works with enabledBlocking (#48066) |
Special Thanks
Alan Agius, Andrew Scott and Mujo Osmanovic
Compare Source
core
Commit |
Type |
Description |
a4312e1be5 |
fix |
add zone.js version 0.12.x as a valid peer dependency (#48002) |
router
Special Thanks
Alan Agius, Albert Szekely, Andrew Scott, Doug Parker, Kristiyan Kostadinov, Markus Eckstein, Peter Scriven and abergquist
Compare Source
platform-browser
Commit |
Type |
Description |
92d28bdd99 |
perf |
resolve memory leak when using animations with shadow DOM (#47903) |
platform-server
Commit |
Type |
Description |
d2d9bbf5ce |
fix |
call onSerialize when state is empty (#47888) |
Special Thanks
Alan Agius, Kristiyan Kostadinov, Virginia Dooley and mgechev
Compare Source
Special Thanks
Andrew Scott, Balaji, Paul Gschwendtner, WD Snoeijer, onrails and vyom1611
Compare Source
Special Thanks
Bob Watson, Charles Barnes, Joey Perrott, Virginia Dooley, WD Snoeijer, abergquist and urugator
Compare Source
compiler-cli
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
Compare Source
This release contains various API docs improvements.
Special Thanks
Alexander Wiebe, Ciprian Sauliuc, Dmytro Mezhenskyi, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Ole M, Paul Gschwendtner, Pawel Kozlowski and mgechev
Compare Source
compiler-cli
Commit |
Type |
Description |
a4b66fe1e5 |
perf |
cache source file for reporting type-checking diagnostics (#47508) |
core
Commit |
Type |
Description |
2c46b5ab24 |
fix |
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
Compare Source
animations
Commit |
Type |
Description |
bba2dae812 |
fix |
make sure that the useAnimation function delay is applied (#47468) |
Special Thanks
AleksanderBodurri, Andrew Kushnir, Andrew Scott, Bob Watson, George Kalpakas, Joey Perrott, Mauro Mattos, dario-piotrowicz, fabioemoutinho and famzila
Compare Source
animations
Commit |
Type |
Description |
937e6c5b3d |
fix |
make sure that the animation function delay is applied (#47285) |
common
core
forms
Commit |
Type |
Description |
80c66a1e57 |
fix |
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
Compare Source
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 |
Type |
Description |
54814c8e9b |
fix |
hardening attribute and property binding rules for |
Special Thanks
Andrew Kushnir
Compare Source
animations
Commit |
Type |
Description |
b96e571897 |
fix |
fix stagger timing not handling params (#47208) |
common
compiler-cli
Commit |
Type |
Description |
ea89677c12 |
feat |
support more recent version of tsickle (#47018) |
core
forms
Commit |
Type |
Description |
426af91a42 |
feat |
add FormBuilder.record() method (#46485) |
b302797de4 |
fix |
Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034) |
language-service
Commit |
Type |
Description |
598b72bd05 |
feat |
support fix the component missing member (#46764) |
platform-browser
Commit |
Type |
Description |
07606e3181 |
feat |
add isEmpty method to the TransferState class (#46915) |
platform-server
Commit |
Type |
Description |
2b4d7f6733 |
feat |
support document reference in render functions (#47032) |
router
service-worker
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
Compare Source
compiler
Commit |
Type |
Description |
0583227708 |
fix |
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
Compare Source
core
Commit |
Type |
Description |
5ff715c549 |
fix |
check if transplanted views are attached to change detector (#46974) |
router
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
Compare Source
core
Commit |
Type |
Description |
3606917732 |
fix |
improve the missing control flow directive message (#46903) |
router
Commit |
Type |
Description |
79825d3f10 |
fix |
Do not call preload method when not necessary (#47007) |
05f3f7445a |
fix |
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