Releases: angular/angular
v15.0.0-rc.0
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
v14.2.7
v15.0.0-next.6
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].xand16.[10-12].x. Current supported versions of Node.js are14.20.x,16.13.xand18.10.x. - TypeScript versions older than 4.8 are no longer supported.
forms
- setDisabledState will always be called when a
ControlValueAccessoris attached. You can opt-out withFormsModule.withConfigorReactiveFormsModule.withConfig.
router
relativeLinkResolutionis 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_TIMEZONEtoken is now deprecated in favor
of theDATE_PIPE_DEFAULT_OPTIONStoken, which accepts an object
as a value and the timezone can be defined as a field (calledtimezone)
on that object.
router
- The
RouterLinkWithHrefdirective is deprecated, use theRouterLinkdirective instead. TheRouterLinkcontains the code from theRouterLinkWithHrefto handle elements withhrefattributes.
common
| Commit | Description |
|---|---|
add provideLocationMocks() function to provide Location mocks (#47674) |
|
| add preload tag on server for priority img (#47343) | |
| Add automatic srcset generation to ngOptimizedImage (#47547) | |
| Add fill mode to NgOptimizedImage (#47738) | |
| add injection token for default DatePipe configuration (#47157) |
compiler
| Commit | Description |
|---|---|
| update element schema (#47552) | |
| update element schema (#47552) |
compiler-cli
| Commit | Description |
|---|---|
| add missing period to error message (#47744) | |
exclude abstract classes from strictInjectionParameters requirement (#44615) |
|
| use @ts-ignore. (#47636) | |
| minimize filesystem calls when generating shims (#47682) |
core
| Commit | Description |
|---|---|
| add support for Node.js version 18 (#47730) | |
| drop support for TypeScript 4.6 and 4.7 (#47690) | |
| enable the new directive composition API (#47642) | |
| introduce EnvironmentProviders wrapper type (#47669) |
forms
| Commit | Description |
|---|---|
| export forms utility functions: isFormArray, isFormGroup… (#47718) | |
call setDisabledState on ControlValueAcessor when control is enabled (#47576) |
http
| Commit | Description |
|---|---|
allow for child HttpClients to request via parents (#47502) |
|
introduce provideHttpClientTesting provider function (#47502) |
|
| introduce functional interceptors (#47502) | |
introduce the provideHttpClient() API (#47502) |
|
better handle unexpected undefined XSRF tokens (#47683) |
language-service
| Commit | Description |
|---|---|
| Quick fix to import a component when its selector is used (#47088) |
router
| Commit | Description |
|---|---|
add a migration to remove relativeLinkResolution usages (#47604) |
|
merge RouterLinkWithHref into RouterLink (#47630) |
|
migrate RouterLinkWithHref references to RouterLink (#47599) |
|
prevent provideRouter() from usage in @component (#47669) |
|
| Remove deprecated relativeLinkResolution (#47623) |
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
v14.2.6
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
v15.0.0-next.5
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
NoneorShadowDom - 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
RouterOutletwould 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
NgModuleto theprovidedInoption for
@InjectableandInjectionTokenis now deprecated.
providedIn: NgModulewas 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.providersinstead.- The ability to set
providedIn: 'any'for an@Injectableor
InjectionTokenis 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
v14.2.5
v15.0.0-next.4
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
| Commit | Description |
|---|---|
| support object-based DI flags in Injector.get() (#46761) | |
| support object-based DI flags in TestBed.inject() (#46761) | |
correctly check for typeof of undefined in ngDevMode check (#47480) |
|
update isDevMode to rely on ngDevMode (#47475) |
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
v14.2.4
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
v15.0.0-next.3
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