Angular
https://github.com/angular/angular
16.0.0-next.7 (2023-04-05)
Breaking Changes
core
- QueryList.filter now supports type guard functions, which will result in type narrowing. Previously if you used type guard functions, it resulted in no changes to the return type. Now the type would be narrowed, which might require updates to the application code that relied on the old behavior.
- The
ReflectiveInjector
and related symbols were removed. Please update the code to avoid references to theReflectiveInjector
symbol. UseInjector.create
as a replacement to create an injector instead.
platform-browser
- The deprecated
BrowserTransferStateModule
was removed, since it's no longer needed. TheTransferState
class can be injected without providing the module. TheBrowserTransferStateModule
was empty starting from v14 and you can just remove the reference to that module from your applications.
core
http
Commit | Description |
---|---|
allow HttpClient to cache requests (#49509) |
platform-browser
platform-server
Commit | Description |
---|---|
rename provideServerSupport to provideServerRendering (#49678) |
router
Commit | Description |
---|---|
create correct URL relative to path with empty child (#49691) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, Guillaume Weghsteen, Jessica Janiuk, JoostK, Matthieu Riegler, Pawel Kozlowski, Robin Richtsfeld, Sandra Limacher and vikram menon
15.2.6 (2023-04-05)
core
Commit | Description |
---|---|
change the URL sanitization to only block javascript: URLs (#49659) |
router
Commit | Description |
---|---|
create correct URL relative to path with empty child (#49691) | |
Ensure initial navigation clears current navigation when blocking (#49572) |
Special Thanks
Andrew Scott, Guillaume Weghsteen, John Manners, Johnny Gérard, Matthieu Riegler, Robin Richtsfeld, Sandra Limacher, Sarthak Thakkar, Vinit Neogi and vikram menon
16.0.0-next.6 (2023-04-03)
Breaking Changes
- Deprecated
EventManager
methodaddGlobalEventListener
has been removed as it is not used by Ivy.
Commit | Description |
---|---|
remove deprecated EventManager method addGlobalEventListener (#49645) |
core
forms
Commit | Description |
---|---|
Improve typings form (async)Validators (#48679) |
router
Commit | Description |
---|---|
Opt-in for binding Router information to component inputs (#49633) |
|
Ensure initial navigation clears current navigation when blocking (#49572) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, John Manners, Johnny Gérard, Kristiyan Kostadinov, Matthieu Riegler, Pawel Kozlowski, Sarthak Thakkar and Vinit Neogi
16.0.0-next.5 (2023-03-29)
Breaking Changes
bazel
- Several changes to the Angular Package Format (APF)
- Removal of FESM2015
- Replacing ES2020 with ES2022
- Replacing FESM2020 with FESM2022
- Several changes to the Angular Package Format (APF)
- Removal of FESM2015
- Replacing ES2020 with ES2022
- Replacing FESM2020 with FESM2022
common
- If the 'ngTemplateOutletContext' is different from the context, it will result in a compile-time error.
Before the change, the following template was compiling:
interface MyContext {
$implicit: string;
}
@Component({
standalone: true,
imports: [NgTemplateOutlet],
selector: 'person',
template: `
<ng-container
*ngTemplateOutlet="
myTemplateRef;
context: { $implicit: 'test', xxx: 'xxx' }
"></ng-container>
`,
})
export class PersonComponent {
myTemplateRef!: TemplateRef<MyContext>;
}
However, it does not compile now because the 'xxx' property does not exist in 'MyContext', resulting in the error: 'Type '{ $implicit: string; xxx: string; }' is not assignable to type 'MyContext'.'
The solution is either:
- add the 'xxx' property to 'MyContext' with the correct type or
- add '$any(...)' inside the template to make the error disappear. However, adding '$any(...)' does not correct the error but only preserves the previous behavior of the code.
core
-
entryComponents
has been deleted from the@NgModule
and@Component
public APIs. Any usages can be removed since they weren't doing anyting.ANALYZE_FOR_ENTRY_COMPONENTS
injection token has been deleted. Any references can be removed.
- ComponentRef.setInput will only set the input on the
component if it is different from the previous value (based onObject.is
equality). If code relies on the input always being set, it should be
updated to copy objects or wrap primitives in order to ensure the input
value differs from the previous call tosetInput
.
Deprecations
core
makeStateKey
,StateKey
andTransferState
exports have been moved from@angular/platform-browser
to@angular/core
. Please update the imports.
- import {makeStateKey, StateKey, TransferState} from '@angular/platform-browser';
+ import {makeStateKey, StateKey, TransferState} from '@angular/core';
- The
@Directive
/@Component
moduleId
property is now
deprecated. It did not have any effect for multiple major versions and
will be removed in v17.
platform-server
PlatformConfig.baseUrl
andPlatformConfig.useAbsoluteUrl
platform-server config options are deprecated as these were not used.
common
Commit | Description |
---|---|
invalid ImageKit transformation (#49201) | |
strict type checking for ngtemplateoutlet (#48374) |
compiler
Commit | Description |
---|---|
do not unquote CSS values (#49460) | |
handle trailing comma in object literal (#49535) |
compiler-cli
Commit | Description |
---|---|
Add an extended diagnostic for nSkipHydration (#49512) |
core
http
Commit | Description |
---|---|
force macro task creation during HTTP request (#49546) |
migrations
Commit | Description |
---|---|
Migration to remove Router guard and resolver interfaces (#49337) |
platform-browser
Commit | Description |
---|---|
set nonce attribute in a platform compatible way (#49624) |
platform-server
Commit | Description |
---|---|
deprecate useAbsoluteUrl and baseUrl (#49546) |
router
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Asaf Malin, Jan Cabadaj, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Sid, Tano Abeleyra and tomalaforge
15.2.5 (2023-03-29)
common
Commit | Description |
---|---|
invalid ImageKit transformation (#49201) |
compiler
Commit | Description |
---|---|
do not unquote CSS values (#49460) | |
handle trailing comma in object literal (#49535) |
core
Commit | Description |
---|---|
set style property value to empty string instead of an invalid value (#49460) |
router
Commit | Description |
---|---|
Ensure Router preloading works with lazy component and static children (#49571) | |
fix #49457 outlet activating with old info (#49459) |
Special Thanks
Alan Agius, Andrew Scott, Asaf Malin, Jan Cabadaj, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Sid and Tano Abeleyra
16.0.0-next.4 (2023-03-22)
Breaking Changes
platform-server
-
renderApplication
method no longer accepts a root component as first argument. Instead, provide a bootstrapping function that returns aPromise<ApplicationRef>
.Before
const output: string = await renderApplication(RootComponent, options);
Now
const bootstrap = () => bootstrapApplication(RootComponent, appConfig); const output: string = await renderApplication(bootstrap, options);
compiler
Commit | Description |
---|---|
add support for compile-time required inputs (#49453) | |
add support for compile-time required inputs (#49468) |
core
migrations
Commit | Description |
---|---|
preserve trailing commas in code generated by standalone migration (#49533) |
platform-browser
Commit | Description |
---|---|
only add ng-app-id to style on server side (#49465) |
platform-server
Commit | Description |
---|---|
remove renderApplication overload that accepts a component (#49463) |
Special Thanks
Aditya Srinivasan, Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Jessica Janiuk, Kristiyan Kostadinov, Masaoki Kobayashi, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Peter Götz, Thomas Pischke, Virginia Dooley and avmaxim
15.2.4 (2023-03-22)
core
Commit | Description |
---|---|
Allow TestBed.configureTestingModule to work with recursive cycle of standalone components. (#49473) |
|
more accurate matching of classes during content projection (#48888) |
migrations
Commit | Description |
---|---|
preserve trailing commas in code generated by standalone migration (#49533) |
Special Thanks
Aditya Srinivasan, Alex Rickabaugh, Andrew Scott, Kristiyan Kostadinov, Masaoki Kobayashi, Matthieu Riegler, Paul Gschwendtner, Peter Götz, Thomas Pischke, Virginia Dooley and avmaxim
16.0.0-next.3 (2023-03-16)
Breaking Changes
core
-
The
APP_ID
token value is no longer randomly generated. If you are bootstrapping multiple application on the same page you will need to set to provide theAPP_ID
yourself.bootstrapApplication(ComponentA, { providers: [ { provide: APP_ID, useValue: 'app-a' }, // ... other providers ... ] });
router
ComponentFactoryResolver
has been removed from Router APIs.
Component factories are not required to create an instance of a component
dynamically. Passing a factory resolver via resolver argument is no longer needed
and code can instead useViewContainerRef.createComponent
without the
factory resolver.
Deprecations
core
-
EnvironmentInjector.runInContext
is now deprecated, with
runInInjectionContext
functioning as a direct replacement:// Previous method version (deprecated): envInjector.runInContext(fn); // New standalone function: runInInjectionContext(envInjector, fn);
platform-browser
-
BrowserModule.withServerTransition
has been deprecated.APP_ID
should be used instead to set the application ID.
NB: Unless, you render multiple Angular applications on the same page, setting an application ID is not necessary.Before:
imports: [ BrowserModule.withServerTransition({ appId: 'serverApp' }), ... ]
After:
imports: [ BrowserModule, { provide: APP_ID, useValue: 'serverApp' }, ... ],
compiler
Commit | Description |
---|---|
add support for compile-time required inputs (#49304) |
core
Commit | Description |
---|---|
introduce runInInjectionContext and deprecate prior version (#49396) |
|
generate consistent component IDs (#48253) | |
generate a static application ID (#49422) |
platform-browser
Commit | Description |
---|---|
deprecate withServerTransition call (#49422) |
|
reuse server generated component styles (#48253) |
platform-server
Commit | Description |
---|---|
add provideServerSupport function to provide server capabilities to an application (#49380) |
router
Commit | Description |
---|---|
Remove deprecated ComponentFactoryResolver from APIs (#49239) |
service-worker
Commit | Description |
---|---|
add function to provide service worker (#48247) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Esteban Gehring, Jessica Janiuk, JiaLiPassion, Julien Saguet, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner and Virginia Dooley
15.2.3 (2023-03-16)
Special Thanks
Alan Agius, Esteban Gehring, Matthieu Riegler and Virginia Dooley
16.0.0-next.2 (2023-03-08)
Breaking Changes
common
- Deprecated
XhrFactory
export from@angular/common/http
has been removed. UseXhrFactory
from@angular/common
instead.
core
zone.js
versions0.11.x
and0.12.x
are not longer supported.
platform-server
renderModuleFactory
has been removed. UserenderModule
instead.
Deprecations
platform-browser
ApplicationConfig
has moved, please importApplicationConfig
from@angular/core
instead.
common
Commit | Description |
---|---|
remove deprecated XhrFactory export from http entrypoint (#49251) |
compiler
Commit | Description |
---|---|
support multiple configuration files in extends (#49125) |
core
Commit | Description |
---|---|
add mergeApplicationConfig method (#49253) |
|
drop support for zone.js versions <=0.12.0 (#49331) |
migrations
Commit | Description |
---|---|
add protractor support if protractor imports are detected (#49274) |
platform-browser
Commit | Description |
---|---|
KeyEventsPlugin should keep the same behavior (#49330) | |
move ApplicationConfig to core (#49253) |
platform-server
Commit | Description |
---|---|
renderApplication now accepts a bootstrapping method (#49248) |
|
remove deprecated renderModuleFactory (#49247) |
router
Commit | Description |
---|---|
Expose information about the last successful Navigation (#49235) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Dylan Hunn, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Sai Kartheek Bommisetty and Vinit Neogi
16.0.0-next.1 (2023-03-01)
Breaking Changes
compiler
-
- TypeScript 4.8 is no longer supported.
core
-
Node.js v14 support has been removed
Node.js v14 is planned to be End-of-Life on 2023-04-30. Angular will stop supporting Node.js v14 in Angular v16. Angular v16 will continue to officially support Node.js versions v16 and v18.
router
- Tests which mock
ActivatedRoute
instances may need to be adjusted
because Router.createUrlTree now does the right thing in more
scenarios. This means that tests with invalid/incomplete ActivatedRoute mocks
may behave differently than before. Additionally, tests may now navigate
to a real URL where before they would navigate to the root. Ensure that
tests provide expected routes to match.
There is rarely production impact, but it has been found that relative
navigations when using anActivatedRoute
that does not appear in the
current router state were effectively ignored in the past. By creating
the correct URLs, this sometimes resulted in different navigation
behavior in the application. Most often, this happens when attempting to
create a navigation that only updates query params using an empty
command array, for examplerouter.navigate([], {relativeTo: route, queryParams: newQueryParams})
. In this case, therelativeTo
property
should be removed.
common
Commit | Description |
---|---|
make Location.normalize() return the correct path when the base path contains characters that interfere with regex syntax. (#49181) |
compiler
Commit | Description |
---|---|
drop support for TypeScript 4.8 (#49155) |
compiler-cli
Commit | Description |
---|---|
do not persist component analysis if template/styles are missing (#49184) |
core
Commit | Description |
---|---|
add support for TypeScript 5.0 (#49126) | |
introduce concept of DestroyRef (#49158) | |
update zone.js peerDependencies ranges (#49244) | |
remove Node.js v14 support (#49255) |
migrations
Commit | Description |
---|---|
avoid migrating the same class multiple times in standalone migration (#49245) | |
delete barrel exports in standalone migration (#49176) |
platform-server
Commit | Description |
---|---|
bundle @angular/domino in via esbuild (#49229) |
router
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Craig Spence, Doug Parker, Iván Navarro, Jessica Janiuk, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Michael Ziluck, Paul Gschwendtner, Pawel Kozlowski, Stephanie Tuerk, Vincent and Virginia Dooley
15.2.1 (2023-03-01)
common
Commit | Description |
---|---|
make Location.normalize() return the correct path when the base path contains characters that interfere with regex syntax. (#49181) |
compiler-cli
Commit | Description |
---|---|
do not persist component analysis if template/styles are missing (#49184) |
core
Commit | Description |
---|---|
update zone.js peerDependencies ranges (#49244) |
migrations
Commit | Description |
---|---|
avoid migrating the same class multiple times in standalone migration (#49245) | |
delete barrel exports in standalone migration (#49176) |
router
Commit | Description |
---|---|
add error message when using loadComponent with a NgModule (#49164) |
Special Thanks
Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Craig Spence, Doug Parker, Iván Navarro, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Michael Ziluck, Paul Gschwendtner, Stephanie Tuerk, Vincent and Virginia Dooley
16.0.0-next.0 (2023-02-22)
Breaking Changes
- Angular Compatibility Compiler (ngcc) has been removed and as a result Angular View Engine libraries will no longer work
common
MockPlatformLocation
is now provided by default in tests.
Existing tests may have behaviors which rely on
BrowserPlatformLocation
instead. For example, direct access to the
window.history
in either the test or the component rather than going
through the Angular APIs (Location.getState()
). The quickest fix is to
update the providers in the test suite to override the provider again
TestBed.configureTestingModule({providers: [{provide: PlatformLocation, useClass: BrowserPlatformLocation}]})
.
The ideal fix would be to update the code to instead be compatible with
MockPlatformLocation
instead.
core
RendererType2.styles
no longer accepts nested arrays.
router
- The
Scroll
event'srouterEvent
property may also be
aNavigationSkipped
event. Previously, it was only aNavigationEnd
event. - The
RouterEvent
type is no longer present in theEvent
union type representing all router event types. If you have code using something likefilter((e: Event): e is RouterEvent => e instanceof RouterEvent)
, you'll need to update it tofilter((e: Event|RouterEvent): e is RouterEvent => e instanceof RouterEvent)
.
Commit | Description |
---|---|
remove Angular Compatibility Compiler (ngcc) (#49101) |
common
Commit | Description |
---|---|
Provide MockPlatformLocation by default in BrowserTestingModule (#49137) |
core
Commit | Description |
---|---|
add Angular Signals to the public API (#49150) | |
change RendererType2.styles to accept only a flat array (#49072) |
router
Commit | Description |
---|---|
Ensure anchor scrolling happens on ignored same URL navigations (#48025) | |
remove RouterEvent from Event union type (#46061) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Joey Perrott, Mladen Jakovljević and Pawel Kozlowski
15.2.0 (2023-02-22)
Deprecations
- Class and
InjectionToken
guards and resolvers are
deprecated. Instead, write guards as plain JavaScript functions and
inject dependencies withinject
from@angular/core
.
Commit | Description |
---|---|
Deprecate class and InjectionToken and resolvers (#47924) |
common
Commit | Description |
---|---|
Add loaderParams attribute to NgOptimizedImage (#48907) |
compiler-cli
Commit | Description |
---|---|
incorrectly detecting forward refs when symbol already exists in file (#48988) |
core
language-service
migrations
platform-browser
Commit | Description |
---|---|
remove styles from DOM of destroyed components (#48298) |
platform-server
Commit | Description |
---|---|
avoid duplicate TransferState info after renderApplication call (#49094) |
router
Commit | Description |
---|---|
Add a withNavigationErrorHandler feature to provideRouter (#48551) | |
Add test helper for trigger navigations in tests (#48552) |
Special Thanks
Alan Agius, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dylan Hunn, Ikko Eltociear Ashimine, Ilyass, Jessica Janiuk, Joey Perrott, John Manners, Kalbarczyk, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Virginia Dooley, Walid Bouguima, cexbrayat and mgechev
15.2.0-rc.0 (2023-02-15)
forms
Commit | Description |
---|---|
Make radio buttons respect [attr.disabled] (#48864) |
migrations
Special Thanks
AleksanderBodurri, Alvaro Junqueira, Dylan Hunn, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, PaloMiklo, Paul Gschwendtner, Pawel Kozlowski and cexbrayat
15.2.0-next.4 (2023-02-08)
common
Commit | Description |
---|---|
Add loaderParams attribute to NgOptimizedImage (#48907) |
compiler-cli
Commit | Description |
---|---|
incorrectly detecting forward refs when symbol already exists in file (#48988) |
language-service
Commit | Description |
---|---|
generate forwardRef for same file imports (#48898) |
migrations
Special Thanks
Alex Castle, Andrew Scott, Dylan Hunn, Jessica Janiuk, Kian Yang Lee, Kristiyan Kostadinov, Matthieu Riegler, Pawel Kozlowski, Redouane Bekkouche, Simona Cotin and Walid Bouguima
15.1.4 (2023-02-08)
Special Thanks
Jessica Janiuk, Kian Yang Lee, Matthieu Riegler, Redouane Bekkouche and Simona Cotin
15.2.0-next.3 (2023-02-02)
animations
Commit | Description |
---|---|
fix non-animatable warnings for easing (#48583) |
common
Commit | Description |
---|---|
warn if using ngSrcset without a configured image loader (#48804) |
compiler
Commit | Description |
---|---|
incorrect code when non-null assertion is used after a safe access (#48801) |
core
Commit | Description |
---|---|
add ng generate schematic to convert to standalone bootstrapping APIs (#48848) |
migrations
platform-server
Commit | Description |
---|---|
insert transfer state script before other script tags (#48868) |
router
Commit | Description |
---|---|
Add test helper for trigger navigations in tests (#48552) | |
Handle routerLink directive on svg anchors. (#48857) |
Special Thanks
Alan Agius, Andrew Scott, Besim Gürbüz, Brecht Billiet, Dario Piotrowicz, Dylan Hunn, Iván Navarro, Kristiyan Kostadinov, Matthieu Riegler, Onkar Ruikar, Payam Valadkhan, Santosh Yadav, Virginia Dooley and Walid Bouguima
15.1.3 (2023-02-02)
animations
Commit | Description |
---|---|
fix non-animatable warnings for easing (#48583) |
common
Commit | Description |
---|---|
warn if using ngSrcset without a configured image loader (#48804) |
compiler
Commit | Description |
---|---|
incorrect code when non-null assertion is used after a safe access (#48801) |
migrations
Commit | Description |
---|---|
Fixed file format issue with lint (#48859) | |
migration host incorrectly reading empty files (#48849) |
platform-server
Commit | Description |
---|---|
insert transfer state script before other script tags (#48868) |
router
Commit | Description |
---|---|
Handle routerLink directive on svg anchors. (#48857) |
Special Thanks
Alan Agius, Besim Gürbüz, Brecht Billiet, Dario Piotrowicz, Dylan Hunn, Iván Navarro, Jessica Janiuk, Kristiyan Kostadinov, Matthieu Riegler, Onkar Ruikar, Payam Valadkhan, Santosh Yadav, Virginia Dooley and Walid Bouguima
15.2.0-next.2 (2023-01-25)
compiler
Commit | Description |
---|---|
handle css selectors with space after an escaped character. (#48558) |
compiler-cli
Commit | Description |
---|---|
resolve deprecation warning (#48812) |
core
Commit | Description |
---|---|
add ng generate schematic to convert declarations to standalone (#48790) | |
add ng generate schematic to remove unnecessary modules (#48832) |
router
Commit | Description |
---|---|
'createUrlTreeFromSnapshot' with empty paths and named outlets (#48734) |
Special Thanks
Alan Agius, AleksanderBodurri, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Payam Valadkhan, Virginia Dooley, Yann Thomas LE MOIGNE and dario-piotrowicz
15.1.2 (2023-01-25)
compiler
Commit | Description |
---|---|
handle css selectors with space after an escaped character. (#48558) |
compiler-cli
Commit | Description |
---|---|
resolve deprecation warning (#48812) |
router
Commit | Description |
---|---|
'createUrlTreeFromSnapshot' with empty paths and named outlets (#48734) |
Special Thanks
Alan Agius, AleksanderBodurri, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, JoostK, Matthieu Riegler, Paul Gschwendtner, Payam Valadkhan, Virginia Dooley, Yann Thomas LE MOIGNE and dario-piotrowicz
15.2.0-next.1 (2023-01-18)
Deprecations
- Class and
InjectionToken
guards and resolvers are
deprecated. Instead, write guards as plain JavaScript functions and
inject dependencies withinject
from@angular/core
.
Commit | Description |
---|---|
Deprecate class and InjectionToken and resolvers (#47924) |
common
Commit | Description |
---|---|
Update Location to get a normalized URL valid in case a represented URL starts with the substring equals APP_BASE_HREF (#48489) |
|
avoid excessive DOM mutation in NgClass (#48433) |
core
Commit | Description |
---|---|
makeEnvironmentProviders should accept EnvironmentProviders (#48720) |
language-service
Special Thanks
Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Dylan Hunn, Jens, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Vladyslav Slipchenko, ced, dario-piotrowicz, mgechev and ノウラ
15.1.1 (2023-01-18)
common
Commit | Description |
---|---|
Update Location to get a normalized URL valid in case a represented URL starts with the substring equals APP_BASE_HREF (#48489) |
|
avoid excessive DOM mutation in NgClass (#48433) |
core
Commit | Description |
---|---|
makeEnvironmentProviders should accept EnvironmentProviders (#48720) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Scott, Aristeidis Bampakos, Bob Watson, Jens, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Vladyslav Slipchenko, ced, dario-piotrowicz, mgechev and ノウラ
15.1.0 (2023-01-10)
Deprecations
router
-
CanLoad guards in the Router are deprecated. Use CanMatch
instead. -
router writable properties
The following strategies are meant to be configured by registering the
application strategy in DI via theproviders
in the rootNgModule
or
bootstrapApplication
:routeReuseStrategy
titleStrategy
urlHandlingStrategy
The following options are meant to be configured using the options
available inRouterModule.forRoot
orprovideRouter
.onSameUrlNavigation
paramsInheritanceStrategy
urlUpdateStrategy
canceledNavigationResolution
The following options are available in
RouterModule.forRoot
but not
available inprovideRouter
:malformedUriErrorHandler
- This was found to not be used anywhere
internally.errorHandler
- Developers can instead subscribe toRouter.events
and filter forNavigationError
.
common
Commit | Description |
---|---|
Add BrowserPlatformLocation to the public API (#48488) | |
Add data attribtue to NgOptimizedImage (#48497) |
compiler
Commit | Description |
---|---|
allow self-closing tags on custom elements (#48535) | |
resolve deprecation warning (#48652) | |
type-only symbols incorrectly retained when downlevelling custom decorators (#48638) |
compiler-cli
Commit | Description |
---|---|
update @babel/core dependency and lock version (#48634) |
core
Commit | Description |
---|---|
Add TestBed.runInInjectionContext to help test functions which use inject (#47955) |
|
Make the isStandalone() function available in public API (#48114) |
|
support TypeScript 4.9 (#48005) |
forms
Commit | Description |
---|---|
Form provider FormsModule.withConfig return a FormsModule (#48526) |
language-service
localize
Commit | Description |
---|---|
add triple slash type reference on @angular/localize on `ng add (#48502) |
migrations
Commit | Description |
---|---|
combine newly-added imports in import manager (#48620) |
router
Special Thanks
Alan Agius, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Lyding, Derek Cormier, Doug Parker, Dylan Hunn, George Kalpakas, Greg Magolan, Jessica Janiuk, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Renan Ferro, Tim Gates, Vadim, Virginia Dooley, ced, mgechev, piyush132000, robertIsaac and sr5434
15.1.0-rc.0 (2023-01-05)
common
Commit | Description |
---|---|
Add data attribtue to NgOptimizedImage (#48497) |
compiler
Commit | Description |
---|---|
allow self-closing tags on custom elements (#48535) | |
type-only symbols incorrectly retained when downlevelling custom decorators (#48638) |
compiler-cli
Commit | Description |
---|---|
update @babel/core dependency and lock version (#48634) |
localize
Commit | Description |
---|---|
add triple slash type reference on @angular/localize on `ng add (#48502) |
migrations
Commit | Description |
---|---|
combine newly-added imports in import manager (#48620) |
Special Thanks
Alan Agius, Alex Castle, Andrew Kushnir, Derek Cormier, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Renan Ferro, Vadim, ced, mgechev, piyush132000 and robertIsaac
15.1.0-next.3 (2022-12-14)
animations
Commit | Description |
---|---|
fix incorrect handling of camel-case css properties (#48436) |
common
compiler-cli
Commit | Description |
---|---|
evaluate const tuple types statically (#48091) |
router
Commit | Description |
---|---|
Add feature provider for enabling hash navigation (#48301) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, BrowserPerson, Jens, Jessica Janiuk, Joey Perrott, JoostK, Konstantin Kharitonov, Lukas Matta, Matthieu Riegler, Piotr Kowalski, Virginia Dooley, Yannick Baron, dario-piotrowicz, lsst25, piyush132000 and why520crazy
15.0.4 (2022-12-14)
animations
Commit | Description |
---|---|
fix incorrect handling of camel-case css properties (#48436) |
common
compiler-cli
Commit | Description |
---|---|
evaluate const tuple types statically (#48091) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, BrowserPerson, Jens, Jessica Janiuk, Joey Perrott, JoostK, Konstantin Kharitonov, Lukas Matta, Piotr Kowalski, Virginia Dooley, Yannick Baron, dario-piotrowicz, lsst25, piyush132000 and why520crazy
15.1.0-next.2 (2022-12-07)
common
Commit | Description |
---|---|
Don't generate srcsets with very large sources (#47997) | |
Update Location to support base href containing origin (#48327) |
compiler
Commit | Description |
---|---|
make sure selectors inside container queries are correctly scoped (#48353) |
compiler-cli
Commit | Description |
---|---|
Produce diagnostic rather than crash when using invalid hostDirective (#48314) |
core
Commit | Description |
---|---|
Make the isStandalone() function available in public API (#48114) |
|
support TypeScript 4.9 (#48005) | |
unable to inject ChangeDetectorRef inside host directives (#48355) |
Special Thanks
Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Lyding, Derek Cormier, Joey Perrott, Konstantin Kharitonov, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz, piyush132000 and sr5434
15.0.3 (2022-12-07)
common
Commit | Description |
---|---|
Don't generate srcsets with very large sources (#47997) | |
Update Location to support base href containing origin (#48327) |
compiler
Commit | Description |
---|---|
make sure selectors inside container queries are correctly scoped (#48353) |
compiler-cli
Commit | Description |
---|---|
Produce diagnostic rather than crash when using invalid hostDirective (#48314) |
core
Commit | Description |
---|---|
unable to inject ChangeDetectorRef inside host directives (#48355) |
Special Thanks
Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Derek Cormier, Joey Perrott, Konstantin Kharitonov, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz and piyush132000
15.1.0-next.1 (2022-11-30)
Deprecations
router
- CanLoad guards in the Router are deprecated. Use CanMatch
instead.
compiler-cli
Commit | Description |
---|---|
accept inheriting the constructor from a class in a library (#48156) |
router
Commit | Description |
---|---|
Deprecate canLoad guards in favor of canMatch (#48180) | |
Add ability to override onSameUrlNavigation default per-navigation (#48050) |
Special Thanks
Alan Agius, Andrew Scott, Aristeidis Bampakos, Bob Watson, Derek Cormier, Dylan Hunn, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Rokas Brazdžionis and piyush132000
15.0.2 (2022-11-30)
compiler-cli
Commit | Description |
---|---|
accept inheriting the constructor from a class in a library (#48156) |
Special Thanks
Alan Agius, Andrew Scott, Aristeidis Bampakos, Bob Watson, Derek Cormier, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Rokas Brazdžionis, mgechev and piyush132000
15.1.0-next.0 (2022-11-22)
Deprecations
router
-
router writable properties
The following strategies are meant to be configured by registering the
application strategy in DI via theproviders
in the rootNgModule
or
bootstrapApplication
:routeReuseStrategy
titleStrategy
urlHandlingStrategy
The following options are meant to be configured using the options
available inRouterModule.forRoot
orprovideRouter
.onSameUrlNavigation
paramsInheritanceStrategy
urlUpdateStrategy
canceledNavigationResolution
The following options are available in
RouterModule.forRoot
but not
available inprovideRouter
:malformedUriErrorHandler
- This was found to not be used anywhere
internally.errorHandler
- Developers can instead subscribe toRouter.events
and filter forNavigationError
.
common
Commit | Description |
---|---|
Fix MockPlatformLocation events and missing onPopState implementation (#48113) |
core
Commit | Description |
---|---|
Add TestBed.runInInjectionContext to help test functions which use inject (#47955) |
forms
Commit | Description |
---|---|
don't mutate validators array (#47830) | |
FormBuilder.group return right type with shorthand parameters. (#48084) |
language-service
router
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn, George Kalpakas, Greg Magolan, Ikko Ashimine, Ivan Rodriguez, Jessica Janiuk, JiaLiPassion, Joe Roxbury, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Mikhail Savchuk, Nebojsa Cvetkovic, Pawel Kozlowski, Volodymyr, Wooshaah and mgechev
15.0.1 (2022-11-22)
common
Commit | Description |
---|---|
Fix MockPlatformLocation events and missing onPopState implementation (#48113) |
forms
Commit | Description |
---|---|
don't mutate validators array (#47830) | |
FormBuilder.group return right type with shorthand parameters. (#48084) |
language-service
Commit | Description |
---|---|
correctly handle host directive inputs/outputs (#48147) | |
update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build (#48120) |
router
Special Thanks
Alan Agius, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn, George Kalpakas, Greg Magolan, Ikko Ashimine, Ivan Rodriguez, Jessica Janiuk, Joe Roxbury, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Mikhail Savchuk, Nebojsa Cvetkovic, Pawel Kozlowski, Volodymyr and Wooshaah
12.2.17 (2022-11-22)
Breaking Changes
core
- Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
core
Commit | Description |
---|---|
hardening attribute and property binding rules for elements |
Special Thanks
Andrew Kushnir, Joey Perrott and Paul Gschwendtner
14.2.12 (2022-11-21)
Breaking Changes
core
- Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
core
Commit | Description |
---|---|
hardening attribute and property binding rules for elements (#48028) |
Special Thanks
Andrew Kushnir
13.3.12 (2022-11-21)
Breaking Changes
core
- Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
core
Commit | Description |
---|---|
hardening attribute and property binding rules for elements (#48029) |
Special Thanks
Andrew Kushnir, Andrew Scott, George Looshch, Joey Perrott and Paul Gschwendtner
15.0.0 (2022-11-16)
Breaking Changes
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
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
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 likestring
).
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
and16.[10-12].x
. Current supported versions of Node.js are14.20.x
,16.13.x
and18.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
orsrcdoc
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 withFormsModule.withConfig
orReactiveFormsModule.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 theDATE_PIPE_DEFAULT_OPTIONS
token, which accepts an object
as a value and the timezone can be defined as a field (calledtimezone
)
on that object.
core
-
- The ability to pass an
NgModule
to theprovidedIn
option for
@Injectable
andInjectionToken
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 whereprovidedIn: '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 ability to pass an
-
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 theRouterLink
directive instead. TheRouterLink
contains the code from theRouterLinkWithHref
to handle elements withhref
attributes.
common
compiler
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) | |
update element schema (#47552) | |
update element schema (#47552) |
compiler-cli
core
forms
http
language-service
Commit | Description |
---|---|
Quick fix to import a component when its selector is used (#47088) | |
support to fix invalid banana in box (#47393) |
localize
platform-server
Commit | Description |
---|---|
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
15.0.0-rc.3 (2022-11-09)
Breaking Changes
core
- Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
core
Commit | Description |
---|---|
add zone.js version 0.12.x as a valid peer dependency (#48002) |
|
hardening attribute and property binding rules for elements (#47964) |
forms
Commit | Description |
---|---|
Improve a very commonly viewed error message by adding a guide. (#47969) | |
Runtime error pages must begin with leading zero (#47991) |
http
Commit | Description |
---|---|
rename withLegacyInterceptors to withInterceptorsFromDi (#47901) |
router
Commit | Description |
---|---|
fix redirectTo on named outlets - resolves #33783 (#47927) |
Special Thanks
Alan Agius, Albert Szekely, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Doug Parker, Dylan Hunn, Kristiyan Kostadinov, Markus Eckstein, Matthieu Riegler, Paul Gschwendtner, Peter Scriven and abergquist
14.2.10 (2022-11-09)
core
Commit | Description |
---|---|
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
15.0.0-rc.2 (2022-11-04)
Breaking Changes
core
- Existing iframe usages may have
src
orsrcdoc
preceding other attributes. Such usages may need to be updated to ensure compliance with the new stricter rules around iframe bindings.
core
Commit | Description |
---|---|
allow readonly arrays for standalone imports (#47851) | |
hardening rules related to the attribute order on iframe elements (#47935) |
platform-browser
Commit | Description |
---|---|
resolve memory leak when using animations with shadow DOM (#47903) |
platform-server
Commit | Description |
---|---|
call onSerialize when state is empty (#47888) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Charles Lyding, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Virginia Dooley and mgechev
15.0.0-rc.1 (2022-10-26)
common
Commit | Description |
---|---|
Don't warn about image distortion is fill mode is enabled (#47824) |
forms
Commit | Description |
---|---|
don't mutate validators array (#47830) |
platform-server
Commit | Description |
---|---|
align server renderer interface with base renderer (#47868) |
Special Thanks
Alan Agius, Alex Castle, Andrew Scott, Balaji, George Kalpakas, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, WD Snoeijer, onrails and vyom1611
14.2.8 (2022-10-26)
Special Thanks
Andrew Scott, Balaji, Paul Gschwendtner, WD Snoeijer, onrails and vyom1611
15.0.0-rc.0 (2022-10-19)
common
Commit | Description |
---|---|
don't generate srcset if noopImageLoader is used (#47804) | |
update size error to mention 'fill' mode (#47797) | |
warn if using supported CDN but not built-in loader (#47330) |
compiler-cli
Commit | Description |
---|---|
implement more host directive validations as diagnostics (#47768) |
localize
Commit | Description |
---|---|
update ng add schematic to support Angular CLI version 15 (#47763) |
router
Commit | Description |
---|---|
Delay router scroll event until navigated components have rendered (#47563) |
Special Thanks
Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Barnes, Charles Lyding, Kara Erickson, Kristiyan Kostadinov, Paul Gschwendtner, Virginia Dooley, WD Snoeijer, abergquist and urugator
14.2.7 (2022-10-19)
Special Thanks
Bob Watson, Charles Barnes, Joey Perrott, Virginia Dooley, WD Snoeijer, abergquist and urugator
15.0.0-next.6 (2022-10-12)
Breaking Changes
compiler-cli
-
Invalid constructors for DI may now report compilation errors
When a class inherits its constructor from a base class, the compiler may now
report an error when that constructor cannot be used for DI purposes. This may
either be because the base class is missing an Angular decorator such as
@Injectable()
or@Directive()
, or because the constructor contains parameters
which do not have an associated token (such as primitive types likestring
).
These situations used to behave unexpectedly at runtime, where the class may be
constructed without any of its constructor parameters, so this is now reported
as an error during compilation.Any new errors that may be reported because of this change can be resolved either
by decorating the base class from which the constructor is inherited, or by adding
an explicit constructor to the class for which the error is reported.
core
- Angular no longer supports Node.js versions
14.[15-19].x
and16.[10-12].x
. Current supported versions of Node.js are14.20.x
,16.13.x
and18.10.x
. - TypeScript versions older than 4.8 are no longer supported.
forms
- setDisabledState will always be called when a
ControlValueAccessor
is attached. You can opt-out withFormsModule.withConfig
orReactiveFormsModule.withConfig
.
router
relativeLinkResolution
is no longer configurable in
the Router. This option was used as a means to opt out of a bug fix.
Deprecations
common
- The
DATE_PIPE_DEFAULT_TIMEZONE
token is now deprecated in favor
of theDATE_PIPE_DEFAULT_OPTIONS
token, which accepts an object
as a value and the timezone can be defined as a field (calledtimezone
)
on that object.
router
- The
RouterLinkWithHref
directive is deprecated, use theRouterLink
directive instead. TheRouterLink
contains the code from theRouterLinkWithHref
to handle elements withhref
attributes.
common
compiler
Commit | Description |
---|---|
update element schema (#47552) | |
update element schema (#47552) |
compiler-cli
core
forms
Commit | Description |
---|---|
export forms utility functions: isFormArray, isFormGroup… (#47718) | |
call setDisabledState on ControlValueAcessor when control is enabled (#47576) |
http
language-service
Commit | Description |
---|---|
Quick fix to import a component when its selector is used (#47088) |
router
Special Thanks
Alan Agius, AleksanderBodurri, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Charles Lyding, Dylan Hunn, Ferdinand Malcher, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Joshua Morony, Kristiyan Kostadinov, Martin Probst, Mathew Berg, Matthias Weiß, Paul Gschwendtner, Peter Dickten, Renan Ferro, Sri Ram, WD Snoeijer, arturovt, jaybell, markostanimirovic and Álvaro Martínez
14.2.6 (2022-10-12)
compiler-cli
Commit | Description |
---|---|
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
15.0.0-next.5 (2022-10-05)
Breaking Changes
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
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
- Previously, the
RouterOutlet
would immediately
instantiate the component being activated during navigation. Now the
component is not instantiated until the change detection runs. This
could affect tests which do not trigger change detection after a router
navigation. In rarer cases, this can affect production code that relies
on the exact timing of component availability.
Deprecations
core
-
- The ability to pass an
NgModule
to theprovidedIn
option for
@Injectable
andInjectionToken
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 whereprovidedIn: '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 ability to pass an
compiler
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) |
compiler-cli
Commit | Description |
---|---|
support hasInvalidatedResolutions. (#47585) |
core
Commit | Description |
---|---|
deprecate providedIn: NgModule and providedIn: 'any' (#47616) |
localize
Commit | Description |
---|---|
add polyfill in polyfills array instead of polyfills.ts (#47569) |
router
Commit | Description |
---|---|
auto-unwrap default exports when lazy loading (#47586) | |
make RouterOutlet name an Input so it can be set dynamically (#46569) |
Special Thanks
Alan Agius, Alex Rickabaugh, Alexander Wiebe, Andrew Kushnir, Andrew Scott, Ciprian Sauliuc, Dmytro Mezhenskyi, Dylan Hunn, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Kristiyan Kostadinov, Martin Probst, Ole M, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz and mgechev
14.2.5 (2022-10-05)
Special Thanks
Alexander Wiebe, Ciprian Sauliuc, Dmytro Mezhenskyi, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Ole M, Paul Gschwendtner, Pawel Kozlowski and mgechev
15.0.0-next.4 (2022-09-28)
Breaking Changes
router
- The title property is now required on ActivatedRouteSnapshot
Deprecations
core
- The bit field signature of
Injector.get()
has been deprecated, in favor of the new options object. - The bit field signature of
TestBed.inject()
has been deprecated, in favor of the new options object.
core
language-service
Commit | Description |
---|---|
support to fix invalid banana in box (#47393) |
router
Commit | Description |
---|---|
Ensure ActivatedRouteSnapshot#title has correct value (#47481) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Ashley Hunter, Doug Parker, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Rokas Brazdžionis, Simona Cotin and ivanwonder
14.2.4 (2022-09-28)
compiler-cli
Commit | Description |
---|---|
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
15.0.0-next.3 (2022-09-21)
animations
Commit | Description |
---|---|
make sure that the useAnimation function delay is applied (#47468) |
compiler-cli
Commit | Description |
---|---|
cache source file for reporting type-checking diagnostics (#47471) |
Special Thanks
AleksanderBodurri, Andrew Kushnir, Andrew Scott, Bob Watson, George Kalpakas, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Mauro Mattos, Pawel Kozlowski, Sabareesh Kappagantu, angular-robot[bot], dario-piotrowicz, fabioemoutinho and famzila
15.0.0-next.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) |
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, Dylan Hunn, George Kalpakas, Ikko Ashimine, Joey Perrott, Kristiyan Kostadinov, Marc Wrobel, Mariia Subkov, Pawel Kozlowski, Sebastian, abergquist, dario-piotrowicz, onrails and vyom1611
14.2.2 (2022-09-14)
animations
Commit | Description |
---|---|
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
15.0.0-next.1 (2022-09-07)
Breaking Changes
compiler-cli
- Angular compiler option
enableIvy
has been removed as Ivy is the only rendering engine.
localize
-
canParse
method has been removed from all translation parsers in@angular/localize/tools
.analyze
should be used instead.- the
hint
parameter in theparse
methods is now mandatory.
common
Commit | Description |
---|---|
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) |
compiler-cli
Commit | Description |
---|---|
remove enableIvy options (#47346) |
localize
Commit | Description |
---|---|
remove deprecated canParse method from TranslationParsers (#47275) |
service-worker
Commit | Description |
---|---|
include headers in requests for assets (#47260) | |
only consider GET requests as navigation requests (#47263) |
Special Thanks
Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Asaf M, Bingo's Code, Bob Watson, Daniel Ostrovsky, George Kalpakas, Giovanni Alberto Rivas, Jeremy Elbourn, JiaLiPassion, Jobayer Hossain, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Maina Wycliffe, Sabareesh Kappagantu, Simona Cotin, Sonu Sindhu, Yann Provoost, abergquist, angular-robot[bot], jaybell and vyom1611
14.2.1 (2022-09-07)
common
Commit | Description |
---|---|
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
15.0.0-next.0 (2022-08-25)
common
Commit | Description |
---|---|
fix formatting on oversized image error (#47188) | |
support density descriptors with 2+ decimals (#47197) |
router
Commit | Description |
---|---|
Add UrlTree constructor to public API (#47186) |
Special Thanks
Alan Agius, Alex Rickabaugh, Andrew Scott, Joey Perrott, Kara Erickson, Kristiyan Kostadinov and Pawel Kozlowski
14.2.0 (2022-08-25)
animations
Commit | Description |
---|---|
fix 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
13.3.11 (2022-05-31)
Special Thanks
Andrew Scott, Billy Lando, George Kalpakas, Ian Gregory, Matt Shaffer, Rune Andersen Hartvig, dario-piotrowicz and mgechev
14.0.0-rc.2 (2022-05-25)
Deprecations
forms
- The
initialValueIsDefault
option has been deprecated and replaced with the otherwise-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
13.3.10 (2022-05-25)
Special Thanks
A. J. Javier, Aristeidis Bampakos, J Rob Gant, Jerome Kruse, Joey Perrott, Nathan Nontell, Paul Gschwendtner, Roopesh Chinnakampalli, Thomas Mair, Tom Raithel, dario-piotrowicz and mgechev
14.0.0-rc.1 (2022-05-18)
compiler-cli
Commit | Description |
---|---|
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
13.3.9 (2022-05-18)
Special Thanks
4javier, Bob Watson, Evan Lee, George Kalpakas, Joey Perrott, Pavan Kumar Jadda, celinetunc 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 ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ
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 ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ
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
13.3.6 (2022-05-04)
Special Thanks
Andrew Kushnir, Andrew Scott, George Kalpakas, Paul Gschwendtner, Pawel Kozlowski, Ryan Day and dario-piotrowicz
14.0.0-next.15 (2022-04-27)
Breaking Changes
common
- Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
Location does not depend on PlatformLocation anymore.
compiler
-
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.The recommended solutions in this case are to either:
- change the component's view encapsulation to the
None
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
13.2.3 (2022-02-16)
animations
Commit | Type | Description |
---|---|---|
0050b01b62 | perf | made errors in the animations package tree shakeable (#45079) |
compiler
Commit | Type | Description |
---|---|---|
09f0254bdd | perf | chain element start/end instructions (#44994) |
core
Commit | Type | Description |
---|---|---|
92cf9fbebe | fix | ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966) |
Special Thanks
AlirezaEbrahimkhani, Amer Yousuf, Andrew Kushnir, Aristeidis Bampakos, Dario Piotrowicz, Esteban Gehring, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Mina Hosseini Moghadam, Patrick Cameron, Srdjan Milic, Yousaf Nawaz, dario-piotrowicz, markostanimirovic, mgechev and zuckjet
14.0.0-next.2 (2022-02-07)
Breaking Changes
core
- Forms [email] input coercion
Forms [email] input value will be considered as true if it is defined with any value rather
than false and 'false'.
forms
- objects with a length key set to zero will no longer validate as empty.
This is technically a breaking change, since objects with a key length
and value 0
will no longer validate as empty. This is a very minor change, and any reliance on this behavior is probably a bug anyway.
platform-browser
-
This change may cause a breaking change in unit tests that are implicitly depending on a specific
number and sequence of change detections in order for their assertions to pass. -
This may break invalid calls to
TransferState
methods.
This tightens parameter types of TransferState
usage, and is a minor breaking change which may reveal existing problematic calls.
router
-
- The type of
initialUrl
is set 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
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
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
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
12.2.16 (2022-01-27)
ngcc
Commit | Type | Description |
---|---|---|
460befd693 | fix | support element accesses for export declarations (#44824) |
Special Thanks
Andrew Kushnir and JoostK
14.0.0-next.0 (2022-01-26)
language-service
Commit | Description |
---|---|
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
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
12.2.15 (2021-12-10)
ngcc
Commit | Type | Description |
---|---|---|
b6554d75cd | fix | correctly resolve UMD dependencies (#44382) |
Special Thanks
Alex Rickabaugh and George Kalpakas
13.2.0-next.0 (2021-12-09)
Special Thanks
Alex Rickabaugh
13.1.0 (2021-12-09)
Deprecations
- The
downgradeModule
function calls with NgModule factories are deprecated. Please use NgModule class 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
12.2.14 (2021-12-01)
compiler
Commit | Type | Description |
---|---|---|
e3db0385b6 | fix | ensure that partially compiled queries can handle forward references (#44124) |
ngcc
Commit | Type | Description |
---|---|---|
a8be244113 | fix | correctly report error when collecting dependencies of UMD module (#44245) |
fc072935ee | fix | support the UMD wrapper function format emitted by Webpack (#44245) |
Special Thanks
George Kalpakas, Pete Bacon Darwin and iRealNirmal
13.1.0-next.2 (2021-11-17)
Special Thanks
Andrew Kushnir, Armen Vardanyan, Dylan Hunn, Joey Perrott, Martin von Gagern, Paul Gschwendtner, Pete Bacon Darwin, Ramesh Thiruchelvam, dario-piotrowicz and fusho-takahashi
13.0.2 (2021-11-17)
Special Thanks
Andrew Kushnir, Armen Vardanyan, Dylan Hunn, Joey Perrott, Martin von Gagern, Paul Gschwendtner, Pete Bacon Darwin, Ramesh Thiruchelvam, dario-piotrowicz and fusho-takahashi
13.1.0-next.1 (2021-11-10)
compiler
Commit | Description |
---|---|
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
12.2.13 (2021-11-03)
compiler-cli
Commit | Description |
---|---|
avoid broken references in .d.ts files due to @internal markers (#43965) |
core
Commit | Description |
---|---|
support InjectFlags argument in NodeInjector.get() (#41592) |
Special Thanks
Alan Agius, George Kalpakas, Jochen Kraushaar, Joe Martin (Crowdstaffing), JoostK and vthinkxie
13.0.0-rc.3 (2021-11-01)
core
Commit | Description |
---|---|
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
12.2.12 (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) |
Special Thanks
Alan Agius, Andrew Kushnir, George Kalpakas, Jessica Janiuk, Joey Perrott, JoostK, Mladen Jakovljević, Virginia Dooley, amayer42, dirk diebel and ericcheng2005
13.0.0-rc.1 (2021-10-20)
compiler
Commit | Description |
---|---|
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
12.2.11 (2021-10-20)
compiler
Commit | Description |
---|---|
support i18n interpolated only attribute bindings (#43815) |
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) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, David Shevitz, George Kalpakas, Joe Martin (Crowdstaffing), Natalia Venditto, Pete Bacon Darwin, Younes Jaaidi and dario-piotrowicz
13.0.0-rc.0 (2021-10-13)
Deprecations
- The
renderModuleFactory
symbol in@angular/platform-server
is no longer necessary as of Angular v13.
The renderModuleFactory
calls can be replaced with renderModule
.
Commit | Description |
---|---|
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
12.2.10 (2021-10-13)
Special Thanks
Alan Agius, Daniel Díaz, David Shevitz, Doug Parker, George Kalpakas, Joe Martin (Crowdstaffing), Tanguy Nodet, Thomas Turrell-Croft, dario-piotrowicz, hchiam, markostanimirovic and mgechev
13.0.0-next.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
12.2.9 (2021-10-06)
core
Commit | Description |
---|---|
handle invalid constructor parameters in partial factory declarations (#43619) |
router
Commit | Description |
---|---|
unset attachRef when router-outlet is destroyed to avoid mounting a destroyed component (#43697) |
service-worker
Commit | Description |
---|---|
make ngsw.json generation deterministic and correct (#43679) |
Special Thanks
Alan Agius, Daniel Díaz, George Kalpakas, JoostK, Kristiyan Kostadinov, Pete Bacon Darwin, Wey-Han Liaw, dario-piotrowicz, iRealNirmal, little-pinecone, mgechev, ultrasonicsoft and xiaohanxu-nick
13.0.0-next.11 (2021-10-04)
core
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
12.2.8 (2021-09-30)
compiler-cli
Commit | Description |
---|---|
correctly interpret token arrays in @Injectable deps (#43226) |
language-service
Commit | Description |
---|---|
provide dom event completions (#43299) |
ngcc
Commit | Description |
---|---|
do not fail for packages which correspond with Object members (#43589) |
service-worker
Commit | Description |
---|---|
do not unassign clients from a broken version (#43518) |
Special Thanks
Adrien Crivelli, Alex Rickabaugh, Andrew Scott, Bobby Galli, Chris, Daniel Díaz, Dario Piotrowicz, George Kalpakas, Joe Martin (Crowdstaffing), JoostK, Pete Bacon Darwin, Rafael Santana, Raj Sekhar, Ricardo Chavarria, Teri Glover, Virginia Dooley, dario-piotrowicz, enisfr and wszgrcy
13.0.0-next.8 (2021-09-27)
core
Commit | Description |
---|---|
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
12.2.7 (2021-09-22)
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) |
platform-browser
Commit | Description |
---|---|
improve error message for missing animation trigger (#41356) |
Special Thanks
Andrew Scott, Daniel Díaz, George Kalpakas, JoostK, Kristiyan Kostadinov, Mwiku, Pete Bacon Darwin, Teri Glover, Virginia Dooley, Xiaohanxu1996, dario-piotrowicz and kirjs
13.0.0-next.6 (2021-09-15)
animations
Commit | Description |
---|---|
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
12.2.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
Commit | Description |
---|---|
Allow renavigating to failed URLs (#43424) |
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, David Shevitz, George Kalpakas, Joe Martin (Crowdstaffing), Michele Stieven, Naveed Ahmed, dario-piotrowicz, mezhik91 and mgechev
13.0.0-next.5 (2021-09-08)
Breaking Changes
common
- The behavior of the
SpyLocation
used by 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
12.2.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) |
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:
Andrew Scott, Aristeidis Bampakos, Charles Lyding, Edoardo Dusi, George Kalpakas, Joe Martin (Crowdstaffing), Joey Perrott, Kirk Larkin, Kristiyan Kostadinov, Pete Bacon Darwin, TIffany Davis, Theoklitos Bampouris, ali, dario-piotrowicz and pichuser
13.0.0-next.1 (2021-08-11)
forms
Commit | Description |
---|---|
e49fc96ed3 | feat(forms): Make Form Statuses use stricter types. (#42952) |
router
Commit | Description |
---|---|
bbad42310b | fix(router): ensure check for match options is compatible with property renaming (#43086) |
784671597e | fix(router): Allow question marks in query param values (#31187) |
Breaking Changes
forms
A new type called FormControlStatus
has been introduced, which is a union of all possible status strings for form controls. AbstractControl.status
has been narrowed from string
to FormControlStatus
, and statusChanges
has been narrowed from Observable<any>
to Observable<FormControlStatus>
. Most applications should consume the new types seamlessly. Any breakage caused by this change is likely due to one of the following two problems: (1) the app is comparing AbstractControl.status
against a string which is not a valid status; or, (2) the app is using statusChanges
events as if they were something other than strings.
router
The default url serializer would previously drop everything after and including a question mark in query parameters. That is, for a navigation to /path?q=hello?&other=123
, the query params would be parsed to just {q: 'hello'}
. This is incorrect because the URI spec allows for question mark characters in query data. This change will now correctly parse the params for the above example to be {v: 'hello?', other: '123'}
.
Special Thanks:
Amadou Sall, Andrew Kushnir, Andrew Scott, Daniel Trevino, Dylan Hunn, Erik Slack, Fabien BERNARD, George Kalpakas, Jeroen van Warmerdam, Joey Perrott, Jon Rimmer, Tim Gates and Vugar_Abdullayev
12.2.1 (2021-08-11)
router
Commit | Description |
---|---|
dd3abdb9d9 | fix(router): ensure check for match options is compatible with property renaming (#43086) |
Special Thanks:
Amadou Sall, Andrew Kushnir, Andrew Scott, Daniel Trevino, Erik Slack, Fabien BERNARD, George Kalpakas, Jeroen van Warmerdam, Joey Perrott, Tim Gates and Vugar_Abdullayev
13.0.0-next.0 (2021-08-04)
compiler
Commit | Description |
---|---|
f08516db09 | fix(compiler): include leading whitespace in source-spans of i18n messages (#42062) |
compiler-cli
Commit | Description |
---|---|
ed9cfb674f | fix(compiler-cli): use correct module resolution context for absolute imports in .d.ts files (#42879) |
5fb23eccea | perf(compiler-cli): skip analysis in incremental builds for files without Angular behavior (#42562) |
core
Commit | Description |
---|---|
8628826535 | fix(core): incorrect error reported when trying to re-create view which had an error during creation (#43005) |
eefe1682e8 | fix(core): correctly handle null or undefined in ErrorHandler#handleError() (#42881) |
forms
Commit | Description |
---|---|
1d9d02696e | feat(forms): add hasValidators, addValidators, and removeValidators methods (for both sync and async) (#42838) |
a502279592 | feat(forms): allow minLength/maxLength validator to be bound to null (#42565) |
language-service
Commit | Description |
---|---|
f0c5ba08f6 | fix(language-service): global autocomplete doesn't work when the user tries to modify the symbol (#42923) |
7c35ca0e00 | feat(language-service): support autocomplete string literal union types in templates (#42729) |
router
Commit | Description |
---|---|
0d81b007e4 | fix(router): add missing outlet events to RouterOutletContract (#42431) |
dbae00195e | feat(router): ability to provide custom route reuse strategy via DI for RouterTestingModule (#42434) |
Special Thanks:
Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Daniel Trevino, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Joe Martin, Joey Perrott, JoostK, Kristiyan Kostadinov, Nichola Alkhouri, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Steven Masala, Teri Glover, Vladyslav, Yuvaraj, atscott, codebriefcase, dario-piotrowicz, iRealNirmal and ivanwonder
12.2.0 (2021-08-04)
compiler
Commit | Description |
---|---|
11ef03b36f | fix(compiler): include leading whitespace in source-spans of i18n messages (#42062) |
core
Commit | Description |
---|---|
bd7f0d8b70 | fix(core): incorrect error reported when trying to re-create view which had an error during creation (#43005) |
language-service
Commit | Description |
---|---|
aace1e71d8 | fix(language-service): global autocomplete doesn't work when the user tries to modify the symbol (#42923) |
Special Thanks:
Alex Rickabaugh, Joe Martin, Joey Perrott, Kristiyan Kostadinov, Nichola Alkhouri, Paul Gschwendtner, Pete Bacon Darwin, atscott, dario-piotrowicz and ivanwonder
12.1.5 (2021-08-04)
compiler
Commit | Description |
---|---|
82ca69d6da | fix(compiler): include leading whitespace in source-spans of i18n messages (#42062) |
Special Thanks:
Alex Rickabaugh, George Kalpakas, Joe Martin, Joey Perrott, Nichola Alkhouri, Paul Gschwendtner, Pete Bacon Darwin, atscott and dario-piotrowicz
12.2.0-rc.0 (2021-07-28)
compiler-cli
Commit | Description |
---|---|
ed9cfb674f | fix(compiler-cli): use correct module resolution context for absolute imports in .d.ts files (#42879) |
5fb23eccea | perf(compiler-cli): skip analysis in incremental builds for files without Angular behavior (#42562) |
core
Commit | Description |
---|---|
eefe1682e8 | fix(core): correctly handle null or undefined in ErrorHandler#handleError() (#42881) |
forms
Commit | Description |
---|---|
1d9d02696e | feat(forms): add hasValidators, addValidators, and removeValidators methods (for both sync and async) (#42838) |
a502279592 | feat(forms): allow minLength/maxLength validator to be bound to null (#42565) |
language-service
Commit | Description |
---|---|
7c35ca0e00 | feat(language-service): support autocomplete string literal union types in templates (#42729) |
router
Commit | Description |
---|---|
0d81b007e4 | fix(router): add missing outlet events to RouterOutletContract (#42431) |
dbae00195e | feat(router): ability to provide custom route reuse strategy via DI for RouterTestingModule (#42434) |
Special Thanks:
Andrew Scott, Daniel Trevino, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Paul Gschwendtner, Pete Bacon Darwin, Steven Masala, Teri Glover, Vladyslav, Yuvaraj, codebriefcase, iRealNirmal and ivanwonder
12.1.4 (2021-07-28)
compiler-cli
Commit | Description |
---|---|
77ae4459d3 | fix(compiler-cli): use correct module resolution context for absolute imports in .d.ts files (#42879) |
f589b01672 | perf(compiler-cli): skip analysis in incremental builds for files without Angular behavior (#42562) |
core
Commit | Description |
---|---|
a779a1029b | fix(core): correctly handle null or undefined in ErrorHandler#handleError() (#42881) |
Special Thanks:
Andrew Scott, Daniel Trevino, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Paul Gschwendtner, Pete Bacon Darwin, Teri Glover, Vladyslav, Yuvaraj and codebriefcase
12.2.0-next.3 (2021-07-21)
animations
Commit | Description |
---|---|
f12c53342c | fix(animations): normalize final styles in buildStyles (#42763) |
compiler-cli
Commit | Description |
---|---|
70c3461be3 | fix(compiler-cli): use correct module import for types behind a forwardRef (#42887) |
07d7e6034f | perf(compiler-cli): optimize cycle detection using a persistent cache (#41271) |
core
Commit | Description |
---|---|
307dac67bc | fix(core): use correct injector when resolving DI tokens from within a directive provider factory (#42886) |
Special Thanks:
Alan Agius, Alex Rickabaugh, David Shevitz, George Kalpakas, Joey Perrott, JoostK, Krzysztof Kotowicz, Minko Gechev, Paul Gschwendtner, Renovate Bot and dario-piotrowicz
12.1.3 (2021-07-21)
animations
Commit | Description |
---|---|
3cddc3d6bc | fix(animations): normalize final styles in buildStyles (#42763) |
compiler-cli
Commit | Description |
---|---|
d207ea06d1 | fix(compiler-cli): use correct module import for types behind a forwardRef (#42887) |
e6d520f3d9 | perf(compiler-cli): optimize cycle detection using a persistent cache (#41271) |
core
Commit | Description |
---|---|
a6db152c78 | fix(core): use correct injector when resolving DI tokens from within a directive provider factory (#42886) |
Special Thanks:
Alan Agius, David Shevitz, George Kalpakas, Joey Perrott, JoostK, Krzysztof Kotowicz, Minko Gechev, Paul Gschwendtner and dario-piotrowicz
12.2.0-next.2 (2021-07-14)
bazel
Commit | Description |
---|---|
7e04116d15 | fix(bazel): enable dts bundling for Ivy packages (#42728) |
common
Commit | Description |
---|---|
e42aa6c13b | fix(common): re-sort output of KeyValuePipe when compareFn changes (#42821) |
compiler
Commit | Description |
---|---|
b33665ab2c | fix(compiler): add mappings for all HTML entities (#42818) |
404c8d0d88 | fix(compiler): incorrect context object being referenced from listener instructions inside embedded views (#42755) |
compiler-cli
Commit | Description |
---|---|
81dce5c664 | fix(compiler-cli): check split two way binding (#42601) |
4c482bf3f1 | fix(compiler-cli): properly emit literal types when recreating type parameters in a different file (#42761) |
30c82cd177 | fix(compiler-cli): inline type checking instructions no longer prevent incremental reuse (#42759) |
4c78984ad2 | fix(compiler-cli): support reflecting namespace declarations (#42728) |
74350a5cf1 | fix(compiler-cli): return directives for an element on a microsyntax template (#42640) |
core
Commit | Description |
---|---|
cd2d82a91a | fix(core): associate the NgModule scope for an overridden component (#42817) |
51156f3f07 | fix(core): allow proper type inference when ngFor is used with a trackBy function (#42692) |
0f23f7343e | fix(core): error in TestBed if module is reset mid-compilation in ViewEngine (#42669) |
language-service
Commit | Description |
---|---|
ffeea63f43 | fix(language-service): Do not override TS LS methods not supported by VE NgLS (#42727) |
service-worker
Commit | Description |
---|---|
cb2ca9a66e | fix(service-worker): correctly handle unrecoverable state when a client no longer exists (#42736) |
f592a12005 | fix(service-worker): avoid storing redundant metadata for hashed assets (#42606) |
Special Thanks:
Alan Agius, Andrew Kushnir, Andrew Scott, Arthur Ming, Bastian, Borislav Ivanov, Daniel Trevino, David Gilson, David Shevitz, Gabriele Franchitto, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Mark Goho, Meir Blumenfeld, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Ryan Andersen, Theoklitos Bampouris, behrooz bozorg chami, dario-piotrowicz, ivanwonder and mgechev
12.1.2 (2021-07-14)
bazel
Commit | Description |
---|---|
4a8ab4f149 | fix(bazel): enable dts bundling for Ivy packages (#42728) |
common
Commit | Description |
---|---|
d654c7933a | fix(common): re-sort output of KeyValuePipe when compareFn changes (#42821) |
compiler
Commit | Description |
---|---|
2566cbb48c | fix(compiler): add mappings for all HTML entities (#42818) |
65330f03a9 | fix(compiler): incorrect context object being referenced from listener instructions inside embedded views (#42755) |
compiler-cli
Commit | Description |
---|---|
17d3de25da | fix(compiler-cli): properly emit literal types when recreating type parameters in a different file (#42761) |
0a17e98ae2 | fix(compiler-cli): inline type checking instructions no longer prevent incremental reuse (#42759) |
45116097c1 | fix(compiler-cli): support reflecting namespace declarations (#42728) |
df5cc1fbbf | fix(compiler-cli): return directives for an element on a microsyntax template (#42640) |
core
Commit | Description |
---|---|
63013546e1 | fix(core): associate the NgModule scope for an overridden component (#42817) |
9ebd41e39c | fix(core): allow proper type inference when ngFor is used with a trackBy function (#42692) |
41c6877c01 | fix(core): error in TestBed if module is reset mid-compilation in ViewEngine (#42669) |
language-service
Commit | Description |
---|---|
97c18f4527 | fix(language-service): Do not override TS LS methods not supported by VE NgLS (#42727) |
service-worker
Commit | Description |
---|---|
d87917542a | fix(service-worker): correctly handle unrecoverable state when a client no longer exists (#42736) |
f2523a8fef | fix(service-worker): avoid storing redundant metadata for hashed assets (#42606) |
Special Thanks:
Alan Agius, Andrew Kushnir, Andrew Scott, Arthur Ming, Bastian, Borislav Ivanov, David Gilson, David Shevitz, Gabriele Franchitto, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Mark Goho, Meir Blumenfeld, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Ryan Andersen, Theoklitos Bampouris, behrooz bozorg chami, dario-piotrowicz, ivanwonder and mgechev
12.2.0-next.1 (2021-06-30)
compiler
Commit | Description |
---|---|
9f5cc7c808 | feat(compiler): support number separators in templates (#42672) |
compiler-cli
Commit | Description |
---|---|
37a740c659 | fix(compiler-cli): add support for partially evaluating types (#41661) |
platform-browser
Commit | Description |
---|---|
234b5edcc7 | fix(platform-browser): in Meta.addTag() do not add duplicate meta tags (#42703) |
Special Thanks:
Alan Agius, Alex Rickabaugh, Dario Piotrowicz, George Kalpakas, George Looshch, Joey Perrott, Kristiyan Kostadinov, Lars Gyrup Brink Nielsen, Paul Gschwendtner, Pete Bacon Darwin, Zach Arend, codebriefcase, dario-piotrowicz, marvinbeckert, mgechev and pavlenko
12.1.1 (2021-06-30)
compiler-cli
Commit | Description |
---|---|
f6b828e292 | fix(compiler-cli): add support for partially evaluating types (#41661) |
platform-browser
Commit | Description |
---|---|
d19ddd1a87 | fix(platform-browser): in Meta.addTag() do not add duplicate meta tags (#42703) |
Special Thanks:
Alan Agius, Dario Piotrowicz, George Kalpakas, George Looshch, Lars Gyrup Brink Nielsen, Paul Gschwendtner, Pete Bacon Darwin, Zach Arend, codebriefcase, dario-piotrowicz, marvinbeckert, mgechev and pavlenko
12.2.0-next.0 (2021-06-24)
This release contains the same set of changes as 12.1.0.
12.1.0 (2021-06-24)
compiler
Commit | Description |
---|---|
9de65dbdce | fix(compiler): should not break a text token on a non-valid start tag (#42605) |
c873440ad2 | fix(compiler): do not allow unterminated interpolation to leak into later tokens (#42605) |
cc672f05bf | feat(compiler): add support for shorthand property declarations in templates (#42421) |
f52df99fe3 | fix(compiler): generate view restoration for keyed write inside template listener (#42603) |
compiler-cli
Commit | Description |
---|---|
874de59d35 | fix(compiler-cli): change default ngcc hash algorithm to be FIPS compliant (#42582) |
729eea5716 | fix(compiler-cli): transform type references in generic type parameter default (#42492) |
core
Commit | Description |
---|---|
873229f24b | feat(core): add opt-in test module teardown configuration (#42566) |
router
Commit | Description |
---|---|
07c1ddc487 | fix(router): error if module is destroyed before location is initialized (#42560) |
service-worker
Commit | Description |
---|---|
cc30dc0713 | fix(service-worker): ensure obsolete caches are always cleaned up (#42622) |
01128f5b5d | fix(service-worker): ensure caches are cleaned up when failing to load state (#42622) |
73b0275dc2 | fix(service-worker): improve ServiceWorker cache names (#42622) |
7507ed2e54 | fix(service-worker): use correct names when listing CacheDatabase tables (#42622) |
53fe557da7 | feat(service-worker): include ServiceWorker version in debug info (#42622) |
d546501ab5 | feat(service-worker): add openWindow , focusLastFocusedOrOpen and navigateLastFocusedOrOpen (#42520) |
9498da1038 | fix(service-worker): correctly determine client ID on navigation requests (#42607) |
Special Thanks:
Alex Rickabaugh, Dale Harris, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Németh Tamás, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Umair Hafeez, codingnuclei and mgechev
12.1.0-next.6 (2021-06-16)
compiler
Commit | Description |
---|---|
8c1e0e6ad0 | fix(compiler): always match close tag to the nearest open element (#42554) |
compiler-cli
Commit | Description |
---|---|
22bda2226b | fix(compiler-cli): prevent prior compilations from being retained in watch builds (#42537) |
core
Commit | Description |
---|---|
3961b3c360 | fix(core): ensure that autoRegisterModuleById registration in ɵɵdefineNgModule is not DCE-ed by closure (#42529) |
forms
Commit | Description |
---|---|
7180ec9e7c | fix(forms): changes to status not always being emitted to statusChanges observable for async validators. (#42553) |
language-service
Commit | Description |
---|---|
4001e9d808 | fix(language-service): 'go to defininition' for objects defined in template (#42559) |
228beeabd1 | fix(language-service): Use last child end span for parent without close tag (#42554) |
Special Thanks:
Ahmed Ayed, Alan Agius, Alex Rickabaugh, Andrew Scott, Ankit Choudhary, Aristeidis Bampakos, Daniel Trevino, Dario Piotrowicz, Dylan Hunn, George Kalpakas, Igor Minar, JiaLiPassion, JoostK, Kapunahele Wong, Kristiyan Kostadinov, Marius Bethge, Mladen Jakovljević, Paul Gschwendtner, Pete Bacon Darwin, Pham Huu Hien, Renovate Bot, dario-piotrowicz and gobika21
12.0.5 (2021-06-16)
compiler
Commit | Description |
---|---|
89fc131ef8 | fix(compiler): always match close tag to the nearest open element (#42554) |
compiler-cli
Commit | Description |
---|---|
60dbf017fb | fix(compiler-cli): prevent prior compilations from being retained in watch builds (#42537) |
core
Commit | Description |
---|---|
785da0f1bf | fix(core): ensure that autoRegisterModuleById registration in ɵɵdefineNgModule is not DCE-ed by closure (#42529) |
forms
Commit | Description |
---|---|
6f1b907b79 | fix(forms): changes to status not always being emitted to statusChanges observable for async validators. (#42553) |
language-service
Commit | Description |
---|---|
8192f1e1c2 | fix(language-service): 'go to defininition' for objects defined in template (#42559) |
11e0f53352 | fix(language-service): Use last child end span for parent without close tag (#42554) |
Special Thanks:
Ahmed Ayed, Alan Agius, Andrew Scott, Ankit Choudhary, Aristeidis Bampakos, Daniel Trevino, Dario Piotrowicz, Dylan Hunn, George Kalpakas, Igor Minar, JiaLiPassion, JoostK, Kapunahele Wong, Kristiyan Kostadinov, Marius Bethge, Pete Bacon Darwin, Pham Huu Hien, dario-piotrowicz and gobika21
12.1.0-next.5 (2021-06-09)
common
Commit | Description |
---|---|
85c7f7691e | fix(common): infer correct type when trackBy is used in ngFor (#41995) |
374fa2c26f | fix(common): initialize currencyCode in currencyPipe (#40505) |
compiler
Commit | Description |
---|---|
afd68e5674 | feat(compiler): emit diagnostic for shadow dom components with an invalid selector (#42245) |
ba084857ea | feat(compiler): support safe keyed read expressions (#41911) |
compiler-cli
Commit | Description |
---|---|
bd1836b999 | fix(compiler-cli): exclude type-only imports from cycle analysis (#42453) |
core
Commit | Description |
---|---|
25f763cff8 | feat(core): support TypeScript 4.3 (#42022) |
forms
Commit | Description |
---|---|
34ce635e3a | feat(forms): undo revert and add ng-submitted class to forms that have been submitted. (#42132) (#42132) |
47270d9e63 | feat(forms): add ng-submitted class to forms that have been submitted. (#42132) |
751cd83ae3 | fix(forms): the min and max validators should work correctly with 0 as a value (#42412) |
language-service
Commit | Description |
---|---|
a493ea9bcb | fix(language-service): fix autocomplete info display for some cases (#42472) |
fe22c2b0b6 | fix(language-service): Correct rename info for pipe name expressions (#41974) |
router
Commit | Description |
---|---|
c44ab4f6da | fix(router): fix serializeQueryParams logic (#42481) |
Special Thanks:
Alex, Alex Inkin, Andrew Kushnir, Andrew Scott, Chris, David Shevitz, Dylan Hunn, George Kalpakas, Gourav102, Igor Minar, Jessica Janiuk, Joey Perrott, JoostK, Kapunahele Wong, Kristiyan Kostadinov, MarsiBarsi, MrJithil, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Sam Severance, Santosh Yadav, Teri Glover, Tiago Temporin, Vahid Mohammadi, anups1, cindygk, iRealNirmal, kuncevic and mgechev
12.0.4 (2021-06-09)
common
Commit | Description |
---|---|
200cc31df4 | fix(common): infer correct type when trackBy is used in ngFor (#41995) |
0dad375de7 | fix(common): initialize currencyCode in currencyPipe (#40505) |
compiler-cli
Commit | Description |
---|---|
b6d6a34eef | fix(compiler-cli): exclude type-only imports from cycle analysis (#42453) |
forms
Commit | Description |
---|---|
50c87e86b6 | fix(forms): the min and max validators should work correctly with 0 as a value (#42412) |
language-service
Commit | Description |
---|---|
34dd3c360b | fix(language-service): fix autocomplete info display for some cases (#42472) |
router
Commit | Description |
---|---|
a77ec5bcab | fix(router): fix serializeQueryParams logic (#42481) |
Special Thanks:
Alex, Alex Inkin, Andrew Kushnir, Andrew Scott, Chris, David Shevitz, George Kalpakas, Gourav102, Igor Minar, Joey Perrott, JoostK, Kapunahele Wong, Kristiyan Kostadinov, MarsiBarsi, MrJithil, Paul Gschwendtner, Pete Bacon Darwin, Sam Severance, Santosh Yadav, Teri Glover, Tiago Temporin, Vahid Mohammadi, anups1, cindygk, iRealNirmal, kuncevic and mgechev
12.1.0-next.3 (2021-05-26)
forms
Commit | Description |
---|---|
3d9062dad7 | fix(forms): Add float number support for min and max validator (#42223) |
migrations
Commit | Description |
---|---|
7f6213a2f4 | fix(migrations): add migration to replace /deep/ with ::ng-deep (#42214) |
platform-browser
Commit | Description |
---|---|
3a6af8e629 | fix(platform-browser): update started state on reset (#41608) |
Special Thanks:
Alan Agius, Andrew Scott, David Shevitz, George Kalpakas, Igor Minar, Joey Perrott, Kapunahele Wong, Madleina Scheidegger, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Sam Severance, Teri Glover, Zach Arend, chenyunhsin, iRealNirmal, mgechev and twerske
12.0.2 (2021-05-26)
forms
Commit | Description |
---|---|
19d7bf4162 | fix(forms): Add float number support for min and max validator (#42223) |
migrations
Commit | Description |
---|---|
11c7bec065 | fix(migrations): add migration to replace /deep/ with ::ng-deep (#42214) |
platform-browser
Commit | Description |
---|---|
84ab81c286 | fix(platform-browser): update started state on reset (#41608) |
Special Thanks:
Alan Agius, Andrew Scott, David Shevitz, George Kalpakas, Igor Minar, Joey Perrott, Kapunahele Wong, Madleina Scheidegger, Paul Gschwendtner, Pete Bacon Darwin, Sam Severance, Teri Glover, Zach Arend, chenyunhsin, iRealNirmal, mgechev and twerske
12.1.0-next.2 (2021-05-19)
animations
Commit | Description |
---|---|
e27ac018ed | fix(animations): ensure consistent transition namespace ordering (#19854) |
8ad90475e3 | fix(animations): update supported range of node versions to only include LTS versions (#41822) |
a99aa29040 | fix(animations): allow animations on elements in the shadow DOM (#40134) |
547363a851 | feat(animations): update supported range of node versions (#41544) |
bazel
Commit | Description |
---|---|
6f0c7fb91c | fix(bazel): update supported range of node versions to only include LTS versions (#41822) |
d583d926db | feat(bazel): update supported range of node versions (#41544) |
benchpress
Commit | Description |
---|---|
2e7eb270df | fix(benchpress): update the check for start and end events (#42085) |
common
Commit | Description |
---|---|
4bc3cf216d | feat(common): add URLSearchParams to request body (#37852) |
6b8baad940 | fix(common): add body as an optional property on the options of HttpClient.delete (#19438) (#41723) |
6e11febf60 | fix(common): add right ContentType for boolean values with HttpClient request body(#38924) (#41885) |
bce3194f78 | fix(common): update supported range of node versions to only include LTS versions (#41822) |
1aebf165db | fix(common): viewport scroller not finding elements inside the shadow DOM (#41644) |
e0250e567a | feat(common): update supported range of node versions (#41544) |
compiler
Commit | Description |
---|---|
3c726c3516 | fix(compiler): unclear lexer error when using private identifier in expressions (#42027) |
abcd4bbfaa | fix(compiler): preserve @page rules in encapsulated styles (#41915) |
1758d02972 | feat(compiler): support directive selectors with attributes containing $ (#41567) |
da6ed1562e | fix(compiler): strip scoped selectors from @font-face rules (#41815) |
e9952dd7f9 | fix(compiler): update supported range of node versions to only include LTS versions (#41822) |
73824d5337 | fix(compiler): not genera |