Angular 12

https://github.com/angular/angular

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
fix - b871db57da hardening attribute and property binding rules for elements

Special Thanks

Andrew Kushnir, Joey Perrott and Paul Gschwendtner

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

12.2.15 (2021-12-10)

ngcc

Commit Type Description
b6554d75cd fix correctly resolve UMD dependencies (#44382)

Special Thanks

Alex Rickabaugh and George Kalpakas

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

12.2.13 (2021-11-03)

compiler-cli

Commit Description
fix - 9a89db790f avoid broken references in .d.ts files due to @internal markers (#43965)

core

Commit Description
fix - 8f402c9d06 support InjectFlags argument in NodeInjector.get() (#41592)

Special Thanks

Alan Agius, George Kalpakas, Jochen Kraushaar, Joe Martin (Crowdstaffing), JoostK and vthinkxie

12.2.12 (2021-10-27)

compiler-cli

Commit Description
fix - 112557497c avoid broken references in .d.ts files due to @internal markers (#43527)

ngcc

Commit Description
fix - 067ae54d46 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

12.2.11 (2021-10-20)

compiler

Commit Description
fix - b9c885b960 support i18n interpolated only attribute bindings (#43815)

ngcc

Commit Description
fix - cab21cea7a support alternate wrapper function layout for UMD (#43879)

router

Commit Description
fix - 58c11865ac 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

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

12.2.9 (2021-10-06)

core

Commit Description
fix - b4b441077a handle invalid constructor parameters in partial factory declarations (#43619)

router

Commit Description
fix - 7f6050587d unset attachRef when router-outlet is destroyed to avoid mounting a destroyed component (#43697)

service-worker

Commit Description
fix - c4ecc07838 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

12.2.8 (2021-09-30)

compiler-cli

Commit Description
fix - c1338bf837 correctly interpret token arrays in @Injectable deps (#43226)

language-service

Commit Description
fix - c8f8d7d3b1 provide dom event completions (#43299)

ngcc

Commit Description
fix - 69299f7d4d do not fail for packages which correspond with Object members (#43589)

service-worker

Commit Description
fix - 3cf41354ae 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

12.2.7 (2021-09-22)

common

Commit Description
fix - 2bb4bf1468 titlecase pipe incorrectly handling numbers (#43476)

compiler

Commit Description
fix - 9c8a1f8a71 include leading whitespace in source-spans of i18n messages (#43132)

compiler-cli

Commit Description
fix - defb02f11e handle directives that refer to a namespaced class in a type parameter bound (#43511)

platform-browser

Commit Description
fix - adc7c56ede 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

12.2.6 (2021-09-15)

animations

Commit Description
fix - 141fde1632 emit pure annotations to static property initializers (#43344)

core

Commit Description
fix - ca510c87c5 emit pure annotations to static property initializers (#43344)

router

Commit Description
fix - 4034f252c9 Allow renavigating to failed URLs (#43424)

service-worker

Commit Description
fix - a102b27641 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

12.2.5 (2021-09-08)

router

Commit Description
fix - a0bd6e90f9 add more context to Unhandled Navigation Error (#43291)

Special Thanks:

Alan Agius, Charles Barnes, Enea Jahollari, George Kalpakas, Ikko Ashimine, Paul Gschwendtner, Pete Bacon Darwin, William Sedlacek and dario-piotrowicz

12.2.4 (2021-09-01)

compiler-cli

Commit Description
fix - 8233906be2 Emit type annotations for synthesized decorator fields (#43021)

Special Thanks:

Andrew Scott, Daniel Trevino, George Kalpakas, Joey Perrott, Kristiyan Kostadinov, nickreid and segunb

12.2.3 (2021-08-25)

service-worker

Commit Description
fix - fc7f92159d NPE if onActionClick is undefined (#43210)

Special Thanks:

Daniel Trevino, Erik Slack, George Kalpakas, dario-piotrowicz and shlasouski

12.2.2 (2021-08-18)

animations

Commit Description
fix - bb6555979d add pure annotations to static property initializers (#43064)

core

Commit Description
fix - 738b23347e add pure annotations to static property initializers (#43064)

platform-browser

Commit Description
perf - 535837e617 avoid intermediate arrays in server transition (#43145)

router

Commit Description
fix - 6449590ec8 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

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

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 generating update instructions for ng-template inside alternate namespaces (#41669)
62e3f3279d fix(compiler): non-literal inline templates incorrectly processed in partial compilation (#41583)
dde81ba0cd perf(compiler): reduce amount of generated code for safe accesses and nullish coalescing (#41563)
75cc8133ad feat(compiler): update supported range of node versions (#41544)
e1a2930893 fix(compiler): avoid parsing EmptyExpr with a backwards span (#41581)
ec27bd4ed1 feat(compiler): support nullish coalescing in templates (#41437)

compiler-cli

Commit Description
cd252b99fe fix(compiler-cli): use '' for the source map URL of indirect templates (#41973)
6eafaa7b5e fix(compiler-cli): expose the linker as a Babel plugin (#41918)
35450c78f7 fix(compiler-cli): prefer non-aliased exports in reference emitters (#41866)
b9276eadae fix(compiler-cli): update supported range of node versions to only include LTS versions (#41822)
c3a512a9e9 fix(compiler-cli): match string indexed partial declarations (#41747)
7744e1e673 fix(compiler-cli): allow linker to process minified booleans (#41747)
fe5bf7f53f fix(compiler-cli): autocomplete literal types in templates. (#41456) (#41645)
1b43158af6 fix(compiler-cli): do not error with prepocessing if component has no inline styles (#41602)
b7bd23817e feat(compiler-cli): update supported range of node versions (#41544)
1d12c50f63 fix(compiler-cli): autocomplete literal types in templates. (#41456)
fab1a6468e perf(compiler-cli): cache results of absoluteFromSourceFile (#41475)
c9aa87cec0 fix(compiler-cli): show a more specific error for Ivy NgModules (#41534)
ffea31f433 perf(compiler-cli): allow incremental compilation in the presence of redirected source files (#41448)
7f1651574e fix(compiler-cli): prevent eliding default imports in incremental recompilations (#41557)
3e0fda96b8 fix(compiler-cli): resolve rootDirs to absolute (#41359)
6ba67c6fff feat(compiler-cli): mark ability to use partial compilation mode as stable (#41518)
deacc741e0 fix(compiler-cli): ensure the compiler tracks ts.Programs correctly (#41291)

core

Commit Description
4bc5b4d93b fix(core): global listeners not being bound on non-node host elements (#42014)
a529d4f4f8 fix(core): do not retain dynamically compiled components and modules (#42003)
544e6a5ca1 fix(core): invoke profiler around ngOnDestroy lifecycle hooks (#41969)
e387d22f83 fix(core): AsyncPipe now compatible with RxJS 7 (#41590)
9b4b281c52 fix(core): handle multiple i18n attributes with expression bindings (#41882)
6581a1b48d perf(core): minor improvements to listener instructions (#41807)
af12d8deaa fix(core): update supported range of node versions to only include LTS versions (#41822)
18b33e79d3 perf(core): avoid storing LView in ngContext (#41358)
e66a5fbca6 feat(core): update supported range of node versions (#41544)
f7e391a912 perf(core): optimize getDirectives (#41525)
a07f303708 feat(core): introduce getDirectiveMetadata global debugging utility (#41525)
aa0e54fe97 fix(core): error if DebugRenderer2.destroyNode is called twice in a row (#41565)

elements

Commit Description
2364f7c94a fix(elements): update supported range of node versions to only include LTS versions (#41822)
12fc08bf9c feat(elements): update supported range of node versions (#41544)

forms

Commit Description
a4ebe8656e fix(forms): registerOnValidatorChange should be called for ngModelGroup. (#41971)
ff4f77b0b9 fix(forms): update supported range of node versions to only include LTS versions (#41822)
a0006a6bfb feat(forms): update supported range of node versions (#41544)

language-service

Commit Description
1be5d659a5 fix(language-service): fully de-duplicate reference and rename results (#40523)
a86ca4fe04 feat(language-service): Enable renaming of pipes (#40523)
c3990b4fd4 fix(language-service): update supported range of node versions to only include LTS versions (#41822)
86621bec58 feat(language-service): update supported range of node versions (#41544)
de93a7a4bb fix(language-service): resolve to the pre-compiled style when compiled css url is provided (#41538)
bd34bc9e89 fix(language-service): bound attributes should not break directive matching (#41597)
78236bfdca fix(language-service): use script versions for incremental compilations (#41475)
c7f9516ab9 feat(language-service): implement signature help (#41581)
0f54d6c4a5 fix(language-service): use 'any' instead of failing for inline TCBs (#41513)

localize

Commit Description
992c70df59 fix(localize): relax error to warning for missing target (#41944)
08ca922a68 fix(localize): update supported range of node versions to only include LTS versions (#41822)
590d4dd578 feat(localize): update supported range of node versions (#41544)

platform-browser

Commit Description
96624b71a7 fix(platform-browser): prevent memory leak of style nodes if shadow DOM encapsulation is used (#42005)
8dd382eda5 fix(platform-browser): update supported range of node versions to only include LTS versions (#41822)
ef0d1c3545 feat(platform-browser): update supported range of node versions (#41544)

platform-browser-dynamic

Commit Description
f259c246a6 fix(platform-browser-dynamic): update supported range of node versions to only include LTS versions (#41822)
b714f7b931 feat(platform-browser-dynamic): update supported range of node versions (#41544)

platform-server

Commit Description
1224726c42 fix(platform-server): update supported range of node versions to only include LTS versions (#41822)
c901b4d11f feat(platform-server): update supported range of node versions (#41544)

router

Commit Description
961296adf5 fix(router): update supported range of node versions to only include LTS versions (#41822)
6bceb709df fix(router): Only retrieve stored route when reuse strategy indicates it should reattach (#30263)
a1b2718b92 fix(router): recursively merge empty path matches (#41584)
c30b171d20 feat(router): update supported range of node versions (#41544)
44a7fae00f fix(router): handle new navigations from a NavigationEnd event (#41262)
d28a391385 fix(router): Remove information about attached component when deactivating route (#41381)

service-worker

Commit Description
f3c2abec6c fix(service-worker): update supported range of node versions to only include LTS versions (#41822)
fc597f1db5 feat(service-worker): update supported range of node versions (#41544)

upgrade

Commit Description
7a4414401a fix(upgrade): update supported range of node versions to only include LTS versions (#41822)
98fc4f4b2f fix(upgrade): preserve $interval.flush when ngMocks is being used (#30229)
beafa22de9 feat(upgrade): update supported range of node versions (#41544)

Breaking Changes

Minified UMD bundles are no longer included in the distributed NPM packages.

compiler-cli

Linked libraries no longer generate legacy i18n message ids. Any downstream
application that provides translations for these messages, will need to
migrate their message ids using the localize-migrate command line tool.

core

Angular no longer maintains support for node v10
Previously the ng.getDirectives function threw an error in case a
given DOM node had no Angular context associated with it (for example
if a function was called for a DOM element outside of an Angular app).
This behavior was inconsistent with other debugging utilities under ng
namespace, which handled this situation without raising an exception.
Now calling the ng.getDirectives function for such DOM nodes would
result in an empty array returned from that function.

Special Thanks:

Ajit Singh, Alan Agius, Alan Cohen, Alex Rickabaugh, Amadou Sall, Andrew J Asche, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Ben Lesh, Bendik Skarpnes, Benjamin Kindle, Charles Lyding, Chau Tran, Cosmin Ababei, Daniel Díaz, David Shevitz, Dharmen Shah, Dmitrij Kuba, Dylan Hunn, Eduard Bondarenko, Emily Wenberg, Front-end developer, George Kalpakas, Georgii Dolzhykov, Gopal Jayaraman, Gourav102, Gérôme Grignon, Hugo Mejia, Igor Minar, Jesse Palmer, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Julien Marcou, Kapunahele Wong, Keen Yee Liau, Kirk Larkin, Kristiyan Kostadinov, Lars Gyrup Brink Nielsen, Martin Sikora, Mathias Schäfer, Michael Hladky, Mikhail, Misko Hevery, MrJithil, Nishu Goel, Oluwole Majiyagbe, Paul Gschwendtner, Paul Muriel Biya-Bi, Pete Bacon Darwin, Pierre Portejoie, Renovate Bot, Richard Sithole, Sagar Pandita, Sam Severance, Sumit Arora, Talha Azhar, Teri Glover, Wojciech Okoński, Zach Arend, Zack DeRose, aschaap, cexbrayat, iRealNirmal, iron, jeripeierSBB, mgechev, nirmal bhagwani, pavlenko, profanis, rachid Oussanaa, sovtara, unknown, va-stefanek and wagnermaciel

12.0.1 (2021-05-19)

benchpress

Commit Description
28ee9864a4 fix(benchpress): update the check for start and end events (#42085)

compiler

Commit Description
52c07e403e fix(compiler): unclear lexer error when using private identifier in expressions (#42027)

core

Commit Description
3a46ad96ea fix(core): global listeners not being bound on non-node host elements (#42014)

forms

Commit Description
9b90c03a9f fix(forms): registerOnValidatorChange should be called for ngModelGroup. (#41971)

Special Thanks:

Alex Rickabaugh, Daniel Díaz, David Shevitz, Dylan Hunn, Front-end developer, George Kalpakas, Joey Perrott, Kristiyan Kostadinov, Lars Gyrup Brink Nielsen, MrJithil, Paul Gschwendtner, Renovate Bot, Sam Severance, Sumit Arora, iRealNirmal, iron, mgechev, rachid Oussanaa and wagnermaciel

12.0.0 (2021-05-12)

Bug Fixes

  • animations: ensure consistent transition namespace ordering (#19854) (01cc995)
  • animations: update supported range of node versions to only include LTS versions (#41822) (e918250)
  • animations: cleanup DOM elements when the root view is removed (#41059) (c49b280)
  • animations: allow animations on elements in the shadow DOM (#40134) (dad42c8), closes #25672
  • animations: cleanup DOM elements when the root view is removed (#41001) (a31da48)
  • bazel: update supported range of node versions to only include LTS versions (#41822) (8503246)
  • bazel: update build tooling for latest changes in rules_nodejs (#40710) (696f7bc)
  • bazel: update integration test to use [email protected] (#40710) (34de89a)
  • bazel: update type castings for JSON.parse usage (#40710) (2c90391)
  • benchpress: update type castings for JSON.parse usage (#40710) (e721a5d)
  • common: add right ContentType for boolean values with HttpClient request body(#38924) (#41885) (922a602)
  • common: update supported range of node versions to only include LTS versions (#41822) (f2b6fd8)
  • common: viewport scroller not finding elements inside the shadow DOM (#41644) (c0f5ba3), closes #41470
  • common: temporarily re-export and deprecate XhrFactory (#41393) (7dfa446)
  • common: cleanup location change listeners when the root view is removed (#40867) (38524c4), closes #31546
  • common: allow number or boolean as http params (#40663) (91cdc11), closes #23856
  • common: avoid mutating context object in NgTemplateOutlet (#40360) (d3705b3), closes #24515
  • compiler: preserve @page rules in encapsulated styles (#41915) (3e365ba), closes #26269
  • compiler: strip scoped selectors from @font-face rules (#41815) (2a11cda), closes #41751
  • compiler: update supported range of node versions to only include LTS versions (#41822) (bae8126)
  • compiler: non-literal inline templates incorrectly processed in partial compilation (#41583) (ab257b3)
  • compiler: not generating update instructions for ng-template inside alternate namespaces (#41669) (2bcbbda), closes #41308
  • compiler: avoid parsing EmptyExpr with a backwards span (#41581) (e1a2930)
  • compiler: handle case-sensitive CSS custom properties (#41380) (e112e32), closes #41364
  • compiler: include used components during JIT compilation of partial component declaration (#41353) (ff9470b), closes #41104 #41318
  • compiler: support multiple :host-context() selectors (#40494) (07b7af3), closes #19199
  • compiler: update type castings for JSON.parse usage (#40710) (f728490)
  • compiler-cli: use '' for the source map URL of indirect templates (#41973) (7a4d980), closes #40854
  • compiler-cli: expose the linker as a Babel plugin (#41918) (8fdac8f)
  • compiler-cli: prefer non-aliased exports in reference emitters (#41866) (75bb931), closes #41443 #41277
  • compiler-cli: allow linker to process minified booleans (#41747) (1fb6724), closes #41655
  • compiler-cli: match string indexed partial declarations (#41747) (f885750), closes #41655
  • compiler-cli: update supported range of node versions to only include LTS versions (#41822) (5b463f4)
  • compiler-cli: autocomplete literal types in templates. (#41456) (#41645) (8b2b5ef)
  • compiler-cli: do not error with prepocessing if component has no inline styles (#41602) (a5fe8b9)
  • compiler-cli: ensure the compiler tracks ts.Programs correctly (#41291) (deacc74)
  • compiler-cli: prevent eliding default imports in incremental recompilations (#41557) (7f16515), closes #41377
  • compiler-cli: resolve rootDirs to absolute (#41359) (3e0fda9), closes #36290
  • compiler-cli: add useInlining option to type check config (#41043) (09aefd2), closes #40963
  • compiler-cli: readConfiguration existing options should override options in tsconfig (#40694) (b7c4d07)
  • compiler-cli: extend angularCompilerOptions in tsconfig from node (#40694) (5eb1954), closes #36715
  • compiler-cli: update ngcc integration tests for latest changes in rules_nodejs (#40710) (d7f5755)
  • compiler-cli: update type castings for JSON.parse usage (#40710) (b75d7cb)
  • core: do not retain dynamically compiled components and modules (#42003) (1449c5c), closes #19997
  • core: invoke profiler around ngOnDestroy lifecycle hooks (#41969) (e9ddc57)
  • core: AsyncPipe now compatible with RxJS 7 (#41590) (9759bca)
  • core: handle multiple i18n attributes with expression bindings (#41882) (73c6c64), closes #41869
  • core: update supported range of node versions to only include LTS versions (#41822) (f9c1f08)
  • core: detect synthesized constructors that have been downleveled using TS 4.2 (#41305) (274dc15), closes #41298
  • core: Switch emitDistinctChangesOnlyDefaultValue to true (#41121) (7096246)
  • core: remove duplicated EMPTY_OBJ constant (#41066) (bf158e7)
  • core: remove duplicated EMPTY_ARRAY constant (#40991) (e12d9de)
  • core: allow EmbeddedViewRef context to be updated (#40360) (a3e1719), closes #24515
  • core: make DefaultIterableDiffer keep the order of duplicates (#23941) (a826926), closes #23815
  • core: NgZone coaleascing options should trigger onStable correctly (#40540) (22f9e45)
  • elements: update supported range of node versions to only include LTS versions (#41822) (4f5d094)
  • elements: update type castings for JSON.parse usage (#40710) (efd4149)
  • forms: update supported range of node versions to only include LTS versions (#41822) (dc975ba)
  • http: complete the request on timeout (#39807) (61a0b6d), closes #26453
  • http: emit error on XMLHttpRequest abort event (#40767) (3897265), closes #22324
  • language-service: update supported range of node versions to only include LTS versions (#41822) (9b6198c)
  • language-service: use script versions for incremental compilations (#41475) (78236bf)
  • language-service: Only provide Angular property completions in templates (#41278) (0226a11)
  • language-service: Add plugin option to force strictTemplates (#41062) (e9e7c33)
  • language-service: use single entry point for Ivy and View Engine (#40967) (e986a97)
  • localize: relax error to warning for missing target (#41944) (35ceed2), closes #21690
  • localize: update supported range of node versions to only include LTS versions (#41822) (658ed1f)
  • localize: update type castings for JSON.parse usage (#40710) (4b469c9)
  • ngcc: detect synthesized constructors that have been downleveled using TS 4.2 (#41305) (8d3da56), closes #41298
  • platform-browser: prevent memory leak of style nodes if shadow DOM encapsulation is used (#42005) (d555555), closes #36655
  • platform-browser: update supported range of node versions to only include LTS versions (#41822) (ea05cfd)
  • platform-browser: configure XhrFactory to use BrowserXhr (#41313) (e0028e5), closes #41311
  • platform-browser: update type castings for JSON.parse usage (#40710) (7ecfd2d)
  • platform-browser-dynamic: update supported range of node versions to only include LTS versions (#41822) (bc45029)
  • platform-server: update supported range of node versions to only include LTS versions (#41822) (4b9d4fa)
  • router: update supported range of node versions to only include LTS versions (#41822) (0067edd)
  • router: Only retrieve stored route when reuse strategy indicates it should reattach (#30263) (a4ff071), closes #23162
  • router: recursively merge empty path matches (#41584) (1179dc8), closes #41481
  • router: fragment can be null (#37336) (b555160), closes #23894 #34197
  • router: update type castings for JSON.parse usage (#40710) (350dada)
  • service-worker: update supported range of node versions to only include LTS versions (#41822) (6b823d7)
  • service-worker: update type castings for JSON.parse usage (#40710) (4f7ff96)
  • upgrade: preserve $interval.flush when ngMocks is being used (#30229) (87dc851)
  • upgrade: update supported range of node versions to only include LTS versions (#41822) (10c4523)

Build System

Features

  • animations: update supported range of node versions (#41544) (547363a)
  • animations: add support for disabling animations through BrowserAnimationsModule.withConfig (#40731) (29d8a0a)
  • bazel: update supported range of node versions (#41544) (d583d92)
  • common: update supported range of node versions (#41544) (e0250e5)
  • common: add historyGo method to Location service (#38890) (e05a6f3)
  • common: support ICU standard "stand alone day of week" with DatePipe (#40766) (c56ecab), closes #26922
  • common: implement appendAll() method on HttpParams (#20930) (575a2d1), closes #20798
  • compiler: support nullish coalescing in templates (#41437) (ec27bd4), closes #36528
  • compiler: update supported range of node versions (#41544) (75cc813)
  • compiler: emit @PURE or @pureOrBreakMyCode annotations in the generated code (#41096) (9c21028)
  • compiler-cli: mark ability to use partial compilation mode as stable (#41518) (6ba67c6), closes #41496
  • compiler-cli: update supported range of node versions (#41544) (b7bd238)
  • compiler-cli: support transforming component style resources (#41307) (1de04b1)
  • compiler-cli: support producing Closure-specific PURE annotations (#41021) (fbc9df1)
  • core: introduce getDirectiveMetadata global debugging utility (#41525) (a07f303)
  • core: update supported range of node versions (#41544) (e66a5fb)
  • core: support forwardRef in providedIn of Injectable declaration (#41426) (f7c294e), closes #41205
  • core: add migration for XhrFactory import (#41313) (95ff5ec)
  • core: drop support for TypeScript 4.0 and 4.1 (#41158) (fa04894)
  • core: support TypeScript 4.2 (#41158) (59ef409)
  • core: manually annotate de-sugarred core tree-shakable providers with @pureOrBreakMyCode (#41096) (03d47d5)
  • core: more precise type for APP_INITIALIZER token (#40986) (ca721c2), closes #40729
  • core: drop support for zone.js 0.10.x (#40823) (aaf9b31), closes angular/angular-cli#20034
  • core: support APP_INITIALIZER work with observable (#33222) (ca17ac5), closes #15088
  • elements: update supported range of node versions (#41544) (12fc08b)
  • forms: update supported range of node versions (#41544) (a0006a6)
  • forms: add emitEvent option for AbstractControl-based class methods (#31031) (4ec045e), closes #29662
  • forms: introduce min and max validators (#39063) (8fb83ea), closes #16352
  • http: introduce HttpContext request context (#25751) (1644d64)
  • http: expose a list of human-readable http status codes (#23548) (6fe3a1d), closes #23543
  • language-service: implement signature help (#41581) (c7f9516)
  • language-service: update supported range of node versions (#41544) (86621be)
  • language-service: add perf tracing to LanguageService (#41319) (90f85da)
  • language-service: add command for getting components for a template file (#40655) (5cde4ad)
  • language-service: Add diagnostics to suggest turning on strict mode (#40423) (ecae75f)
  • language-service: Implement getRenameInfo (#40439) (4e8198d)
  • language-service: initial implementation for findRenameLocations (#40140) (9a5ac47)
  • language-service: view template typecheck block (#39974) (d482f5c)
  • localize: update supported range of node versions (#41544) (590d4dd)
  • localize: add scripts to migrate away from legacy message IDs (#41026) (1735430)
  • ngcc: support __read helper as used by TypeScript 4.2 (#41201) (66e9970)
  • ngcc: support __spreadArray helper as used by TypeScript 4.2 (#41201) (7b1214e) #40394
  • platform-browser: update supported range of node versions (#41544) (ef0d1c3)
  • platform-browser-dynamic: update supported range of node versions (#41544) (b714f7b)
  • platform-server: update supported range of node versions (#41544) (c901b4d)
  • platform-server: allow shimming the global env sooner (#40559) (43ecf8a), closes #24551 #39950 #39950
  • router: update supported range of node versions (#41544) (c30b171)
  • router: add migration for ActivatedRouteSnapshot.fragment (#41092) (190fa07), closes #37336
  • router: Add more fine-tuned control in routerLinkActiveOptions (#40303) (6c05c80), closes #13205
  • router: Allow for custom router outlet implementations (#40827) (a82fddf)
  • service-worker: update supported range of node versions (#41544) (fc597f1)
  • upgrade: update supported range of node versions (#41544) (beafa22)

Performance Improvements

  • common: remove unused methods from DomAdapter (#41102) (3c66b10)
  • compiler: reduce amount of generated code for safe accesses and nullish coalescing (#41563) (9a3b82f), closes #41437 #41491
  • compiler-cli: allow incremental compilation in the presence of redirected source files (#41448) (ffea31f)
  • compiler-cli: cache results of absoluteFromSourceFile (#41475) (fab1a64)
  • core: minor improvements to listener instructions (#41807) (9346d61)
  • core: avoid storing LView in ngContext (#41358) (990067a), closes #41047
  • core: optimize getDirectives (#41525) (f7e391a)

BREAKING CHANGES

  • Minified UMD bundles are no longer included in the distributed NPM packages.
  • animations: DOM elements are now correctly removed when the root view is removed.
    If you are using SSR and use the app's HTML for rendering, you will need
    to ensure that you save the HTML to a variable before destorying the
    app.
    It is also possible that tests could be accidentally relying on the old behavior by
    trying to find an element that was not removed in a previous test. If
    this is the case, the failing tests should be updated to ensure they
    have proper setup code which initializes elements they rely on.
  • common: Methods of the PlatformLocation class, namely onPopState and onHashChange,
    used to return void. Now those methods return functions that can be called
    to remove event handlers.
  • common: The methods of the HttpParams class now accept string | number | boolean
    instead of string for the value of a parameter.
    If you extended this class in your application,
    you'll have to update the signatures of your methods to reflect these changes.
  • compiler-cli: Linked libraries no longer generate legacy i18n message ids. Any downstream
    application that provides translations for these messages, will need to
    migrate their message ids using the localize-migrate command line tool.
  • core: Angular no longer maintains support for node v10
  • core: Previously the ng.getDirectives function threw an error in case a
    given DOM node had no Angular context associated with it (for example
    if a function was called for a DOM element outside of an Angular app).
    This behavior was inconsistent with other debugging utilities under ng
    namespace, which handled this situation without raising an exception.
    Now calling the ng.getDirectives function for such DOM nodes would
    result in an empty array returned from that function.
  • core: Switching default of emitDistinctChangesOnlyDefaultValue
    which changes the default behavior and may cause some applications which
    rely on the incorrect behavior to fail.

emitDistinctChangesOnly flag has also been deprecated and will be
removed in a future major release.

The previous implementation would fire changes QueryList.changes.subscribe
whenever the QueryList was recomputed. This resulted in an artificially
high number of change notifications, as it is possible that recomputing
QueryList results in the same list. When the QueryList gets recomputed
is an implementation detail, and it should not be the thing that determines
how often change event should fire.

Unfortunately, fixing the behavior outright caused too many existing
applications to fail. For this reason, Angular considers this fix a
breaking fix and has introduced a flag in @ContentChildren and
@ViewChildren, that controls the behavior.

export class QueryCompWithStrictChangeEmitParent {
  @ContentChildren('foo', {
    // This option is the new default with this change.
    emitDistinctChangesOnly: true,
  })
  foos!: QueryList<any>;
}

For backward compatibility before v12
emitDistinctChangesOnlyDefaultValue was set to false. This change
changes the default to true.

  • core: The type of the APP_INITIALIZER token has been changed to more accurately
    reflect the types of return values that are handled by Angular. Previously,
    each initializer callback was typed to return any, this is now
    Promise<unknown> | Observable<unknown> | void. In the unlikely event that
    your application uses the Injector.get or TestBed.inject API to inject
    the APP_INITIALIZER token, you may need to update the code to account for
    the stricter type.

Additionally, TypeScript may report the TS2742 error if the APP_INITIALIZER
token is used in an expression of which its inferred type has to be emitted
into a .d.ts file. To workaround this, an explicit type annotation is needed,
which would typically be Provider or Provider[].

  • core: Minimum supported zone.js version is 0.11.4

  • forms: The emitEvent option was added to the following FormArray and FormGroup methods:

  • FormGroup.addControl

  • FormGroup.removeControl

  • FormGroup.setControl

  • FormArray.push

  • FormArray.insert

  • FormArray.removeAt

  • FormArray.setControl

  • FormArray.clear

If your app has custom classes that extend FormArray or FormGroup classes and override the
above-mentioned methods, you may need to update your implementation to take the new options into
account and make sure that overrides are compatible from a types perspective.

  • forms: Previously min and max attributes defined on the <input type="number">
    were ignored by Forms module. Now presence of these attributes would
    trigger min/max validation logic (in case formControl, formControlName
    or ngModel directives are also present on a given input) and
    corresponding form control status would reflect that.
  • platform-browser: XhrFactory has been moved from @angular/common/http to @angular/common.

Before

import {XhrFactory} from '@angular/common/http';

After

import {XhrFactory} from '@angular/common';
  • router: Strict null checks will report on fragment potentially being null.
    Migration path: add null check.
  • router: The type of the RouterLinkActive.routerLinkActiveOptions input was
    expanded to allow more fine-tuned control. Code that previously read
    this property may need to be updated to account for the new type.

12.0.0-rc.3 (2021-05-10)

compiler

Commit Description
3e365ba81e fix(compiler): preserve @page rules in encapsulated styles (#41915)

compiler-cli

Commit Description
7a4d9805ea fix(compiler-cli): use '' for the source map URL of indirect templates (#41973)

core

Commit Description
1449c5c8ff fix(core): do not retain dynamically compiled components and modules (#42003)
e9ddc57f94 fix(core): invoke profiler around ngOnDestroy lifecycle hooks (#41969)

platform-browser

Commit Description
d5555558d0 fix(platform-browser): prevent memory leak of style nodes if shadow DOM encapsulation is used (#42005)

Special Thanks:

Ajit Singh, Alan Agius, Alex Rickabaugh, Andrew J Asche, George Kalpakas, Georgii Dolzhykov, Igor Minar, Joey Perrott, JoostK, Julien Marcou, Kapunahele Wong, Kristiyan Kostadinov, Paul Gschwendtner, Pete Bacon Darwin, Renovate Bot, Richard Sithole, Teri Glover, iRealNirmal, mgechev, profanis and va-stefanek