Angular: 15.0.0-next.5 Release

Release date:
October 5, 2022
Previous version:
15.0.0-next.4 (released September 28, 2022)
Magnitude:
5,449 Diff Delta
Contributors:
19 total committers
Data confidence:
Commits:

39 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored October 5, 2022
Authored August 22, 2022
Authored September 29, 2022

Top Contributors in 15.0.0-next.5

crisbeto
dario-piotrowicz
alan-agius4
AndrewKushnir
dylhunn
pkozlowski-opensource
atscott
alxhub
devversion
josmar-crwdstffng

Directory Browser for 15.0.0-next.5

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

<a name="15.0.0-next.5"></a>

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 or ShadowDom - define keyframes rules in global stylesheets (e.g styles.css) - define keyframes rules programmatically in code.

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 the providedIn option for @Injectable and InjectionToken is now deprecated.

providedIn: NgModule was intended to be a tree-shakable alternative to NgModule providers. It does not have wide usage, and in most cases is used incorrectly, in circumstances where providedIn: 'root' should be preferred. If providers should truly be scoped to a specific NgModule, use NgModule.providers instead.

  • The ability to set providedIn: 'any' for an @Injectable or InjectionToken is now deprecated.

providedIn: 'any' is an option with confusing semantics and is almost never used apart from a handful of esoteric cases internal to the framework.

compiler

| Commit | Description | | -- | -- | | fix - 051f75648d | scope css keyframes in emulated view encapsulation (#42608) |

compiler-cli

| Commit | Description | | -- | -- | | fix - 2e1dddec45 | support hasInvalidatedResolutions. (#47585) |

core

| Commit | Description | | -- | -- | | docs - e3cef4a784 | deprecate providedIn: NgModule and providedIn: 'any' (#47616) |

localize

| Commit | Description | | -- | -- | | fix - 400a6b5e37 | add polyfill in polyfills array instead of polyfills.ts (#47569) |

router

| Commit | Description | | -- | -- | | feat - da58801f95 | auto-unwrap default exports when lazy loading (#47586) | | feat - c3f857975d | 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