Commit | Description |
---|---|
handle css selectors with space after an escaped character. (#48558) |
Commit | Description |
---|---|
resolve deprecation warning (#48812) |
Commit | Description |
---|---|
add ng generate schematic to convert declarations to standalone (#48790) | |
add ng generate schematic to remove unnecessary modules (#48832) |
Commit | Description |
---|---|
'createUrlTreeFromSnapshot' with empty paths and named outlets (#48734) |
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
Commit | Description |
---|---|
handle css selectors with space after an escaped character. (#48558) |
Commit | Description |
---|---|
resolve deprecation warning (#48812) |
Commit | Description |
---|---|
'createUrlTreeFromSnapshot' with empty paths and named outlets (#48734) |
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
InjectionToken
guards and resolvers are
deprecated. Instead, write guards as plain JavaScript functions and
inject dependencies with inject
from @angular/core
.Commit | Description |
---|---|
Deprecate class and InjectionToken and resolvers (#47924) |
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) |
Commit | Description |
---|---|
makeEnvironmentProviders should accept EnvironmentProviders (#48720) |
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 ノウラ
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) |
Commit | Description |
---|---|
makeEnvironmentProviders should accept EnvironmentProviders (#48720) |
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 ノウラ
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 the providers
in the root NgModule
or
bootstrapApplication
:
routeReuseStrategy
titleStrategy
urlHandlingStrategy
The following options are meant to be configured using the options
available in RouterModule.forRoot
or provideRouter
.
onSameUrlNavigation
paramsInheritanceStrategy
urlUpdateStrategy
canceledNavigationResolution
The following options are available in RouterModule.forRoot
but not
available in provideRouter
:
malformedUriErrorHandler
- This was found to not be used anywhere
internally.errorHandler
- Developers can instead subscribe to Router.events
and filter for NavigationError
.Commit | Description |
---|---|
Add BrowserPlatformLocation to the public API (#48488) | |
Add data attribtue to NgOptimizedImage (#48497) |
Commit | Description |
---|---|
allow self-closing tags on custom elements (#48535) | |
resolve deprecation warning (#48652) | |
type-only symbols incorrectly retained when downlevelling custom decorators (#48638) |
Commit | Description |
---|---|
update @babel/core dependency and lock version (#48634) |
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) |
Commit | Description |
---|---|
Form provider FormsModule.withConfig return a FormsModule (#48526) |
Commit | Description |
---|---|
add triple slash type reference on @angular/localize on `ng add (#48502) |
Commit | Description |
---|---|
combine newly-added imports in import manager (#48620) |
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
Commit | Description |
---|---|
Add data attribtue to NgOptimizedImage (#48497) |
Commit | Description |
---|---|
allow self-closing tags on custom elements (#48535) | |
type-only symbols incorrectly retained when downlevelling custom decorators (#48638) |
Commit | Description |
---|---|
update @babel/core dependency and lock version (#48634) |
Commit | Description |
---|---|
add triple slash type reference on @angular/localize on `ng add (#48502) |
Commit | Description |
---|---|
combine newly-added imports in import manager (#48620) |
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
Commit | Description |
---|---|
fix incorrect handling of camel-case css properties (#48436) |
Commit | Description |
---|---|
evaluate const tuple types statically (#48091) |
Commit | Description |
---|---|
Add feature provider for enabling hash navigation (#48301) |
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
Commit | Description |
---|---|
fix incorrect handling of camel-case css properties (#48436) |
Commit | Description |
---|---|
evaluate const tuple types statically (#48091) |
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
Commit | Description |
---|---|
Don't generate srcsets with very large sources (#47997) | |
Update Location to support base href containing origin (#48327) |
Commit | Description |
---|---|
make sure selectors inside container queries are correctly scoped (#48353) |
Commit | Description |
---|---|
Produce diagnostic rather than crash when using invalid hostDirective (#48314) |
Commit | Description |
---|---|
Make the isStandalone() function available in public API (#48114) | |
support TypeScript 4.9 (#48005) | |
unable to inject ChangeDetectorRef inside host directives (#48355) |
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
Commit | Description |
---|---|
Don't generate srcsets with very large sources (#47997) | |
Update Location to support base href containing origin (#48327) |
Commit | Description |
---|---|
make sure selectors inside container queries are correctly scoped (#48353) |
Commit | Description |
---|---|
Produce diagnostic rather than crash when using invalid hostDirective (#48314) |
Commit | Description |
---|---|
unable to inject ChangeDetectorRef inside host directives (#48355) |
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
Commit | Description |
---|---|
accept inheriting the constructor from a class in a library (#48156) |
Commit | Description |
---|---|
Deprecate canLoad guards in favor of canMatch (#48180) | |
Add ability to override onSameUrlNavigation default per-navigation (#48050) |
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
Commit | Description |
---|---|
accept inheriting the constructor from a class in a library (#48156) |
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
Commit | Description |
---|---|
Fix MockPlatformLocation events and missing onPopState implementation (#48113) |
Commit | Description |
---|---|
don't mutate validators array (#47830) | |
FormBuilder.group return right type with shorthand parameters. (#48084) |
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) |
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
router writable properties
The following strategies are meant to be configured by registering the
application strategy in DI via the providers
in the root NgModule
or
bootstrapApplication
:
routeReuseStrategy
titleStrategy
urlHandlingStrategy
The following options are meant to be configured using the options
available in RouterModule.forRoot
or provideRouter
.
onSameUrlNavigation
paramsInheritanceStrategy
urlUpdateStrategy
canceledNavigationResolution
The following options are available in RouterModule.forRoot
but not
available in provideRouter
:
malformedUriErrorHandler
- This was found to not be used anywhere
internally.errorHandler
- Developers can instead subscribe to Router.events
and filter for NavigationError
.Commit | Description |
---|---|
Fix MockPlatformLocation events and missing onPopState implementation (#48113) |
Commit | Description |
---|---|
Add TestBed.runInInjectionContext to help test functions which use inject (#47955) |
Commit | Description |
---|---|
don't mutate validators array (#47830) | |
FormBuilder.group return right type with shorthand parameters. (#48084) |
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
Commit | Description |
---|---|
hardening attribute and property binding rules for elements |
Andrew Kushnir, Joey Perrott and Paul Gschwendtner
Commit | Description |
---|---|
hardening attribute and property binding rules for elements (#48029) |
Andrew Kushnir, Andrew Scott, George Looshch, Joey Perrott and Paul Gschwendtner
Commit | Description |
---|---|
hardening attribute and property binding rules for elements (#48028) |
Andrew Kushnir
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:
None
or ShadowDom
Invalid constructors for DI may now report compilation errors
When a class inherits its constructor from a base class, the compiler may now
report an error when that constructor cannot be used for DI purposes. This may
either be because the base class is missing an Angular decorator such as
@Injectable()
or @Directive()
, or because the constructor contains parameters
which do not have an associated token (such as primitive types like string
).
These situations used to behave unexpectedly at runtime, where the class may be
constructed without any of its constructor parameters, so this is now reported
as an error during compilation.
Any new errors that may be reported because of this change can be resolved either by decorating the base class from which the constructor is inherited, or by adding an explicit constructor to the class for which the error is reported.
Angular compiler option enableIvy
has been removed as Ivy is the only rendering engine.
14.[15-19].x
and 16.[10-12].x
. Current supported versions of Node.js are 14.20.x
, 16.13.x
and 18.10.x
.src
or srcdoc
preceding other attributes. Such usages may need to be updated to ensure compliance with the new stricter rules around iframe bindings.ControlValueAccessor
is attached. You can opt-out with FormsModule.withConfig
or ReactiveFormsModule.withConfig
.canParse
method has been removed from all translation parsers in @angular/localize/tools
. analyze
should be used instead.hint
parameter in theparse
methods is now mandatory.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.relativeLinkResolution
is no longer configurable in
the Router. This option was used as a means to opt out of a bug fix.DATE_PIPE_DEFAULT_TIMEZONE
token is now deprecated in favor
of the DATE_PIPE_DEFAULT_OPTIONS
token, which accepts an object
as a value and the timezone can be defined as a field (called timezone
)
on that object.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.
providedIn: 'any'
for an @Injectable
or
InjectionToken
is now deprecated.providedIn: 'any'
is an option with confusing semantics and is almost
never used apart from a handful of esoteric cases internal to the framework.
The bit field signature of Injector.get()
has been deprecated, in favor of the new options object.
The bit field signature of TestBed.inject()
has been deprecated, in favor of the new options object.
RouterLinkWithHref
directive is deprecated, use the RouterLink
directive instead. The RouterLink
contains the code from the RouterLinkWithHref
to handle elements with href
attributes.Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) | |
update element schema (#47552) | |
update element schema (#47552) |
Commit | Description |
---|---|
Quick fix to import a component when its selector is used (#47088) | |
support to fix invalid banana in box (#47393) |
Commit | Description |
---|---|
align server renderer interface with base renderer (#47868) |
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
Commit | Description |
---|---|
add zone.js version 0.12.x as a valid peer dependency (#48002) | |
hardening attribute and property binding rules for elements (#47964) |
Commit | Description |
---|---|
Improve a very commonly viewed error message by adding a guide. (#47969) | |
Runtime error pages must begin with leading zero (#47991) |
Commit | Description |
---|---|
rename withLegacyInterceptors to withInterceptorsFromDi (#47901) |
Commit | Description |
---|---|
fix redirectTo on named outlets - resolves #33783 (#47927) |
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
Commit | Description |
---|---|
add zone.js version 0.12.x as a valid peer dependency (#48002) |
Commit | Description |
---|---|
fix redirectTo on named outlets - resolves #33783 (#47927) |
Alan Agius, Albert Szekely, Andrew Scott, Doug Parker, Kristiyan Kostadinov, Markus Eckstein, Peter Scriven and abergquist
src
or srcdoc
preceding other attributes. Such usages may need to be updated to ensure compliance with the new stricter rules around iframe bindings.Commit | Description |
---|---|
allow readonly arrays for standalone imports (#47851) | |
hardening rules related to the attribute order on iframe elements (#47935) |
Commit | Description |
---|---|
resolve memory leak when using animations with shadow DOM (#47903) |
Commit | Description |
---|---|
call onSerialize when state is empty (#47888) |
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Charles Lyding, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Virginia Dooley and mgechev
Commit | Description |
---|---|
Don't warn about image distortion is fill mode is enabled (#47824) |
Commit | Description |
---|---|
don't mutate validators array (#47830) |
Commit | Description |
---|---|
align server renderer interface with base renderer (#47868) |
Alan Agius, Alex Castle, Andrew Scott, Balaji, George Kalpakas, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, WD Snoeijer, onrails and vyom1611
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) |
Commit | Description |
---|---|
implement more host directive validations as diagnostics (#47768) |
Commit | Description |
---|---|
update ng add schematic to support Angular CLI version 15 (#47763) |
Commit | Description |
---|---|
Delay router scroll event until navigated components have rendered (#47563) |
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
Invalid constructors for DI may now report compilation errors
When a class inherits its constructor from a base class, the compiler may now
report an error when that constructor cannot be used for DI purposes. This may
either be because the base class is missing an Angular decorator such as
@Injectable()
or @Directive()
, or because the constructor contains parameters
which do not have an associated token (such as primitive types like string
).
These situations used to behave unexpectedly at runtime, where the class may be
constructed without any of its constructor parameters, so this is now reported
as an error during compilation.
Any new errors that may be reported because of this change can be resolved either by decorating the base class from which the constructor is inherited, or by adding an explicit constructor to the class for which the error is reported.
14.[15-19].x
and 16.[10-12].x
. Current supported versions of Node.js are 14.20.x
, 16.13.x
and 18.10.x
.ControlValueAccessor
is attached. You can opt-out with FormsModule.withConfig
or ReactiveFormsModule.withConfig
.relativeLinkResolution
is no longer configurable in
the Router. This option was used as a means to opt out of a bug fix.DATE_PIPE_DEFAULT_TIMEZONE
token is now deprecated in favor
of the DATE_PIPE_DEFAULT_OPTIONS
token, which accepts an object
as a value and the timezone can be defined as a field (called timezone
)
on that object.RouterLinkWithHref
directive is deprecated, use the RouterLink
directive instead. The RouterLink
contains the code from the RouterLinkWithHref
to handle elements with href
attributes.Commit | Description |
---|---|
update element schema (#47552) | |
update element schema (#47552) |
Commit | Description |
---|---|
export forms utility functions: isFormArray, isFormGroup… (#47718) | |
call setDisabledState on ControlValueAcessor when control is enabled (#47576) |
Commit | Description |
---|---|
Quick fix to import a component when its selector is used (#47088) |
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
Commit | Description |
---|---|
add missing period to error message (#47744) | |
minimize filesystem calls when generating shims (#47682) |
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
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:
None
or ShadowDom
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.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.
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.
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) |
Commit | Description |
---|---|
support hasInvalidatedResolutions. (#47585) |
Commit | Description |
---|---|
deprecate providedIn: NgModule and providedIn: 'any' (#47616) |
Commit | Description |
---|---|
add polyfill in polyfills array instead of polyfills.ts (#47569) |
Commit | Description |
---|---|
auto-unwrap default exports when lazy loading (#47586) | |
make RouterOutlet name an Input so it can be set dynamically (#46569) |
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
Injector.get()
has been deprecated, in favor of the new options object.TestBed.inject()
has been deprecated, in favor of the new options object.Commit | Description |
---|---|
support to fix invalid banana in box (#47393) |
Commit | Description |
---|---|
Ensure ActivatedRouteSnapshot#title has correct value (#47481) |
Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Ashley Hunter, Doug Parker, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Rokas Brazdžionis, Simona Cotin and ivanwonder
Commit | Description |
---|---|
cache source file for reporting type-checking diagnostics (#47508) |
Commit | Description |
---|---|
correctly check for typeof of undefined in ngDevMode check (#47480) |
Alan Agius, Ashley Hunter, Doug Parker, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Rokas Brazdžionis and Simona Cotin
Commit | Description |
---|---|
make sure that the useAnimation function delay is applied (#47468) |
Commit | Description |
---|---|
cache source file for reporting type-checking diagnostics (#47471) |
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
Commit | Description |
---|---|
make sure that the animation function delay is applied (#47285) |
Commit | Description |
---|---|
rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362) |
Commit | Description |
---|---|
imply @Optional flag when a default value is provided (#47242) |
Commit | Description |
---|---|
don't prevent default behavior for forms with method="dialog" (#47308) |
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
Commit | Description |
---|---|
make sure that the animation function delay is applied (#47285) |
Commit | Description |
---|---|
rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362) (#47396) |
Commit | Description |
---|---|
imply @Optional flag when a default value is provided (#47242) |
Commit | Description |
---|---|
don't prevent default behavior for forms with method="dialog" (#47308) |
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
enableIvy
has been removed as Ivy is the only rendering engine.canParse
method has been removed from all translation parsers in @angular/localize/tools
. analyze
should be used instead.hint
parameter in theparse
methods is now mandatory.Commit | Description |
---|---|
improve formatting of image warnings (#47299) | |
use DOCUMENT token to query for preconnect links (#47353) |
Commit | Description |
---|---|
avoid errors for inputs with Object-builtin names (#47220) |
Commit | Description |
---|---|
remove enableIvy options (#47346) |
Commit | Description |
---|---|
remove deprecated canParse method from TranslationParsers (#47275) |
Commit | Description |
---|---|
include headers in requests for assets (#47260) | |
only consider GET requests as navigation requests (#47263) |
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
Commit | Description |
---|---|
improve formatting of image warnings (#47299) | |
use DOCUMENT token to query for preconnect links (#47353) |
Commit | Description |
---|---|
avoid errors for inputs with Object-builtin names (#47220) |
Commit | Description |
---|---|
include headers in requests for assets (#47260) | |
only consider GET requests as navigation requests (#47263) |
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
Commit | Description |
---|---|
fix formatting on oversized image error (#47188) | |
support density descriptors with 2+ decimals (#47197) |
Commit | Description |
---|---|
Add UrlTree constructor to public API (#47186) |
Alan Agius, Alex Rickabaugh, Andrew Scott, Joey Perrott, Kara Erickson, Kristiyan Kostadinov and Pawel Kozlowski
Commit | Description |
---|---|
fix stagger timing not handling params (#47208) |
Commit | Description |
---|---|
support more recent version of tsickle (#47018) |
Commit | Description |
---|---|
add FormBuilder.record() method (#46485) | |
Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034) |
Commit | Description |
---|---|
support fix the component missing member (#46764) |
Commit | Description |
---|---|
add isEmpty method to the TransferState class (#46915) |
Commit | Description |
---|---|
support document reference in render functions (#47032) |
Commit | Description |
---|---|
support sendRequest as a notificationclick action (#46912) | |
export NoNewVersionDetectedEvent (#47044) | |
update golden index.md (#47044) |
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
Commit | Description |
---|---|
infinite loop in parser assignment expression with invalid left-hand expression (#47151) |
Commit | Description |
---|---|
support TypeScript 4.8 (#47038) |
Commit | Description |
---|---|
Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034) |
Commit | Description |
---|---|
Create APIs for using Router without RouterModule (#47010) | |
improve typings for RouterLink boolean inputs (#47101) |
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
Commit | Description |
---|---|
infinite loop in parser assignment expression with invalid left-hand expression (#47151) |
AlirezaEbrahimkhani, Alma Eyre, Andrew Scott, Bob Watson, George Kalpakas, Kalbarczyk, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Roman Matusevich and Sonu Kapoor
Commit | Description |
---|---|
check if transplanted views are attached to change detector (#46974) |
Commit | Description |
---|---|
Fix route recognition behavior with some versions of rxjs (#47098) (#47112) |
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
Commit | Description |
---|---|
allow null/undefined to be passed to ngStyle input (#47069) |
Commit | Description |
---|---|
support more recent version of tsickle (#47018) |
Commit | Description |
---|---|
check if transplanted views are attached to change detector (#46974) |
Commit | Description |
---|---|
support document reference in render functions (#47032) |
Commit | Description |
---|---|
allow guards and resolvers to be plain functions (#46684) | |
Fix route recognition behavior with some versions of rxjs (#47098) |
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
Commit | Description |
---|---|
allow null/undefined to be passed to ngClass input (#39280) (#46906) |
Commit | Description |
---|---|
add createComponent function (#46685) | |
add reflectComponentType function (#46685) | |
introduce createApplication API (#46475) | |
align TestBed interfaces and implementation (#46635) |
Commit | Description |
---|---|
add FormBuilder.record() method (#46485) |
Commit | Description |
---|---|
support fix the component missing member (#46764) |
Commit | Description |
---|---|
add isEmpty method to the TransferState class (#46915) |
Commit | Description |
---|---|
expose resolved route title (#46826) | |
Expose the default matcher for Routes used by the Router (#46913) | |
Make router directives standalone (#46758) |
Commit | Description |
---|---|
support sendRequest as a notificationclick action (#46912) |
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
Commit | Description |
---|---|
improve the missing control flow directive message (#46903) |
Commit | Description |
---|---|
Do not call preload method when not necessary (#47007) | |
Use correct return type for provideRoutes function (#46941) |
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
createNgModuleRef
is deprecated in favor of newly added createNgModule
one.inject()
has been deprecated, in favor of the
new options object. Correspondingly, InjectFlags
is deprecated as well.Commit | Description |
---|---|
add provideAnimations() and provideNoopAnimations() functions (#46793) |
Commit | Description |
---|---|
make the CommonModule pipes standalone (#46401) | |
make the CommonModule directives standalone (#46469) |
Commit | Description |
---|---|
improve error message for nullish header (#46059) |
Commit | Description |
---|---|
more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214) |
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
Commit | Description |
---|---|
make sure falsy values are added to _globalTimelineStyles (#46863) |
Commit | Description |
---|---|
inputs/outputs incorrectly parsed in jit mode (#46813) |
Commit | Description |
---|---|
do not invoke jasmine done callback multiple times with waitForAsync |
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
createNgModuleRef
is deprecated in favor of newly added createNgModule
one.Commit | Description |
---|---|
add provideAnimations() and provideNoopAnimations() functions (#46793) |
Commit | Description |
---|---|
Add extended diagnostic to warn when missing let on ngForOf (#46683) | |
warn when style suffixes are used with attribute bindings (#46651) |
Commit | Description |
---|---|
add extended diagnostic for non-nullable optional chains (#46686) | |
only consider used pipes for inline type-check requirement (#46807) |
Commit | Description |
---|---|
alias createNgModuleRef as createNgModule (#46789) | |
expose EnvironmentInjector on ApplicationRef (#46665) | |
import AsyncStackTaggingZone if available (#46693) |
Commit | Description |
---|---|
expose ControlConfig in public API (#46594) | |
Move all remaining errors in Forms to use RuntimeErrorCode. (#46654) |
Commit | Description |
---|---|
add --project option to ng-add schematic (#46664) |
Commit | Description |
---|---|
Add the target RouterStateSnapshot to NavigationError (#46731) | |
Fix cancellation code for canLoad rejections (#46752) |
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
Commit | Description |
---|---|
only consider used pipes for inline type-check requirement (#46807) |
Commit | Description |
---|---|
expose ControlConfig in public API (#46594) | |
Move all remaining errors in Forms to use RuntimeErrorCode. (#46654) |
Commit | Description |
---|---|
add --project option to ng-add schematic (#46664) |
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
inject()
has been deprecated, in favor of the
new options object. Correspondingly, InjectFlags
is deprecated as well.Commit | Description |
---|---|
Add extended diagnostic to warn when text attributes are intended to be bindings (#46161) |
Commit | Description |
---|---|
Add stable cancelation code to NavigationCancel event (#46675) | |
Ensure APP_INITIALIZER of enabledBlocking option completes (#46026) |
Alan Agius, Alex Rickabaugh, Andrew Scott, Aristeidis Bampakos, Bob Watson, George Kalpakas, Paul Gschwendtner and Pawel Kozlowski
Commit | Description |
---|---|
cleanup DOM elements when the root view is removed (#45143) | |
enable shadowElements to leave when their parent does (#46459) |
Commit | Description |
---|---|
make the CommonModule pipes standalone (#46401) | |
make the CommonModule directives standalone (#46469) | |
handle CSS custom properties in NgStyle (#46451) |
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) |
Commit | Description |
---|---|
Convert existing reactive errors to use RuntimeErrorCode. (#46560) | |
Update a Forms validator error to use RuntimeError (#46537) |
Commit | Description |
---|---|
Ensure that new RouterOutlet instances work after old ones are destroyed (#46554) |
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]
Commit | Description |
---|---|
cleanup DOM elements when the root view is removed (#45143) | |
enable shadowElements to leave when their parent does (#46459) |
Commit | Description |
---|---|
handle CSS custom properties in NgStyle (#46451) |
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) |
Commit | Description |
---|---|
Convert existing reactive errors to use RuntimeErrorCode. (#46560) | |
Update a Forms validator error to use RuntimeError (#46537) |
Commit | Description |
---|---|
Ensure that new RouterOutlet instances work after old ones are destroyed (#46554) |
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]
Commit | Description |
---|---|
reset the start and done fns on player reset (#46364) |
Commit | Description |
---|---|
improve error message for nullish header (#46059) |
Commit | Description |
---|---|
invalid style attribute being generated for null values (#46433) |
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) |
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
Commit | Description |
---|---|
reset the start and done fns on player reset (#46364) |
Commit | Description |
---|---|
deduplicate imports of standalone components in JIT compiler (#46439) | |
handle NgModules with standalone pipes in TestBed correctly (#46407) |
Commit | Description |
---|---|
invalid style attribute being generated for null values (#46433) |
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
Commit | Description |
---|---|
allow null in ngComponentOutlet (#46280) |
Commit | Description |
---|---|
Resolve forwardRef declarations for jit (#46334) |
Commit | Description |
---|---|
Add CanMatch guard to control whether a Route should match (#46021) |
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
Commit | Description |
---|---|
allow null in ngComponentOutlet (#46280) |
Commit | Description |
---|---|
don't emit empty providers array (#46301) | |
use inline type-check blocks for components outside rootDir (#46096) |
Commit | Description |
---|---|
Resolve forwardRef declarations for jit (#46334) |
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
Commit | Description |
---|---|
Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877) |
Commit | Description |
---|---|
more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214) |
AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Jessica Janiuk, Joey Perrott, Keith Li, SyedAhm3r, mariu and mgechev
Commit | Description |
---|---|
update API extractor version (#46259) | |
reduce input files for ng_package rollup and type bundle actions (#46187) |
Commit | Description |
---|---|
allow FormBuilder.group(...) to accept optional fields. (#46253) |
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
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,
as AnimationDriver
is not expected to be implemented in user code.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:
None
or ShadowDom
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:
None
or ShadowDom
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. The aotSummaries
fields were completely unused, so you can just drop them from the TestBed APIs usage.
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 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.
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.
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.
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 than any
.
initialNavigation: 'enabled'
was deprecated in v11 and is replaced by
initialNavigation: 'enabledBlocking'
.
The type of component
on ActivatedRoute
and ActivatedRouteSnapshot
includes string
. In reality, this is not the case. The component
cannot be anything other than a component class.
initialUrl
is set to string|UrlTree
but in reality,
the Router
only sets it to a value that will always be UrlTree
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 internal UrlTree
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.
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 a setTimeout
. 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 with Observables
returned by other guards: only the first value is used.
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
ngModuleFactory
input of the NgComponentOutlet
directive is deprecated in favor of a newly added ngModule
input. The ngModule
input accepts references to the NgModule class directly, without the need to resolve module factory first.initialValueIsDefault
option has been deprecated and replaced with the otherwise-identical nonNullable
option, for the sake of naming consistency.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.resolver
argument of the RouterOutletContract.activateWith
function and the resolver
field of the OutletContext
class are deprecated. Passing component factory resolvers are no longer needed. The ComponentFactoryResolver
-related symbols were deprecated in @angular/core
package since v13.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) |
Commit | Description |
---|---|
stop scroll occuring at tabs level |
Commit | Description |
---|---|
encode + signs in query params as %2B (angular#11058) (#45111) | |
Throw error when headers are supplied in JSONP request (#45210) |
Commit | Description |
---|---|
Provide plugin to delegate rename requests to Angular (#44696) | |
Fix detection of Angular for v14+ projects (#45998) |
Commit | Description |
---|---|
ensure transitively loaded compiler code is tree-shakable (#45405) |
Commit | Description |
---|---|
Add migration to add explicit Route /Routes type (#45084) |
Commit | Description |
---|---|
cope with packages following APF v14+ (#45833) |
Commit | Description |
---|---|
implement renderApplication function (#45785) | |
update renderApplication to move appId to options (#45844) |
Commit | Description |
---|---|
add cacheOpaqueResponses option for data-groups (#44723) | |
emit a notification when the service worker is already up to date after check (#45216) |
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
Commit | Description |
---|---|
preserve forwardRef for component scopes (#46139) |
Alex Rickabaugh, Andrew Kushnir, Billy Lando, George Kalpakas, Ian Gregory, Matt Shaffer, Paul Gschwendtner, Pawel Kozlowski, Rune Andersen Hartvig, dario-piotrowicz and mgechev
initialValueIsDefault
option has been deprecated and replaced with the otherwise-identical nonNullable
option, for the sake of naming consistency.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.Commit | Description |
---|---|
use allowedInputs to avoid fs.stat (#46069) |
Commit | Description |
---|---|
update unknown tag error for aot standalone components (#45919) |
Commit | Description |
---|---|
Add a nonNullable option to FormControl for consistency. | |
Warn on FormControls that are constructed with both options and asyncValidators. |
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
Commit | Description |
---|---|
handle standalone components with cycles (#46029) | |
use existing imports for standalone dependencies (#46029) |
Commit | Description |
---|---|
set correct context for inject() for component ctors (#45991) |
Commit | Description |
---|---|
Value and RawValue should be part of the public API. (#45978) |
Commit | Description |
---|---|
Fix detection of Angular for v14+ projects (#45998) | |
Prevent TSServer from removing templates from project (#45965) |
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
Commit | Description |
---|---|
speed up d.ts bundling by configuring worker (#45900) |
Commit | Description |
---|---|
allow checkNoChanges mode to be tree-shaken in production (#45913) |
Commit | Description |
---|---|
Allow NonNullableFormBuilder to be injected. (#45904) | |
Prevent FormBuilder from distributing unions to control types. (#45942) |
Commit | Description |
---|---|
Add resource files as roots to their associated projects (#45601) |
Commit | Description |
---|---|
cope with packages following APF v14+ (#45833) |
Commit | Description |
---|---|
avoid including Testability by default in bootstrapApplication (#45885) |
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 ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ
Commit | Description |
---|---|
allow checkNoChanges mode to be tree-shaken in production (#45936) |
Commit | Description |
---|---|
Add resource files as roots to their associated projects (#45601) |
Andrew Kushnir, Andrew Scott, George Kalpakas, JayMartMedia, JoostK, Paul Gschwendtner, Ted.chang, Thomas Mair, Will 保哥, dario-piotrowicz, mgechev and ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ
initialNavigation: 'enabled'
was deprecated in v11 and is replaced by
initialNavigation: 'enabledBlocking'
.Commit | Description |
---|---|
properly cast http param values to strings (#42643) |
Commit | Description |
---|---|
exclude empty styles from emitted metadata (#45459) |
Commit | Description |
---|---|
Add FormBuilder.nonNullable . (#45852) |
Commit | Description |
---|---|
implement renderApplication function (#45785) | |
update renderApplication to move appId to options (#45844) |
Commit | Description |
---|---|
add type properties to all router events (#44189) | |
Remove deprecated initialNavigation option (#45729) |
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
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:
None
or ShadowDom
UrlTree
, the router would previously schedule
the redirect navigation within a setTimeout
. 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.Commit | Description |
---|---|
speed up dev-turnaround by bundling types only when packaging (#45405) | |
add this_is_bazel marker (#45728) |
Commit | Description |
---|---|
add getState method to LocationStrategy interface (#45648) |
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) |
Commit | Description |
---|---|
add the bootstrapApplication function (#45674) | |
implement standalone directives, components, and pipes (#45687) |
Commit | Description |
---|---|
ensure transitively loaded compiler code is tree-shakable (#45405) |
Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Joey Perrott, Michal Materowski, Paul Gschwendtner, Pawel Kozlowski, Sumit Arora and dario-piotrowicz
The type of component
on ActivatedRoute
and ActivatedRouteSnapshot
includes string
. 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.
resolver
argument of the RouterOutletContract.activateWith
function and the resolver
field of the OutletContext
class are deprecated. Passing component factory resolvers are no longer needed. The ComponentFactoryResolver
-related symbols were deprecated in @angular/core
package since v13.Commit | Description |
---|---|
do not error if files part of srcs are outside of package (#45622) |
Commit | Description |
---|---|
fix issue with incremental tracking of APIs for pipes (#45672) |
Commit | Description |
---|---|
Add a FormRecord type. (#45607) | |
Fix a typing bug in FormBuilder. (#45684) |
Commit | Description |
---|---|
encode + signs in query params as %2B (angular#11058) (#45111) |
Commit | Description |
---|---|
two-way binding completion should not remove the trailing quote (#45582) |
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
Commit | Description |
---|---|
better error message when directive extends a component (#45658) | |
improve multiple components match error (#45645) |
Commit | Description |
---|---|
two-way binding completion should not remove the trailing quote (#45582) |
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
aotSummaries
fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The aotSummaries
fields were completely unused, so you can just drop them from the TestBed APIs usage.Commit | Description |
---|---|
avoid errors with extremely long instruction chains (#45574) |
Commit | Description |
---|---|
remove deprecated aotSummaries fields in TestBed config (#45487) |
4javier, Andrew Kushnir, Andrew Scott, Dylan Hunn, Jason Hendee, Jessica Janiuk, Kristiyan Kostadinov, Michael-Doner, Michal Materowski and Virginia Dooley
Commit | Description |
---|---|
avoid errors with extremely long instruction chains (#45574) |
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
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.
Promise
from the
LoadChildrenCallback
, the possible type is now restricted to
Type<any>|NgModuleFactory<any>
rather than any
.Commit | Description |
---|---|
make validateStyleProperty check dev-mode only (#45570) |
Commit | Description |
---|---|
Implement strict types for the Angular Forms package. (#43834) |
Commit | Description |
---|---|
remove obsolete shim for Map comparison in Jasmine (#45521) |
Commit | Description |
---|---|
Remove any from LoadChildrenCallback type (#45524) |
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
Commit | Description |
---|---|
handle structured AnimateTimings (#31107) |
Commit | Description |
---|---|
Add migration to add explicit Route /Routes type (#45084) |
Commit | Description |
---|---|
merge interited resolved data and static data (#45276) |
Alan Agius, Andrew Kushnir, Andrew Scott, Chabbey François, Christoph Guttandin, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Martin Sikora, mgechev and piyush132000
Commit | Description |
---|---|
ng module compilation workers are subject to linker race-conditions (#45393) |
Commit | Description |
---|---|
scope css rules within @layer blocks (#45396) |
Commit | Description |
---|---|
handle inline type-check blocks in nullish coalescing extended check (#45478) |
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
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:
None
or ShadowDom
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.
Commit | Description |
---|---|
scope css keyframes in emulated view encapsulation (#42608) |
Commit | Description |
---|---|
avoid Closure Compiler error in restoreView (#45445) |
Commit | Description |
---|---|
not picking up disabled state if group is swapped out and disabled (#43499) |
Commit | Description |
---|---|
Throw error when headers are supplied in JSONP request (#45210) |
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
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
animationsCommit | Description |
---|---|
provide warnings for non-animatable CSS properties (#45212) | |
apply default params when resolved value is null or undefined (#45339) |
Commit | Description |
---|---|
ng module compilation workers are subject to linker race-conditions (#45393) |
Commit | Description |
---|---|
scope css rules within @layer blocks (#45396) |
Commit | Description |
---|---|
full side-effectful registration of NgModules with ids (#45024) | |
ignore the module.id anti-pattern for NgModule ids (#45024) |
Commit | Description |
---|---|
drop support for TypeScript 4.4 and 4.5 (#45394) | |
memory leak in event listeners inside embedded views (#43075) |
Commit | Description |
---|---|
Make UntypedFormBuilder assignable to FormBuilder, and vice versa. (#45421) |
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
Commit | Description |
---|---|
triggerEventHandler accept optional eventObj (#45279) |
Commit | Description |
---|---|
improve error message for invalid value accessors (#45192) |
Alan Agius, Alistair Kane, Amer Yousuf, Andrew Kushnir, Andrew Scott, Derek Cormier, Jessica Janiuk, JiaLiPassion, Lee Cooper, Paul Gschwendtner, alirezaghey and why520crazy
Commit | Description |
---|---|
compute correct offsets when interpolations have HTML entities (#44811) |
Commit | Description |
---|---|
drop support for Node.js 12 (#45286) | |
support TypeScript 4.6 (#45190) | |
incorrectly inserting elements inside <template> element (#43429) |
Commit | Description |
---|---|
Add UntypedFormBuilder (#45268) | |
Property renaming safe code (#45271) | |
Update the typed forms migration. (#45281) |
Commit | Description |
---|---|
Prioritize Angular-specific completions over DOM completions (#45293) |
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) |
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
Commit | Description |
---|---|
compute correct offsets when interpolations have HTML entities (#44811) |
Commit | Description |
---|---|
Prioritize Angular-specific completions over DOM completions (#45293) |
Commit | Description |
---|---|
file system hash in batch of 500 elements (#45262) |
Andrew Scott, Anner Visser, Aristeidis Bampakos, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Luca, Mladen Jakovljević, Paul Gschwendtner, Srikanth Kolli and nanda18
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 with Observables
returned by other guards: only the first value is used.
Commit | Description |
---|---|
canceled JSONP requests won't throw console error with missing callback function (#36807) | |
make NgLocalization token tree-shakable (#45118) |
Commit | Description |
---|---|
Add untyped versions of the model classes for use in migration. (#45205) |
Commit | Description |
---|---|
avoid imports into compiler-cli package (#45180) |
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) |
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
Commit | Description |
---|---|
allow animations with unsupported CSS properties (#45185) |
Commit | Description |
---|---|
canceled JSONP requests won't throw console error with missing callback function (#36807) | |
make NgLocalization token tree-shakable (#45118) (#45226) |
Commit | Description |
---|---|
Support resolve animation name from the DTS (#45169) |
Commit | Description |
---|---|
avoid imports into compiler-cli package (#45180) |
Andrew Kushnir, Andrew Scott, Charles Lyding, Guillaume Bonnet, Jessica Janiuk, JoostK, Martin Sikora, Paul Gschwendtner, Theodore Brown, dario-piotrowicz and ivanwonder
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,
as AnimationDriver
is not expected to be implemented in user code.Commit | Description |
---|---|
allow animations with unsupported CSS properties (#44729) | |
make AnimationDriver.getParentElement required (#45114) |
Commit | Description |
---|---|
Support resolve animation name from the DTS (#45107) |
Alan Cohen, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Daniele Maltese, David Wolf, JiaLiPassion, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, arturovt, dario-piotrowicz, ivanwonder and manuelkroiss
Commit | Description |
---|---|
improve algorithm to balance animation namespaces (#45113) |
Commit | Description |
---|---|
make IterableDiffers and KeyValueDiffers tree-shakable (#45094) (#45115) |
Alan Cohen, AlirezaEbrahimkhani, Andrew Kushnir, Daniele Maltese, David Wolf, JoostK, Paul Gschwendtner, dario-piotrowicz and manuelkroiss
Commit | Description |
---|---|
improve algorithm to balance animation namespaces (#45057) | |
made errors in the animations package tree shakeable (#45004) |
Commit | Description |
---|---|
cleanup URL change listeners when the root view is removed (#44901) |
Commit | Description |
---|---|
chain element start/end instructions (#44994) |
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
Commit | Type | Description |
---|---|---|
0050b01b62 | perf | made errors in the animations package tree shakeable (#45079) |
Commit | Type | Description |
---|---|---|
09f0254bdd | perf | chain element start/end instructions (#44994) |
Commit | Type | Description |
---|---|---|
92cf9fbebe | fix | ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966) |
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