Angular 14

https://github.com/angular/angular

14.3.0 (2023-03-13)

common

Commit Description
feat - 37bbc61cfe Backport NgOptimizedImage to Angular 14.

Special Thanks

Alex Castle, Joey Perrott and Paul Gschwendtner

14.2.12 (2022-11-21)

Breaking Changes

core

  • Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.

core

Commit Description
fix - 54814c8e9b hardening attribute and property binding rules for elements (#48028)

Special Thanks

Andrew Kushnir

14.2.11 (2022-11-16)

router

Commit Description
fix - aef353c143 Ensure renavigating in component init works with enabledBlocking (#48066)

Special Thanks

Alan Agius, Andrew Scott and Mujo Osmanovic

14.2.10 (2022-11-09)

core

Commit Description
fix - a4312e1be5 add zone.js version 0.12.x as a valid peer dependency (#48002)

router

Commit Description
fix - db867fee77 fix redirectTo on named outlets - resolves #33783 (#47927)

Special Thanks

Alan Agius, Albert Szekely, Andrew Scott, Doug Parker, Kristiyan Kostadinov, Markus Eckstein, Peter Scriven and abergquist

14.2.9 (2022-11-03)

platform-browser

Commit Description
perf - 92d28bdd99 resolve memory leak when using animations with shadow DOM (#47903)

platform-server

Commit Description
fix - d2d9bbf5ce call onSerialize when state is empty (#47888)

Special Thanks

Alan Agius, Kristiyan Kostadinov, Virginia Dooley and mgechev

14.2.8 (2022-10-26)

Special Thanks

Andrew Scott, Balaji, Paul Gschwendtner, WD Snoeijer, onrails and vyom1611

14.2.7 (2022-10-19)

Special Thanks

Bob Watson, Charles Barnes, Joey Perrott, Virginia Dooley, WD Snoeijer, abergquist and urugator

14.2.6 (2022-10-12)

compiler-cli

Commit Description
fix - 3fd176a905 add missing period to error message (#47744)
perf - c3821f5ab5 minimize filesystem calls when generating shims (#47682)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Charles Lyding, Joey Perrott, Joshua Morony, Mathew Berg, Paul Gschwendtner, Peter Dickten, Renan Ferro, Sri Ram, WD Snoeijer, markostanimirovic and Álvaro Martínez

14.2.5 (2022-10-05)

Special Thanks

Alexander Wiebe, Ciprian Sauliuc, Dmytro Mezhenskyi, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Ole M, Paul Gschwendtner, Pawel Kozlowski and mgechev

14.2.4 (2022-09-28)

compiler-cli

Commit Description
perf - a4b66fe1e5 cache source file for reporting type-checking diagnostics (#47508)

core

Commit Description
fix - 2c46b5ab24 correctly check for typeof of undefined in ngDevMode check (#47480)

Special Thanks

Alan Agius, Ashley Hunter, Doug Parker, Jessica Janiuk, JoostK, Kristiyan Kostadinov, Rokas Brazdžionis and Simona Cotin

14.2.3 (2022-09-21)

animations

Commit Description
fix - bba2dae812 make sure that the useAnimation function delay is applied (#47468)

Special Thanks

AleksanderBodurri, Andrew Kushnir, Andrew Scott, Bob Watson, George Kalpakas, Joey Perrott, Mauro Mattos, dario-piotrowicz, fabioemoutinho and famzila

14.2.2 (2022-09-14)

animations

Commit Description
fix - 937e6c5b3d make sure that the animation function delay is applied (#47285)

common

Commit Description
fix - c9bdf9bab1 rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362) (#47396)

core

Commit Description
fix - a3e1303f04 imply @Optional flag when a default value is provided (#47242)

forms

Commit Description
fix - 80c66a1e57 don't prevent default behavior for forms with method="dialog" (#47308)

Special Thanks

Abhishek Rawat, Andrew Kushnir, Benjamin Chanudet, Bob Watson, George Kalpakas, Ikko Ashimine, Kristiyan Kostadinov, Marc Wrobel, Mariia Subkov, Pawel Kozlowski, Sebastian, abergquist, dario-piotrowicz, onrails and vyom1611

14.2.1 (2022-09-07)

common

Commit Description
fix - c0d7ac9ec2 improve formatting of image warnings (#47299)
fix - 1875ce520a use DOCUMENT token to query for preconnect links (#47353)

compiler

Commit Description
fix - 0e35829580 avoid errors for inputs with Object-builtin names (#47220)

service-worker

Commit Description
fix - 6091786696 include headers in requests for assets (#47260)
fix - 28d33505fd only consider GET requests as navigation requests (#47263)

Special Thanks

Aristeidis Bampakos, Asaf M, Bingo's Code, Bob Watson, Daniel Ostrovsky, George Kalpakas, Giovanni Alberto Rivas, Jeremy Elbourn, Jobayer Hossain, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Maina Wycliffe, Sabareesh Kappagantu, Simona Cotin, Sonu Sindhu, Yann Provoost, abergquist, jaybell and vyom1611

14.2.0 (2022-08-25)

animations

Commit Description
fix - b96e571897 fix stagger timing not handling params (#47208)

common

Commit Description
feat - b380fdd59e add a density cap for image srcsets (#47082)
feat - 7ce497e5bc add built-in Imgix loader (#47082)
feat - bff870db61 add cloudflare loader (#47082)
feat - 86e77a5d55 add Image directive skeleton (#45627) (#47082)
feat - 0566205a02 Add image lazy loading and fetchpriority (#47082)
feat - 4e952ba216 add loaders for cloudinary & imagekit (#47082)
feat - e854a8cdde add loading attr to NgOptimizedImage (#47082)
feat - 8d3701cb4c add warnings re: image distortion (#47082)
feat - d5f7da2120 define public API surface for NgOptimizedImage directive (#47082)
feat - d3c3426aa4 detect LCP images in NgOptimizedImage and assert if priority is set (#47082)
feat - 451b85ca17 explain why width/height is required (#47082)
feat - 586274fe65 provide an ability to exclude origins from preconnect checks in NgOptimizedImage (#47082)
feat - 57f3386e5b support custom srcset attributes in NgOptimizedImage (#47082)
feat - 7baf9a46cd verify that priority images have preconnect links (#47082)
feat - f81765b333 warn if rendered size is much smaller than intrinsic (#47082)
fix - e2ab99b95e allow null/undefined to be passed to ngClass input (#39280) (#46906)
fix - bedf537951 allow null/undefined to be passed to ngStyle input (#47069)
fix - f9511bf6e8 avoid interacting with a destroyed injector (#47243)
fix - dc29e21b14 consider density descriptors with multiple digits as valid (#47230)
fix - 801daf82d1 detect data: and blob: inputs in NgOptimizedImage directive (#47082)
fix - fff8056e7f fix formatting on oversized image error (#47188) (#47232)
fix - 1ca2ce19ab remove default for image width (#47082)
fix - c5db867ddc remove duplicate deepForEach (#47189)
fix - 1cf43deb18 sanitize rawSrc and rawSrcset values in NgOptimizedImage directive (#47082)
fix - d71dfe931f set bound width and height onto host element (#47082)
fix - 32caa8b669 support density descriptors with 2+ decimals (#47197) (#47232)
fix - ae4405f0bf throw if srcset is used with rawSrc (#47082)
perf - 0c8eb8bc82 monitor LCP only for images without priority attribute (#47082)

compiler-cli

Commit Description
feat - ea89677c12 support more recent version of tsickle (#47018)

core

Commit Description
feat - d1e83e1b30 add createComponent function (#46685)
feat - 10becab70e add reflectComponentType function (#46685)
feat - 4b377d3a6d introduce createApplication API (#46475)
feat - 31429eaccc support TypeScript 4.8 (#47038)
fix - 796840209c align TestBed interfaces and implementation (#46635)

forms

Commit Description
feat - 426af91a42 add FormBuilder.record() method (#46485)
fix - b302797de4 Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034)

language-service

Commit Description
feat - 598b72bd05 support fix the component missing member (#46764)

platform-browser

Commit Description
feat - 07606e3181 add isEmpty method to the TransferState class (#46915)

platform-server

Commit Description
feat - 2b4d7f6733 support document reference in render functions (#47032)

router

Commit Description
feat - 0abb67af59 allow guards and resolvers to be plain functions (#46684)
feat - 75df404467 Create APIs for using Router without RouterModule (#47010)
feat - 10289f1f6e expose resolved route title (#46826)
feat - 8600732b09 Expose the default matcher for Routes used by the Router (#46913)
feat - 422323cee0 improve typings for RouterLink boolean inputs (#47101)
feat - 26ea97688c Make router directives standalone (#46758)
fix - 2a43beec15 Fix route recognition behavior with some versions of rxjs (#47098)

service-worker

Commit Description
feat - 383090858c support sendRequest as a notificationclick action (#46912)
fix - 3f548610dd export NoNewVersionDetectedEvent (#47044)
fix - 482b6119c2 update golden index.md (#47044)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Cédric Exbrayat, Dylan Hunn, Emmanuel Roux, FatalMerlin, George Kalpakas, Ilia Mirkin, Jan Kuehle, Jeremy Elbourn, Jessica Janiuk, JiaLiPassion, Kalbarczyk, Kara Erickson, Katie Hempenius, Kristiyan Kostadinov, Merlin, Paul Gschwendtner, Pawel Kozlowski, Tristan Sprößer, Victor Porof, angular-robot[bot], dario-piotrowicz, ivanwonder and vyom

14.2.0-rc.0 (2022-08-17)

common

Commit Description
feat - b380fdd59e add a density cap for image srcsets (#47082)
feat - 7ce497e5bc add built-in Imgix loader (#47082)
feat - bff870db61 add cloudflare loader (#47082)
feat - 86e77a5d55 add Image directive skeleton (#45627) (#47082)
feat - 0566205a02 Add image lazy loading and fetchpriority (#47082)
feat - 4e952ba216 add loaders for cloudinary & imagekit (#47082)
feat - e854a8cdde add loading attr to NgOptimizedImage (#47082)
feat - 8d3701cb4c add warnings re: image distortion (#47082)
feat - d5f7da2120 define public API surface for NgOptimizedImage directive (#47082)
feat - d3c3426aa4 detect LCP images in NgOptimizedImage and assert if priority is set (#47082)
feat - 451b85ca17 explain why width/height is required (#47082)
feat - 586274fe65 provide an ability to exclude origins from preconnect checks in NgOptimizedImage (#47082)
feat - 57f3386e5b support custom srcset attributes in NgOptimizedImage (#47082)
feat - 7baf9a46cd verify that priority images have preconnect links (#47082)
feat - f81765b333 warn if rendered size is much smaller than intrinsic (#47082)
fix - 801daf82d1 detect data: and blob: inputs in NgOptimizedImage directive (#47082)
fix - 1ca2ce19ab remove default for image width (#47082)
fix - 1cf43deb18 sanitize rawSrc and rawSrcset values in NgOptimizedImage directive (#47082)
fix - d71dfe931f set bound width and height onto host element (#47082)
fix - ae4405f0bf throw if srcset is used with rawSrc (#47082)
perf - 0c8eb8bc82 monitor LCP only for images without priority attribute (#47082)

compiler

Commit Description
fix - dc52cef26b infinite loop in parser assignment expression with invalid left-hand expression (#47151)

core

Commit Description
feat - 31429eaccc support TypeScript 4.8 (#47038)

forms

Commit Description
fix - b302797de4 Correctly infer FormBuilder types involving [value, validators] shorthand in more cases. (#47034)

router

Commit Description
feat - 75df404467 Create APIs for using Router without RouterModule (#47010)
feat - 422323cee0 improve typings for RouterLink boolean inputs (#47101)

Special Thanks

AlirezaEbrahimkhani, Alma Eyre, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, Emmanuel Roux, George Kalpakas, Kalbarczyk, Kara Erickson, Katie Hempenius, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich and Sonu Kapoor

14.1.3 (2022-08-17)

compiler

Commit Description
fix - 0583227708 infinite loop in parser assignment expression with invalid left-hand expression (#47151)

Special Thanks

AlirezaEbrahimkhani, Alma Eyre, Andrew Scott, Bob Watson, George Kalpakas, Kalbarczyk, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Roman Matusevich and Sonu Kapoor

14.2.0-next.1 (2022-08-10)

common

Commit Description
fix - bedf537951 allow null/undefined to be passed to ngStyle input (#47069)

compiler-cli

Commit Description
feat - ea89677c12 support more recent version of tsickle (#47018)

core

Commit Description
fix - dbed2cf079 check if transplanted views are attached to change detector (#46974)

platform-server

Commit Description
feat - 2b4d7f6733 support document reference in render functions (#47032)

router

Commit Description
feat - 0abb67af59 allow guards and resolvers to be plain functions (#46684)
fix - 2a43beec15 Fix route recognition behavior with some versions of rxjs (#47098)

Special Thanks

4javier, Andrew Kushnir, Andrew Scott, AntonioCardenas, Bob Watson, Bruno Barbosa, Eduardo Speroni, Edward, George Kalpakas, Ilia Mirkin, Jan Melcher, Jessica Janiuk, JiaLiPassion, Kristiyan Kostadinov, Mladen Jakovljević, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich, Victor Porof, Vovch, ashide2729, ileil and onrails

14.1.2 (2022-08-10)

core

Commit Description
fix - 5ff715c549 check if transplanted views are attached to change detector (#46974)

router

Commit Description
fix - 439d77e852 Fix route recognition behavior with some versions of rxjs (#47098) (#47112)

Special Thanks

4javier, Andrew Kushnir, Andrew Scott, AntonioCardenas, Bob Watson, Bruno Barbosa, Eduardo Speroni, Edward, George Kalpakas, Jan Melcher, Kristiyan Kostadinov, Mladen Jakovljević, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich, Vovch, ashide2729, ileil and onrails

14.2.0-next.0 (2022-08-03)

common

Commit Description
fix - e2ab99b95e allow null/undefined to be passed to ngClass input (#39280) (#46906)

core

Commit Description
feat - d1e83e1b30 add createComponent function (#46685)
feat - 10becab70e add reflectComponentType function (#46685)
feat - 4b377d3a6d introduce createApplication API (#46475)
fix - 796840209c align TestBed interfaces and implementation (#46635)

forms

Commit Description
feat - 426af91a42 add FormBuilder.record() method (#46485)

language-service

Commit Description
feat - 598b72bd05 support fix the component missing member (#46764)

platform-browser

Commit Description
feat - 07606e3181 add isEmpty method to the TransferState class (#46915)

router

Commit Description
feat - 10289f1f6e expose resolved route title (#46826)
feat - 8600732b09 Expose the default matcher for Routes used by the Router (#46913)
feat - 26ea97688c Make router directives standalone (#46758)

service-worker

Commit Description
feat - 383090858c support sendRequest as a notificationclick action (#46912)

Special Thanks

Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Emmanuel Roux, George Kalpakas, Ilia Mirkin, Jessica Janiuk, Paul Gschwendtner, Pawel Kozlowski, Tristan Sprößer, angular-robot[bot], dario-piotrowicz and ivanwonder

14.1.1 (2022-08-03)

core

Commit Description
fix - 3606917732 improve the missing control flow directive message (#46903)

router

Commit Description
fix - 79825d3f10 Do not call preload method when not necessary (#47007)
fix - 05f3f7445a Use correct return type for provideRoutes function (#46941)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Quinn, Andrew Scott, Aristeidis Bampakos, Asaf M, Bob Watson, Cédric Exbrayat, Durairaj Subramaniam, George Kalpakas, Ivaylo Kirov, J Rob Gant, Kristiyan Kostadinov, Marek Hám, Paul Gschwendtner, Roman Matusevich and Simona Cotin

14.1.0 (2022-07-20)

Deprecations

core

  • The createNgModuleRef is deprecated in favor of newly added createNgModule one.
  • The bit field signature of inject() has been deprecated, in favor of the
    new options object. Correspondingly, InjectFlags is deprecated as well.

animations

Commit Description
feat - 55308f2df5 add provideAnimations() and provideNoopAnimations() functions (#46793)

common

Commit Description
feat - 4a2e7335b1 make the CommonModule pipes standalone (#46401)
feat - a7597dd080 make the CommonModule directives standalone (#46469)

compiler

Commit Description
feat - 33ce3883a5 Add extended diagnostic to warn when missing let on ngForOf (#46683)
feat - 6f11a58040 Add extended diagnostic to warn when text attributes are intended to be bindings (#46161)
feat - 9e836c232f warn when style suffixes are used with attribute bindings (#46651)

compiler-cli

Commit Description
feat - 93c65e7b14 add extended diagnostic for non-nullable optional chains (#46686)
feat - 131d029da1 detect missing control flow directive imports in standalone components (#46146)
fix - 6b8e60c06a improve the missingControlFlowDirective message (#46846)

core

Commit Description
feat - e8e8e5f171 add createComponent function
feat - b5153814af add reflectComponentType function
feat - 96c6139c9a add ability to set inputs on ComponentRef (#46641)
feat - a6d5fe202c alias createNgModuleRef as createNgModule (#46789)
feat - 71e606d3c3 expose EnvironmentInjector on ApplicationRef (#46665)
feat - 19e6d9ccd3 import AsyncStackTaggingZone if available (#46693)
feat - a7a14df5f8 introduce EnvironmentInjector.runInContext API (#46653)
feat - fa52b6e906 options object to supersede bit flags for inject() (#46649)
feat - af20112222 support the descendants option for ContentChild queries (#46638)
fix - 945a3ad359 Fix runInContext for NgModuleRef injector (#46877)
fix - bb7c80477b make parent injector argument required in createEnvironmentInjector (#46397)

http

Commit Description
feat - 82acbf919b improve error message for nullish header (#46059)

router

Commit Description
feat - 53ca936366 Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877)
feat - de058bba99 Add CanMatch guard to control whether a Route should match (#46021)
feat - 6c1357dd7d Add stable cancelation code to NavigationCancel event (#46675)
feat - a4ce273e50 Add the target RouterStateSnapshot to NavigationError (#46731)
fix - abe3759e24 allow to return UrlTree from CanMatchFn (#46455)
fix - e8c7dd10e9 Ensure APP_INITIALIZER of enabledBlocking option completes (#46026)
fix - ce20ed067f Ensure Route injector is created before running CanMatch guards (#46394)
fix - 6a7b818d94 Ensure target RouterStateSnapshot is defined in NavigationError (#46842)
fix - f94c6f433d Expose CanMatchFn as public API (#46394)
fix - e8ae0fe3e9 Fix cancellation code for canLoad rejections (#46752)

upgrade

Commit Description
feat - e9cb0454dc more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214)

Special Thanks

AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Jessica Janiuk, JiaLiPassion, Joey Perrott, John Vandenberg, JoostK, Keith Li, Or'el Ben-Ya'ir, Paul Gschwendtner, Pawel Kozlowski, SyedAhm3r, arturovt, mariu, markostanimirovic and mgechev

14.0.7 (2022-07-20)

animations

Commit Description
fix - 5bdbb6285b make sure falsy values are added to _globalTimelineStyles (#46863)

compiler

Commit Description
fix - 41253f9c46 inputs/outputs incorrectly parsed in jit mode (#46813)

core

Commit Description
fix - 4e77c7fbf3 do not invoke jasmine done callback multiple times with waitForAsync

Special Thanks

Andrew Kushnir, Andrew Scott, Bob Watson, Cédric Exbrayat, Doug Parker, George Kalpakas, Jessica Janiuk, Kristiyan Kostadinov, Paul Gschwendtner, acvi, dario-piotrowicz, jnizet and piyush132000

14.1.0-rc.0 (2022-07-13)

Deprecations

core

  • The createNgModuleRef is deprecated in favor of newly added createNgModule one.

animations

Commit Description
feat - 55308f2df5 add provideAnimations() and provideNoopAnimations() functions (#46793)

compiler

Commit Description
feat - 33ce3883a5 Add extended diagnostic to warn when missing let on ngForOf (#46683)
feat - 9e836c232f warn when style suffixes are used with attribute bindings (#46651)

compiler-cli

Commit Description
feat - 93c65e7b14 add extended diagnostic for non-nullable optional chains (#46686)
fix - 93d17ee888 only consider used pipes for inline type-check requirement (#46807)

core

Commit Description
feat - a6d5fe202c alias createNgModuleRef as createNgModule (#46789)
feat - 71e606d3c3 expose EnvironmentInjector on ApplicationRef (#46665)
feat - 19e6d9ccd3 import AsyncStackTaggingZone if available (#46693)

forms

Commit Description
fix - c0ca3fc71a expose ControlConfig in public API (#46594)
fix - e9b5dac9ec Move all remaining errors in Forms to use RuntimeErrorCode. (#46654)

localize

Commit Description
fix - 392c56749a add --project option to ng-add schematic (#46664)

router

Commit Description
feat - a4ce273e50 Add the target RouterStateSnapshot to NavigationError (#46731)
fix - e8ae0fe3e9 Fix cancellation code for canLoad rejections (#46752)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, George Kalpakas, Ivaylo Kirov, Jessica Janiuk, JiaLiPassion, John Vandenberg, JoostK, Joshua VanAllen, Lukas Matta, Marcin Wosinek, Nicolas Molina Monroy, Or'el Ben-Ya'ir, Paul Gschwendtner, Pawel Kozlowski, SoulsMark, Uday Sony, dario-piotrowicz, markostanimirovic and zhysky

14.0.6 (2022-07-13)

compiler-cli

Commit Description
fix - 99697dae66 only consider used pipes for inline type-check requirement (#46807)

forms

Commit Description
fix - 4f469cbef3 expose ControlConfig in public API (#46594)
fix - e8c8b695f2 Move all remaining errors in Forms to use RuntimeErrorCode. (#46654)

localize

Commit Description
fix - 14863acb1a add --project option to ng-add schematic (#46664)

Special Thanks

Alan Agius, Andrew Scott, Bob Watson, Dylan Hunn, George Kalpakas, Ivaylo Kirov, Jessica Janiuk, JoostK, Joshua VanAllen, Lukas Matta, Marcin Wosinek, Nicolas Molina Monroy, Paul Gschwendtner, SoulsMark, Uday Sony, dario-piotrowicz, markostanimirovic and zhysky

14.1.0-next.4 (2022-07-06)

Deprecations

core

  • The bit field signature of inject() has been deprecated, in favor of the
    new options object. Correspondingly, InjectFlags is deprecated as well.

compiler

Commit Description
feat - 6f11a58040 Add extended diagnostic to warn when text attributes are intended to be bindings (#46161)

core

Commit Description
feat - 96c6139c9a add ability to set inputs on ComponentRef (#46641)
feat - a7a14df5f8 introduce EnvironmentInjector.runInContext API (#46653)
feat - fa52b6e906 options object to supersede bit flags for inject() (#46649)
feat - af20112222 support the descendants option for ContentChild queries (#46638)

router

Commit Description
feat - 6c1357dd7d Add stable cancelation code to NavigationCancel event (#46675)
fix - e8c7dd10e9 Ensure APP_INITIALIZER of enabledBlocking option completes (#46026)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Scott, Aristeidis Bampakos, Bob Watson, George Kalpakas, Paul Gschwendtner and Pawel Kozlowski

14.0.5 (2022-07-06)

router

Commit Description
fix - a3bd65e2b8 Ensure APP_INITIALIZER of enabledBlocking option completes (#46634)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, George Kalpakas, Paul Gschwendtner and Pawel Kozlowski

14.1.0-next.3 (2022-06-29)

animations

Commit Description
fix - 4eb1ca11f0 cleanup DOM elements when the root view is removed (#45143)
fix - b417370383 enable shadowElements to leave when their parent does (#46459)

common

Commit Description
feat - 4a2e7335b1 make the CommonModule pipes standalone (#46401)
feat - a7597dd080 make the CommonModule directives standalone (#46469)
fix - 1c39aace0e handle CSS custom properties in NgStyle (#46451)

core

Commit Description
fix - 8b6f4215a3 trigger ApplicationRef.destroy when Platform is destroyed (#46497)
fix - 606d94299a Update ngfor error code to be negative (#46555)
fix - f86e0948f8 Updates error to use RuntimeError code (#46526)

forms

Commit Description
fix - 0a5c8c0bc4 Convert existing reactive errors to use RuntimeErrorCode. (#46560)
fix - f6a096e3d4 Update a Forms validator error to use RuntimeError (#46537)

router

Commit Description
fix - ee39cf62bc Ensure that new RouterOutlet instances work after old ones are destroyed (#46554)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bezael, Chad Ramos, Chellappan, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Jeremy Meiss, Jessica Janiuk, Joey Perrott, KMathy, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ramesh Thiruchelvam, Vaibhav Kumar, arturovt, dario-piotrowicz and renovate[bot]

14.0.4 (2022-06-29)

animations

Commit Description
fix - 51be9bbe29 cleanup DOM elements when the root view is removed (#45143)
fix - 999aca86c8 enable shadowElements to leave when their parent does (#46459)

common

Commit Description
fix - 42aed6b13e handle CSS custom properties in NgStyle (#46451)

core

Commit Description
fix - 1e7f22f00a trigger ApplicationRef.destroy when Platform is destroyed (#46497)
fix - 8bde2dbc71 Update ngfor error code to be negative (#46555)
fix - 57e8fc00eb Updates error to use RuntimeError code (#46526)

forms

Commit Description
fix - 74a26d870e Convert existing reactive errors to use RuntimeErrorCode. (#46560)
fix - 747872212d Update a Forms validator error to use RuntimeError (#46537)

router

Commit Description
fix - d6fac9e914 Ensure that new RouterOutlet instances work after old ones are destroyed (#46554)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bezael, Chad Ramos, Chellappan, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Jeremy Meiss, Jessica Janiuk, Joey Perrott, KMathy, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ramesh Thiruchelvam, Vaibhav Kumar, arturovt, dario-piotrowicz and renovate[bot]

14.1.0-next.2 (2022-06-22)

animations

Commit Description
fix - 342effeb7d reset the start and done fns on player reset (#46364)

core

Commit Description
fix - ddd6d66203 deduplicate imports of standalone components in JIT compiler (#46439)
fix - 3d8787c961 handle NgModules with standalone pipes in TestBed correctly (#46407)
fix - bb7c80477b make parent injector argument required in createEnvironmentInjector (#46397)

http

Commit Description
feat - 82acbf919b improve error message for nullish header (#46059)

platform-server

Commit Description
fix - 08d3db232c invalid style attribute being generated for null values (#46433)

router

Commit Description
fix - abe3759e24 allow to return UrlTree from CanMatchFn (#46455)
fix - ce20ed067f Ensure Route injector is created before running CanMatch guards (#46394)
fix - f94c6f433d Expose CanMatchFn as public API (#46394)

Special Thanks

4javier, Aakash, Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Dany Paredes, Derek Cormier, Dmitrij Kuba, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ramesh Thiruchelvam, arturovt, behrooz bozorg chami, dario-piotrowicz, markostanimirovic, renovate[bot] and web-dave

14.0.3 (2022-06-22)

animations

Commit Description
fix - 3dd7bb3f8f reset the start and done fns on player reset (#46364)

core

Commit Description
fix - c086653655 deduplicate imports of standalone components in JIT compiler (#46439)
fix - 5d3b97e1f8 handle NgModules with standalone pipes in TestBed correctly (#46407)

platform-server

Commit Description
fix - 6ad7b40a6f invalid style attribute being generated for null values (#46433)

Special Thanks

4javier, Aakash, Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Dany Paredes, Derek Cormier, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ramesh Thiruchelvam, behrooz bozorg chami, dario-piotrowicz, markostanimirovic, renovate[bot] and web-dave

14.1.0-next.1 (2022-06-15)

common

Commit Description
fix - 8b9c32d4dc allow null in ngComponentOutlet (#46280)

compiler-cli

Commit Description
feat - 131d029da1 detect missing control flow directive imports in standalone components (#46146)
fix - 04acc6b14d don't emit empty providers array (#46301)
fix - f35f4751b5 use inline type-check blocks for components outside rootDir (#46096)

core

Commit Description
fix - b1a3dec58d Resolve forwardRef declarations for jit (#46334)

router

Commit Description
feat - de058bba99 Add CanMatch guard to control whether a Route should match (#46021)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Badawi7, Daniel Schmitz, Derek Cormier, Jessica Janiuk, JiaLiPassion, JoostK, Kevin Davila, Kristiyan Kostadinov, Paul Draper, Paul Gschwendtner, Tom Eustace, Totati, Younes Jaaidi, alefra, dario-piotrowicz, markostanimirovic, mgechev, piyush132000, sten-bone and vivekkoya

14.0.2 (2022-06-15)

common

Commit Description
fix - ef5cba3df7 allow null in ngComponentOutlet (#46280)

compiler-cli

Commit Description
fix - 8ecfd71fd7 don't emit empty providers array (#46301)
fix - b92c1a6ada use inline type-check blocks for components outside rootDir (#46096)

core

Commit Description
fix - 3fd8948b4a Resolve forwardRef declarations for jit (#46334)

Special Thanks

Alex Rickabaugh, Andrew Scott, Badawi7, Daniel Schmitz, Derek Cormier, JoostK, Kevin Davila, Kristiyan Kostadinov, Paul Draper, Paul Gschwendtner, Tom Eustace, Totati, Younes Jaaidi, alefra, dario-piotrowicz, markostanimirovic, mgechev, piyush132000, sten-bone and vivekkoya

14.1.0-next.0 (2022-06-08)

router

Commit Description
feat - 53ca936366 Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877)

upgrade

Commit Description
feat - e9cb0454dc more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214)

Special Thanks

AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Jessica Janiuk, Joey Perrott, Keith Li, SyedAhm3r, mariu and mgechev

14.0.1 (2022-06-08)

bazel

Commit Description
fix - b00d237c0e update API extractor version (#46259)
perf - 9a0a7bac21 reduce input files for ng_package rollup and type bundle actions (#46187)

forms

Commit Description
fix - dde0b7f4b3 allow FormBuilder.group(...) to accept optional fields. (#46253)

Special Thanks

Adrien Crivelli, Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dylan Hunn, Fabrizio Fallico, George Kalpakas, Jelle Bruisten, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Paul Gschwendtner, Phalgun Vaddepalli, San Leen, dario-piotrowicz, mgechev and wellWINeo

14.0.0 (2022-06-02)

Breaking Changes

animations

  • The AnimationDriver.getParentElement method has become required, so any
    implementors of this interface are now required to provide an implementation
    for this method. This breakage is unlikely to affect application developers,
    as AnimationDriver is not expected to be implemented in user code.

common

  • Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
    Location does not depend on PlatformLocation anymore.

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in 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:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

core

  • Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.

  • TypeScript versions older than 4.6 are no longer supported.

  • Forms [email] input coercion

    Forms [email] input value will be considered as true if it is defined with any value rather
    than false and 'false'.

  • Since Ivy, TestBed doesn't use AOT summaries. The aotSummaries fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The aotSummaries fields were completely unused, so you can just drop them from the TestBed APIs usage.

forms

  • Forms classes accept a generic.

    Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.

  • objects with a length key set to zero will no longer validate as empty.

    This is technically a breaking change, since objects with a key length and 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.

http

  • Queries including + will now actually query for + instead of space.
    Most workarounds involving custom codecs will be unaffected.
    Possible server-side workarounds will need to be undone.

  • JSONP will throw an error when headers are set on a reques

    JSONP does not support headers being set on requests. Before when
    a request was sent to a JSONP backend that had headers set the headers
    were ignored. The JSONP backend will now throw an error if it
    receives a request that has any headers set. Any uses of JSONP
    on requests with headers set will need to remove the headers
    to avoid the error.

platform-browser

  • This change may cause a breaking change in unit tests that are implicitly depending on a specific
    number and sequence of change detections in order for their assertions to pass.

  • This may break invalid calls to TransferState methods.

    This tightens parameter types of TransferState usage, and is a minor breaking change which may reveal existing problematic calls.

router

  • The type of Route.pathMatch is now more strict. Places that use
    pathMatch will likely need to be updated to have an explicit
    Route/Routes type so that TypeScript does not infer the type as
    string.

  • When returning a Promise from the
    LoadChildrenCallback, the possible type is now restricted to
    Type<any>|NgModuleFactory<any> rather 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.

    • The type of 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.

zone.js

  • in TaskTrackingZoneSpec track a periodic task until it is cancelled

    The breaking change is scoped only to the plugin
    zone.js/plugins/task-tracking. If you used TaskTrackingZoneSpec and
    checked the pending macroTasks e.g. using (this.ngZone as any)._inner ._parent._properties.TaskTrackingZone.getTasksFor('macroTask'), then
    its behavior slightly changed for periodic macrotasks. For example,
    previously the setInterval macrotask was no longer tracked after its
    callback was executed for the first time. Now it's tracked until
    the task is explicitly cancelled, e.g with clearInterval(id).

    fixes 45350

Deprecations

common

  • The 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.

forms

  • The initialValueIsDefault option has been deprecated and replaced with the otherwise-identical nonNullable option, for the sake of naming consistency.
  • It is now deprecated to provide both AbstractControlOptions and an async validators argument to a FormControl. Previously, the async validators would just be silently dropped, resulting in a probably buggy forms. Now, the constructor call is deprecated, and Angular will print a warning in devmode.

router

  • The resolver argument of 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.

animations

Commit Description
feat - a6fa37bc6e make validateStyleProperty check dev-mode only (#45570)
feat - 79d334b138 provide warnings for non-animatable CSS properties (#45212)
fix - f8dc660605 allow animations with unsupported CSS properties (#44729)
fix - 2a75754ee8 apply default params when resolved value is null or undefined (#45339)
fix - e46b379204 implement missing transition delay (#44799)
perf - 5c7c56bc85 improve algorithm to balance animation namespaces (#45057)
perf - 4c778cdb28 made errors in the animations package tree shakeable (#45004)
perf - 7a81481fb2 Remove generic objects in favor of Maps (#44482)
perf - 6642e3c8fd remove no longer needed CssKeyframes classes (#44903)
refactor - 59559fdbac make AnimationDriver.getParentElement required (#45114)

bazel

Commit Description
feat - 636909fba7 allow for generated package.json files in ng_package (#45470)
feat - 28e835b4bb report error when dependency does not provide JS sources in ng_package (#45470)
feat - 68597bb0ca speed up dev-turnaround by bundling types only when packaging (#45405)
fix - f8a1ea0c11 do not error if files part of srcs are outside of package (#45622)
fix - 4b2e98d55d remove unnecessary file extractions from ng_package (#45470)
fix - d48e0ccc01 speed up d.ts bundling by configuring worker (#45900)
perf - 21a04ef5be use allowedInputs to avoid fs.stat (#46069)

common

Commit Description
feat - 31d7c3bd71 add getState method to LocationStrategy interface (#45648)
feat - c89cf63059 support NgModule as an input to the NgComponentOutlet (#44815)
feat - 38c03a2035 support years greater than 9999 (#43622)
fix - bedb257afc cleanup URL change listeners when the root view is removed (#44901)
fix - 10691c626b properly cast http param values to strings (#42643)
perf - 05d50b849b make NgLocalization token tree-shakable (#45118)

compiler

Commit Description
fix - bb8d7091c6 exclude empty styles from emitted metadata (#45459)
fix - 4d6a1d6722 scope css keyframes in emulated view encapsulation (#42608)
fix - f03e313f24 scope css keyframes in emulated view encapsulation (#42608)

compiler-cli

Commit Description
feat - 9cf14ff03d exclude abstract classes from strictInjectionParameters requirement (#44615)
feat - 0072eb48ba initial implementation of standalone components (#44812)
feat - 2142ffd295 propagate standalone flag to runtime (#44973)
feat - 6f653e05f9 standalone types imported into NgModule scopes (#44973)
feat - 752ddbc165 Support template binding to protected component members (#45823)
fix - 3d13343975 better error messages for NgModule structural issues (#44973)
fix - 046dad1a8d fix issue with incremental tracking of APIs for pipes (#45672)
fix - 27b4af7240 full side-effectful registration of NgModules with ids (#45024)
fix - 32c625d027 handle forwardRef in imports of standalone component (#45869)
fix - 06050ac2b4 handle inline type-check blocks in nullish coalescing extended check (#45454)
fix - a524a50361 handle standalone components with cycles (#46029)
fix - 724e88e042 preserve forwardRef for component scopes (#46139)
fix - 9cfea3d522 report invalid imports in standalone components during resolve phase (#45827)
fix - c0778b4dfc Support resolve animation name from the DTS (#45107)
fix - f2e5234e07 update unknown tag error for aot standalone components (#45919)
fix - 35f20afcac use existing imports for standalone dependencies (#46029)
perf - 8155428ba6 ignore the module.id anti-pattern for NgModule ids (#45024)

core

Commit Description
feat - 174ce7dd13 add ApplicationRef.destroy method (#45624)
feat - 5771b18a98 add the bootstrapApplication function (#45674)
feat - 69018c9f42 allow for injector to be specified when creating an embedded view (#45156)
feat - 94c949a60a allow for injector to be specified when creating an embedded view (#45156)
feat - e702cafcf2 allow to throw on unknown elements in tests (#45479)
feat - 6662a97c61 allow to throw on unknown elements in tests (#45479)
feat - a6675925b0 allow to throw on unknown properties in tests (#45853)
feat - 6eaaefd22e drop support for Node.js 12 (#45286)
feat - c9d566ce4b drop support for TypeScript 4.4 and 4.5 (#45394)
feat - b568a5e708 implement importProvidersFrom function (#45626)
feat - d5a6cd1111 implement EnvironmentInjector with adapter to NgModuleRef (#45626)
feat - 5a10fc4f82 implement standalone directives, components, and pipes (#45687)
feat - e461f716d4 move ANIMATION_MODULE_TYPE injection token into core (#44970)
feat - 94bba76a4a support TypeScript 4.6 (#45190)
feat - 29039fcdbc support TypeScript 4.7 (#45749)
feat - 225e4f2dbe triggerEventHandler accept optional eventObj (#45279)
feat - 401dec46eb update TestBed to recognize Standalone Components (#45809)
fix - 35653ce337 add more details to the MISSING_INJECTION_CONTEXT error (#46166)
fix - d36fa111eb avoid Closure Compiler error in restoreView (#45445)
fix - 0bc77f4cab better error message when unknown property is present (#46147)
fix - f3eb7d9ecb Ensure the StandaloneService is retained after closure minification (#45783)
fix - 701405fa71 handle AOT-compiled standalone components in TestBed correctly (#46052)
fix - ddce357d1d improve TestBed declarations standalone error message (#45999)
fix - ba9f30c9a6 include component name into unknown element/property error message (#46160)
fix - 9fa6f5a552 incorrectly inserting elements inside template element (#43429)
fix - d5719c2e0f input coercion (#42803)
fix - be161bef79 memory leak in event listeners inside embedded views (#43075)
fix - fa755b2a54 prevent BrowserModule providers from being loaded twice (#45826)
fix - 3172b4cc99 produce proper error message for unknown props on <ng-template>s (#46068)
fix - 4f1a813596 restore NgModule state correctly after TestBed overrides (#46049)
fix - 3f7ecec59b set correct context for inject() for component ctors (#45991)
fix - 4e413d9240 support nested arrays of providers in EnvironmentInjector (#45789)
fix - fde4942cdf throw if standalone components are present in @NgModule.bootstrap (#45825)
fix - 560188bf12 update unknown property error to account for standalone components in AOT (#46159)
fix - df339d8abf update unknown tag error for jit standalone components (#45920)
fix - aafac7228f verify standalone component imports in JiT (#45777)
perf - e9317aee71 allow checkNoChanges mode to be tree-shaken in production (#45913)
perf - 071c8af8ba avoid storing LView in ngContext (#45051)
perf - a96c4827c4 make Compiler, ApplicationRef and ApplicationInitStatus tree-shakable (#45102)
perf - 45d98e7ca5 make IterableDiffers and KeyValueDiffers tree-shakable (#45094)
perf - 1e60fe0a3e make LOCALE_ID and other tokens from ApplicationModule tree-shakable (#45102)
perf - 88f1168506 only track LViews that are referenced in ngContext (#45172)
refactor - 9add714b13 remove deprecated aotSummaries fields in TestBed config (#45487)

devtools tabs

Commit Description
fix - 6c284ef32e stop scroll occuring at tabs level

forms

Commit Description
feat - 2dbdebc646 Add FormBuilder.nonNullable. (#45852)
feat - e0a2248b32 Add a FormRecord type. (#45607)
feat - 7ee121f595 Add untyped versions of the model classes for use in migration. (#45205)
feat - 89d299105a Implement strict types for the Angular Forms package. (#43834)
feat - f490c2de4e support negative indices in FormArray methods. (#44848)
fix - 39be06037d Add a nonNullable option to FormControl for consistency.
fix - 4332897baa Add UntypedFormBuilder (#45268)
fix - 5d13e58aed Allow NonNullableFormBuilder to be injected. (#45904)
fix - 8dd3f82f94 Correct empty validator to handle objects with a property length: 0. (#33729)
fix - ff3f5a8d12 Fix a typing bug in FormBuilder. (#45684)
fix - fe0e42a996 Make UntypedFormBuilder assignable to FormBuilder, and vice versa. (#45421)
fix - b36dec6b5b not picking up disabled state if group is swapped out and disabled (#43499)
fix - 9f6fa5b746 Prevent FormBuilder from distributing unions to control types. (#45942)
fix - aa7b857be8 Property renaming safe code (#45271)
fix - cae1e44608 Update the typed forms migration to use FormArray instead of FormArray<T[]>. (#44933)
fix - d336ba96d9 Update the typed forms migration. (#45281)
fix - 018550ed50 Value and RawValue should be part of the public API. (#45978)
fix - 2e96cede3e Warn on FormControls that are constructed with both options and asyncValidators.

http

Commit Description
fix - 76a9a24cdc encode + signs in query params as %2B (angular#11058) (#45111)
fix - d43c0e973f Throw error when headers are supplied in JSONP request (#45210)

language-service

Commit Description
feat - 9d4af65e34 Provide plugin to delegate rename requests to Angular (#44696)
fix - 3ae133c69e Fix detection of Angular for v14+ projects (#45998)

localize

Commit Description
fix - a50e2da64a ensure transitively loaded compiler code is tree-shakable (#45405)

migrations

Commit Description
feat - d56a537196 Add migration to add explicit Route/Routes type (#45084)

ngcc

Commit Description
fix - 74a2e2e2ec cope with packages following APF v14+ (#45833)

platform-browser

Commit Description
fix - a01bcb8e7e do not run change detection when loading Hammer (#44921)
fix - b32647dc68 Make transfer state key typesafe. (#23020)
fix - c7bf75dd5e remove obsolete shim for Map comparison in Jasmine (#45521)
perf - 23c4c9601e avoid including Testability by default in bootstrapApplication (#45885)

platform-server

Commit Description
feat - dff5586d52 implement renderApplication function (#45785)
fix - 22c71be94c update renderApplication to move appId to options (#45844)

router

Commit Description
feat - f4fd1a8262 Add EnvironmentInjector to RouterOutlet.activateWith (#45597)
feat - 910de8bc33 Add Route.title with a configurable TitleStrategy (#43307)
feat - 4e0957a4e1 Add ability to specify providers on a Route (#45673)
feat - dea8c86cd5 add ariaCurrentWhenActive input to RouterLinkActive directive (#45167)
feat - 41e2a68e30 add type properties to all router events (#44189)
feat - 4962a4a332 Allow loadChildren to return a Route array (#45700)
feat - 791bd31424 set stricter type for Route.title (#44939)
feat - 50004c143b Support lazy loading standalone components with loadComponent (#45705)
fix - 7fd416d060 Fix type of Route.pathMatch to be more accurate (#45176)
fix - 1c11a57155 merge interited resolved data and static data (#45276)
fix - f8f3ab377b Remove any from LoadChildrenCallback type (#45524)
fix - d4fc12fa19 Remove deprecated initialNavigation option (#45729)
fix - 989e840cce Remove unused string type for ActivatedRoute.component (#45625)
fix - 64f837d2c0 Update Navigation#initialUrl to match documentation and reality (#43863)
fix - 96fd29c6d2 validate lazy loaded configs (#45526)
perf - f13295f3a3 cancel the navigation instantly if at least one resolver doesn't emit any value (#45621)
refactor - 1d2f5c1101 deprecate no longer needed resolver fields (#45597)
refactor - 7b367d9d90 Remove unnecessary setTimeout in UrlTree redirects (#45735)
refactor - c9679760b2 take only the first emitted value of every resolver to make it consistent with guards (#44573)

service-worker

Commit Description
feat - ec0a0e0669 add cacheOpaqueResponses option for data-groups (#44723)
feat - bd04fbc05b emit a notification when the service worker is already up to date after check (#45216)

Special Thanks

Adrian Kunz, Alan Agius, AleksanderBodurri, Alex Rickabaugh, AlirezaEbrahimkhani, Amir Rustamzadeh, Andrew Kushnir, Andrew Scott, Chabbey François, Charles Lyding, Cédric Exbrayat, Daan De Smedt, David Schmidt, Derek Cormier, Dmitrij Kuba, Doug Parker, Dylan Hunn, Emma Twersky, George Kalpakas, George Looshch, Jan Kuehle, Jessica Janiuk, JiaLiPassion, JimMorrison723, Joe Martin (Crowdstaffing), Joey Perrott, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Leosvel Pérez Espinosa, Maddie Klein, Mark Whitfeld, Martin Sikora, Michael-Doner, Michal Materowski, Minko Gechev, Paul Gschwendtner, Pawel Kozlowski, Payam Shahidi, Pusztai Tibor, Ricardo Mattiazzi Baumgartner, Roy Dorombozi, Ruslan Lekhman, Samuel Littley, Sergej Grilborzer, Sumit Arora, Tobias Speicher, Virginia Dooley, Zack Elliott, alirezaghey, ananyahs96, arturovt, cexbrayat, dario-piotrowicz, ivanwonder, kamikopi, markostanimirovic, markwhitfeld, mgechev, renovate[bot], twerske and zverbeta

14.0.0-rc.3 (2022-05-31)

compiler-cli

Commit Description
fix - 724e88e042 preserve forwardRef for component scopes (#46139)

core

Commit Description
fix - 35653ce337 add more details to the MISSING_INJECTION_CONTEXT error (#46166)
fix - 0bc77f4cab better error message when unknown property is present (#46147)
fix - ba9f30c9a6 include component name into unknown element/property error message (#46160)
fix - 560188bf12 update unknown property error to account for standalone components in AOT (#46159)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Billy Lando, George Kalpakas, Ian Gregory, Matt Shaffer, Paul Gschwendtner, Pawel Kozlowski, Rune Andersen Hartvig, dario-piotrowicz and mgechev

14.0.0-rc.2 (2022-05-25)

Deprecations

forms

  • The initialValueIsDefault option has been deprecated and replaced with the otherwise-identical nonNullable option, for the sake of naming consistency.
  • It is now deprecated to provide both AbstractControlOptions and an async validators argument to a FormControl. Previously, the async validators would just be silently dropped, resulting in a probably buggy forms. Now, the constructor call is deprecated, and Angular will print a warning in devmode.

bazel

Commit Description
perf - 21a04ef5be use allowedInputs to avoid fs.stat (#46069)

compiler-cli

Commit Description
fix - f2e5234e07 update unknown tag error for aot standalone components (#45919)

core

Commit Description
fix - 701405fa71 handle AOT-compiled standalone components in TestBed correctly (#46052)
fix - ddce357d1d improve TestBed declarations standalone error message (#45999)
fix - 3172b4cc99 produce proper error message for unknown props on <ng-template>s (#46068)
fix - 4f1a813596 restore NgModule state correctly after TestBed overrides (#46049)
fix - df339d8abf update unknown tag error for jit standalone components (#45920)

forms

Commit Description
fix - 39be06037d Add a nonNullable option to FormControl for consistency.
fix - 2e96cede3e Warn on FormControls that are constructed with both options and asyncValidators.

Special Thanks

A. J. Javier, Alex Rickabaugh, Andrew Kushnir, Aristeidis Bampakos, David Schmidt, Doug Parker, Dylan Hunn, George Kalpakas, J Rob Gant, Jan Kuehle, Jerome Kruse, Joey Perrott, JoostK, Kristiyan Kostadinov, Nathan Nontell, Paul Gschwendtner, Pawel Kozlowski, Roopesh Chinnakampalli, Thomas Mair, Tom Raithel, dario-piotrowicz and mgechev

14.0.0-rc.1 (2022-05-18)

compiler-cli

Commit Description
fix - a524a50361 handle standalone components with cycles (#46029)
fix - 35f20afcac use existing imports for standalone dependencies (#46029)

core

Commit Description
fix - 3f7ecec59b set correct context for inject() for component ctors (#45991)

forms

Commit Description
fix - 018550ed50 Value and RawValue should be part of the public API. (#45978)

language-service

Commit Description
fix - 3ae133c69e Fix detection of Angular for v14+ projects (#45998)
fix - 9cd8e50848 Prevent TSServer from removing templates from project (#45965)

Special Thanks

4javier, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Dylan Hunn, Evan Lee, George Kalpakas, Joey Perrott, Kristiyan Kostadinov, Pavan Kumar Jadda, Roy Dorombozi, Virginia Dooley, celinetunc, ivanwonder and mariu

14.0.0-rc.0 (2022-05-11)

bazel

Commit Description
fix - d48e0ccc01 speed up d.ts bundling by configuring worker (#45900)

core

Commit Description
perf - e9317aee71 allow checkNoChanges mode to be tree-shaken in production (#45913)

forms

Commit Description
fix - 5d13e58aed Allow NonNullableFormBuilder to be injected. (#45904)
fix - 9f6fa5b746 Prevent FormBuilder from distributing unions to control types. (#45942)

language-service

Commit Description
fix - 13fad9febe Add resource files as roots to their associated projects (#45601)

ngcc

Commit Description
fix - 74a2e2e2ec cope with packages following APF v14+ (#45833)

platform-browser

Commit Description
perf - 23c4c9601e avoid including Testability by default in bootstrapApplication (#45885)

Special Thanks

AleksanderBodurri, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Dylan Hunn, George Kalpakas, JayMartMedia, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Ted.chang, Thomas Mair, Will 保哥, dario-piotrowicz, mgechev and ᚷᛁᛟᚱᚷᛁ ᛒᚨᛚᚨᚲᚻᚨᛞᛉᛖ

14.0.0-next.16 (2022-05-04)

Breaking Changes

router

  • initialNavigation: 'enabled' was deprecated in v11 and is replaced by
    initialNavigation: 'enabledBlocking'.

common

Commit Description
fix - 10691c626b properly cast http param values to strings (#42643)

compiler

Commit Description
fix - bb8d7091c6 exclude empty styles from emitted metadata (#45459)

compiler-cli

Commit Description
feat - 9cf14ff03d exclude abstract classes from strictInjectionParameters requirement (#44615)
feat - 752ddbc165 Support template binding to protected component members (#45823)
fix - 32c625d027 handle forwardRef in imports of standalone component (#45869)
fix - 9cfea3d522 report invalid imports in standalone components during resolve phase (#45827)

core

Commit Description
feat - e702cafcf2 allow to throw on unknown elements in tests (#45479)
feat - 6662a97c61 allow to throw on unknown elements in tests (#45479)
feat - a6675925b0 allow to throw on unknown properties in tests (#45853)
feat - 29039fcdbc support TypeScript 4.7 (#45749)
feat - 401dec46eb update TestBed to recognize Standalone Components (#45809)
fix - f3eb7d9ecb Ensure the StandaloneService is retained after closure minification (#45783)
fix - fa755b2a54 prevent BrowserModule providers from being loaded twice (#45826)
fix - 4e413d9240 support nested arrays of providers in EnvironmentInjector (#45789)
fix - fde4942cdf throw if standalone components are present in @NgModule.bootstrap (#45825)
fix - aafac7228f verify standalone component imports in JiT (#45777)

forms

Commit Description
feat - 2dbdebc646 Add FormBuilder.nonNullable. (#45852)

platform-server

Commit Description
feat - dff5586d52 implement renderApplication function (#45785)
fix - 22c71be94c update renderApplication to move appId to options (#45844)

router

Commit Description
feat - 41e2a68e30 add type properties to all router events (#44189)
fix - d4fc12fa19 Remove deprecated initialNavigation option (#45729)

Special Thanks

AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Cédric Exbrayat, Dylan Hunn, George Kalpakas, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Ryan Day, Zack Elliott, cexbrayat and dario-piotrowicz

14.0.0-next.15 (2022-04-27)

Breaking Changes

common

  • Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
    Location does not depend on PlatformLocation anymore.

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

router

  • 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.

bazel

Commit Description
feat - 68597bb0ca speed up dev-turnaround by bundling types only when packaging (#45405)
fix - 970a3b5c70 add this_is_bazel marker (#45728)

common

Commit Description
feat - 31d7c3bd71 add getState method to LocationStrategy interface (#45648)

compiler

Commit Description
fix - 4d6a1d6722 scope css keyframes in emulated view encapsulation (#42608)

core

Commit Description
feat - 5771b18a98 add the bootstrapApplication function (#45674)
feat - 5a10fc4f82 implement standalone directives, components, and pipes (#45687)

localize

Commit Description
fix - a50e2da64a ensure transitively loaded compiler code is tree-shakable (#45405)

router

Commit Description
feat - dea8c86cd5 add ariaCurrentWhenActive input to RouterLinkActive directive (#45167)
feat - 4962a4a332 Allow loadChildren to return a Route array (#45700)
feat - 50004c143b Support lazy loading standalone components with loadComponent (#45705)
refactor - 7b367d9d90 Remove unnecessary setTimeout in UrlTree redirects (#45735)

Special Thanks

Alex Rickabaugh, Andrew Kushnir, Andrew Scott, George Kalpakas, Joey Perrott, Michal Materowski, Paul Gschwendtner, Pawel Kozlowski, Sumit Arora and dario-piotrowicz

14.0.0-next.14 (2022-04-20)

Breaking Changes

http

  • Queries including + will now actually query for + instead of space.
    Most workarounds involving custom codecs will be unaffected.
    Possible server-side workarounds will need to be undone.

router

  • The type of component 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.

Deprecations

router

  • The 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.

bazel

Commit Description
fix - f8a1ea0c11 do not error if files part of srcs are outside of package (#45622)

compiler-cli

Commit Description
fix - 046dad1a8d fix issue with incremental tracking of APIs for pipes (#45672)

core

Commit Description
feat - 174ce7dd13 add ApplicationRef.destroy method (#45624)
feat - b568a5e708 implement importProvidersFrom function (#45626)
feat - d5a6cd1111 implement EnvironmentInjector with adapter to NgModuleRef (#45626)
fix - 57f8ab2ed8 better error message when directive extends a component (#45658)
fix - c6e0e3f6d3 improve multiple components match error (#45645)

forms

Commit Description
feat - e0a2248b32 Add a FormRecord type. (#45607)
fix - ff3f5a8d12 Fix a typing bug in FormBuilder. (#45684)

http

Commit Description
fix - 76a9a24cdc encode + signs in query params as %2B (angular#11058) (#45111)

language-service

Commit Description
fix - f57e46c538 two-way binding completion should not remove the trailing quote (#45582)

router

Commit Description
feat - f4fd1a8262 Add EnvironmentInjector to RouterOutlet.activateWith (#45597)
feat - 4e0957a4e1 Add ability to specify providers on a Route (#45673)
fix - 989e840cce Remove unused string type for ActivatedRoute.component (#45625)
fix - 96fd29c6d2 validate lazy loaded configs (#45526)
perf - f13295f3a3 cancel the navigation instantly if at least one resolver doesn't emit any value (#45621)
refactor - 1d2f5c1101 deprecate no longer needed resolver fields (#45597)

Special Thanks

Adrian Kunz, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Dmitrij Kuba, Doug Parker, Dylan Hunn, George Kalpakas, Ilya Marchik, Jeremy Elbourn, Kristiyan Kostadinov, Louis Gombert, Mangalraj, Marko Kaznovac, Paul Gschwendtner, Saurabh Kamble, dario-piotrowicz and ivanwonder

14.0.0-next.13 (2022-04-13)

Breaking Changes

core

  • Since Ivy, TestBed doesn't use AOT summaries. The aotSummaries fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The aotSummaries fields were completely unused, so you can just drop them from the TestBed APIs usage.

compiler

Commit Description
fix - 598b759d33 avoid errors with extremely long instruction chains (#45574)

core

Commit Description
refactor - 9add714b13 remove deprecated aotSummaries fields in TestBed config (#45487)

Special Thanks

4javier, Andrew Kushnir, Andrew Scott, Dylan Hunn, Jason Hendee, Jessica Janiuk, Kristiyan Kostadinov, Michael-Doner, Michal Materowski and Virginia Dooley

14.0.0-next.12 (2022-04-12)

Breaking Changes

forms

  • Forms classes accept a generic.

    Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.

router

  • When returning a Promise from the
    LoadChildrenCallback, the possible type is now restricted to
    Type<any>|NgModuleFactory<any> rather than any.

animations

Commit Description
feat - a6fa37bc6e make validateStyleProperty check dev-mode only (#45570)

bazel

Commit Description
feat - 636909fba7 allow for generated package.json files in ng_package (#45470)
feat - 28e835b4bb report error when dependency does not provide JS sources in ng_package (#45470)
fix - 4b2e98d55d remove unnecessary file extractions from ng_package (#45470)

forms

Commit Description
feat - 89d299105a Implement strict types for the Angular Forms package. (#43834)

platform-browser

Commit Description
fix - c7bf75dd5e remove obsolete shim for Map comparison in Jasmine (#45521)

router

Commit Description
fix - f8f3ab377b Remove any from LoadChildrenCallback type (#45524)

Special Thanks

Andrew Scott, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Hossein Mousavi, Jessica Janiuk, Joe Martin (Crowdstaffing), Joey Perrott, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Michael-Doner, Michal Materowski, Paul Gschwendtner, Samuel Littley, Sumit Arora and dario-piotrowicz

14.0.0-next.11 (2022-04-06)

animations

Commit Description
fix - 29d3891782 handle structured AnimateTimings (#31107)

migrations

Commit Description
feat - d56a537196 Add migration to add explicit Route/Routes type (#45084)

router

Commit Description
fix - 1c11a57155 merge interited resolved data and static data (#45276)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Chabbey François, Christoph Guttandin, Cédric Exbrayat, Dylan Hunn, George Kalpakas, Martin Sikora, mgechev and piyush132000

14.0.0-next.10 (2022-03-30)

Breaking Changes

compiler

  • Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:

    @keyframes foo { ... }

    will become:

    @keyframes host-my-cmp_foo { ... }

    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.

    The recommended solutions in this case are to either:

    • change the component's view encapsulation to the None or ShadowDom
    • define keyframes rules in global stylesheets (e.g styles.css)
    • define keyframes rules programmatically in code.

http

  • JSONP will throw an error when headers are set on a reques

    JSONP does not support headers being set on requests. Before when
    a request was sent to a JSONP backend that had headers set the headers
    were ignored. The JSONP backend will now throw an error if it
    receives a request that has any headers set. Any uses of JSONP
    on requests with headers set will need to remove the headers
    to avoid the error.

compiler

Commit Description
fix - f03e313f24 scope css keyframes in emulated view encapsulation (#42608)

compiler-cli

Commit Description
feat - 2142ffd295 propagate standalone flag to runtime (#44973)
feat - 6f653e05f9 standalone types imported into NgModule scopes (#44973)
fix - 3d13343975 better error messages for NgModule structural issues (#44973)
fix - 06050ac2b4 handle inline type-check blocks in nullish coalescing extended check (#45454)

core

Commit Description
fix - d36fa111eb avoid Closure Compiler error in restoreView (#45445)

forms

Commit Description
fix - b36dec6b5b not picking up disabled state if group is swapped out and disabled (#43499)

http

Commit Description
fix - d43c0e973f Throw error when headers are supplied in JSONP request (#45210)

Special Thanks

Alex Rickabaugh, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Dylan Hunn, JiaLiPassion, JoostK, Kristiyan Kostadinov, Maddie Klein, Michael-Doner, Paul Gschwendtner, Willian Corrêa, arturovt, dario-piotrowicz and zverbeta

14.0.0-next.9 (2022-03-25)

Special Thanks

Paul Gschwendtner

14.0.0-next.8 (2022-03-25)

Breaking Changes

core

  • TypeScript versions older than 4.6 are no longer supported.

zone.js

  • in TaskTrackingZoneSpec track a periodic task until it is cancelled

The breaking change is scoped only to the plugin
zone.js/plugins/task-tracking. If you used TaskTrackingZoneSpec and
checked the pending macroTasks e.g. using (this.ngZone as any)._inner ._parent._properties.TaskTrackingZone.getTasksFor('macroTask'), then
its behavior slightly changed for periodic macrotasks. For example,
previously the setInterval macrotask was no longer tracked after its
callback was executed for the first time. Now it's tracked until
the task is explicitly cancelled, e.g with clearInterval(id).

fixes 45350

animations

Commit Description
feat - 79d334b138 provide warnings for non-animatable CSS properties (#45212)
fix - 2a75754ee8 apply default params when resolved value is null or undefined (#45339)

bazel

Commit Description
fix - dc72f3007a ng module compilation workers are subject to linker race-conditions (#45393)

compiler

Commit Description
fix - fffa023803 scope css rules within @layer blocks (#45396)

compiler-cli

Commit Description
fix - 27b4af7240 full side-effectful registration of NgModules with ids (#45024)
perf - 8155428ba6 ignore the module.id anti-pattern for NgModule ids (#45024)

core

Commit Description
feat - c9d566ce4b drop support for TypeScript 4.4 and 4.5 (#45394)
fix - be161bef79 memory leak in event listeners inside embedded views (#43075)

forms

Commit Description
fix - fe0e42a996 Make UntypedFormBuilder assignable to FormBuilder, and vice versa. (#45421)

Special Thanks

Alan Agius, Alex Rickabaugh, AlirezaEbrahimkhani, Ben Brook, Dylan Hunn, George Kalpakas, Joey Perrott, JoostK, Kristiyan Kostadinov, Krzysztof Platis, Mike, Paul Gschwendtner, Tobias Speicher, alirezaghey, arturovt, dario-piotrowicz, khai and mgechev

14.0.0-next.7 (2022-03-16)

core

Commit Description
feat - 225e4f2dbe triggerEventHandler accept optional eventObj (#45279)

forms

Commit Description
fix - 9db9091349 improve error message for invalid value accessors (#45192)

Special Thanks

Alan Agius, Alistair Kane, Amer Yousuf, Andrew Kushnir, Andrew Scott, Derek Cormier, Jessica Janiuk, JiaLiPassion, Lee Cooper, Paul Gschwendtner, alirezaghey and why520crazy

14.0.0-next.6 (2022-03-09)

Breaking Changes

core

  • Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.

compiler

Commit Description
fix - 2b7553db6f compute correct offsets when interpolations have HTML entities (#44811)

core

Commit Description
feat - 6eaaefd22e drop support for Node.js 12 (#45286)
feat - 94bba76a4a support TypeScript 4.6 (#45190)
fix - 9fa6f5a552 incorrectly inserting elements inside <template> element (#43429)

forms

Commit Description
fix - 4332897baa Add UntypedFormBuilder (#45268)
fix - aa7b857be8 Property renaming safe code (#45271)
fix - d336ba96d9 Update the typed forms migration. (#45281)

language-service

Commit Description
fix - be220fa683 Prioritize Angular-specific completions over DOM completions (#45293)

service-worker

Commit Description
feat - bd04fbc05b emit a notification when the service worker is already up to date after check (#45216)
fix - 3ecf93020c file system hash in batch of 500 elements (#45262)

Special Thanks

Alan Agius, Andrew Kushnir, Andrew Scott, Anner Visser, Aristeidis Bampakos, Dylan Hunn, George Kalpakas, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Luca, Mladen Jakovljević, Paul Gschwendtner, Srikanth Kolli, ananyahs96 and nanda18

14.0.0-next.5 (2022-03-02)

Breaking Changes

router

  • The type of Route.pathMatch is now more strict. Places that use
    pathMatch will likely need to be updated to have an explicit
    Route/Routes type so that TypeScript does not infer the type as
    string.

  • Previously, resolvers were waiting to be completed
    before proceeding with the navigation and the Router would take the last
    value emitted from the resolver.
    The router now takes only the first emitted value by the resolvers
    and then proceeds with navigation. This is now consistent with Observables
    returned by other guards: only the first value is used.

common

Commit Description
fix - 7671a1e40d canceled JSONP requests won't throw console error with missing callback function (#36807)
perf - 05d50b849b make NgLocalization token tree-shakable (#45118)

core

Commit Description
feat - 69018c9f42 allow for injector to be specified when creating an embedded view (#45156)
feat - 94c949a60a allow for injector to be specified when creating an embedded view (#45156)
fix - c5df474c7c remove individual commands for updating gold files (#45198)
perf - 88f1168506 only track LViews that are referenced in ngContext (#45172)

forms

Commit Description
feat - 7ee121f595 Add untyped versions of the model classes for use in migration. (#45205)

localize

Commit Description
fix - ca5603b09b avoid imports into compiler-cli package (#45180)

router

Commit Description
fix - 7fd416d060 Fix type of Route.pathMatch to be more accurate (#45176)
refactor - c9679760b2 take only the first emitted value of every resolver to make it consistent with guards (#44573)

Special Thanks

Andrew Kushnir, Andrew Scott, Charles Lyding, Dmitrij Kuba, Dylan Hunn, Guillaume Bonnet, Jessica Janiuk, JiaLiPassion, JoostK, Kristiyan Kostadinov, Martin Sikora, Paul Gschwendtner, Theodore Brown and dario-piotrowicz

14.0.0-next.4 (2022-02-23)

Breaking Changes

animations

  • The AnimationDriver.getParentElement method has become required, so any
    implementors of this interface are now required to provide an implementation
    for this method. This breakage is unlikely to affect application developers,
    as AnimationDriver is not expected to be implemented in user code.

animations

Commit Description
fix - f8dc660605 allow animations with unsupported CSS properties (#44729)
refactor - 59559fdbac make AnimationDriver.getParentElement required (#45114)

compiler-cli

Commit Description
fix - c0778b4dfc Support resolve animation name from the DTS (#45107)

core

Commit Description
perf - 071c8af8ba avoid storing LView in ngContext (#45051)
perf - a96c4827c4 make Compiler, ApplicationRef and ApplicationInitStatus tree-shakable (#45102)
perf - 1e60fe0a3e make LOCALE_ID and other tokens from ApplicationModule tree-shakable (#45102)

Special Thanks

Alan Cohen, AlirezaEbrahimkhani, Andrew Kushnir, Andrew Scott, Daniele Maltese, David Wolf, JiaLiPassion, JoostK, Kristiyan Kostadinov, Paul Gschwendtner, arturovt, dario-piotrowicz, ivanwonder and manuelkroiss

14.0.0-next.3 (2022-02-17)

animations

Commit Description
perf - 5c7c56bc85 improve algorithm to balance animation namespaces (#45057)
perf - 4c778cdb28 made errors in the animations package tree shakeable (#45004)

common

Commit Description
fix - bedb257afc cleanup URL change listeners when the root view is removed (#44901)

compiler

Commit Description
perf - 1b91e1049e chain element start/end instructions (#44994)

core

Commit Description
feat - e461f716d4 move ANIMATION_MODULE_TYPE injection token into core (#44970)
fix - 822439fddd ViewContainerRef.createComponent should consult module injector when custom one is provided (#44966)
perf - 45d98e7ca5 make IterableDiffers and KeyValueDiffers tree-shakable (#45094)

Special Thanks

Alan Cohen, AlirezaEbrahimkhani, Amer Yousuf, Andrew Kushnir, Aristeidis Bampakos, Dario Piotrowicz, Dylan Hunn, Esteban Gehring, George Kalpakas, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Kristiyan Kostadinov, Mina Hosseini Moghadam, Patrick Cameron, Srdjan Milic, Yousaf Nawaz, arturovt, dario-piotrowicz, markostanimirovic, mgechev and zuckjet

14.0.0-next.2 (2022-02-07)

Breaking Changes

core

  • Forms [email] input coercion

Forms [email] input value will be considered as true if it is defined with any value rather
than false and 'false'.

forms

  • objects with a length key set to zero will no longer validate as empty.

This is technically a breaking change, since objects with a key length and value 0 will no longer validate as empty. This is a very minor change, and any reliance on this behavior is probably a bug anyway.

platform-browser

  • This change may cause a breaking change in unit tests that are implicitly depending on a specific
    number and sequence of change detections in order for their assertions to pass.

  • This may break invalid calls to TransferState methods.

This tightens parameter types of TransferState usage, and is a minor breaking change which may reveal existing problematic calls.

router

    • The type of initialUrl is set 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.

animations

Commit Description
fix - e46b379204 implement missing transition delay (#44799)

common

Commit Description
feat - 38c03a2035 support years greater than 9999 (#43622)

compiler

Commit Description
fix - db6cf7e7c1 allow banana-in-a-box bindings to end with non-null assertion (#37809)

compiler-cli

Commit Description
feat - 0072eb48ba initial implementation of standalone components (#44812)

core

Commit Description
fix - d5719c2e0f input coercion (#42803)

forms

Commit Description
fix - 8dd3f82f94 Correct empty validator to handle objects with a property length: 0. (#33729)
fix - ebf2fc5224 incorrectly keeping track of ngModel with ngFor inside a form (#40459)

http

Commit Description
perf - 28393031b1 remove IE special status handling (#44354)

platform-browser

Commit Description
fix - a01bcb8e7e do not run change detection when loading Hammer (#44921)
fix - b32647dc68 Make transfer state key typesafe. (#23020)

router

Commit Description
feat - 791bd31424 set stricter type for Route.title (#44939)
fix - 64f837d2c0 Update Navigation#initialUrl to match documentation and reality (#43863)

upgrade

Commit Description
fix - 202a1a5631 Do not trigger duplicate navigation events from Angular Router (#43441)

Special Thanks

Alan Agius, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Daniel Díaz, Dario Piotrowicz, Doug Parker, Jayson Acosta, Joey Perrott, JoostK, Kristiyan Kostadinov, Olivier Capuozzo, Payam Shahidi, Pusztai Tibor, Ramzan, Ruslan Lekhman, Sergej Grilborzer, Shai Reznik, TANMAY SRIVASTAVA, arturovt, dario-piotrowicz, iRealNirmal, jhonyeduardo, markostanimirovic, mgechev and zuckjet

14.0.0-next.1 (2022-02-02)

Deprecations

common

  • The 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.

animations

Commit Description
perf - 7a81481fb2 Remove generic objects in favor of Maps (#44482)
perf - 6642e3c8fd remove no longer needed CssKeyframes classes (#44903)

common

Commit Description
feat - c89cf63059 support NgModule as an input to the NgComponentOutlet (#44815)
fix - a2cbffc06f include query parameters for open HTTP requests in verify (#44917)

compiler-cli

Commit Description
fix - 73c97aea9e accept nullish coalescing operator for any and unknown types (#44862)
fix - 366e424a73 enable nullish coalescing check only with strictNullChecks (#44862)
fix - d82c957a26 ensure casing of logical paths is preserved (#44798)

core

Commit Description
fix - 5686f68fde Add back support for namespace URIs in createElement of dom renderer (#44914)
fix - 39c614c438 flush delayed scoping queue while setting up TestBed (#44814)

devtools

Commit Description
feat - ddeacebd7b add a demo pipe with ngOnDestroy
feat - 06c184aa48 add animations in the bar chart
feat - 8f8268ff1e add dark mode styling to flame graph rectangle strokes
feat - fd711e51d7 add demo app which does not use zones
feat - 1cb3967670 add detected application angular version to top right next to tabs (rangle/angular-devtools#4)
feat - 691e495b6b add duration field to the ProfilerFrame
feat - 7ea441719f add extra information to popups
feat - ff99b9bb03 add filtering functionality in the profiler
feat - f848ef8d1b add functionality for visualizing change detection
feat - 4b9031263f add ivy check
feat - 38afb5c90b Add margin to tree nodes so that they are not stacked on each other directly
feat - f91590a509 add MIT license (rangle/angular-devtools#65)
feat - 25016b8810 add multiple frame selection pointers
feat - a42eee68cc add opening instructions
feat - b1d0f0a7d4 add overflow-x auto to breadcrumbs tab
feat - a5a942b732 add selection of multiple frames with shift
feat - becdcca64a add support for Angular elements
feat - 8c68a645c2 add tooltip in bar chart
feat - 016a1e54d7 add top-level element to allow zoom out with multi roots
feat - dceb8d304c add versioning to import/export functionality
feat - e4784bc3b0 add view source button to properties view tab (rangle/angular-devtools#42)
feat - 059ef511d0 added cypress to run e2e tests (rangle/angular-devtools#45)
feat - a20b4ea5c7 added prettier for formatting code on pre-commit (rangle/angular-devtools#50)
feat - 75cb030a84 adding bar chart for timeline
feat - 2b3acd6a06 adding bar graph details section
feat - 556997abab adding bargraph formatter
feat - 637c6de204 adding bargraph visualization to timeline
feat - 2b48785931 adding bargraph visualizer
feat - f06aedc28c adding icon popups displaying app status (rangle/angular-devtools#70)
feat - 9872baa24f adding info popup (rangle/angular-devtools#739)
feat - 4add5238dd adding material toolbar
feat - 4320221815 adding parent hierarchy list view
feat - c6fd1895c5 adding parent hierarchy to bar graph formater
feat - aaae3c4796 Adding parent nodes for selected component (rangle/angular-devtools#34)
feat - 0b991bdc0f adding piechart for profiler
feat - f28dae22ec adding router tree
feat - 15d43c787d adding theme service
feat - f6f06365c0 adding theme toggle button
feat - ee7bc547d1 adding tooltips for icons
feat - b552687298 Allow ctrl/meta click to select/deselect multiple frames
feat - dbcf91bbe0 allow user to click on component properties of type HTMLElement to inspect the element in the browser
feat - 67a89a02d6 allow user to click on function properties to inspect that function in the chrome devtools (rangle/angular-devtools#234)
feat - 29db8d5a8b allow user to edit props
feat - 285b5dbe91 allow user to view change detection strategy and view encapsulation of a component in the property explorer (rangle/angular-devtools#257)
feat - 60a4e56a95 apply style to console reference keys displayed on nodes
feat - 6ddac7c051 Applying consistent styling
feat - c1366d460d change background colour to align with chrome devtools
feat - ffe86bb739 change flamegraph component input to have it be responsive by default
feat - 6a6af6615a change trimComponents name; always include nativeElement in buildDirectiveForest
feat - 363f7954c4 clicking on element with component inspector enabled will select that component in the directive explorer
feat - 74eb888efe create ConsoleReferenceNode interface to fix typing issues in selected-component.ts
feat - 9500ec6617 create copy to clipboard button for properties view wrapper (rangle/angular-devtools#38)
feat - 26fb1f4d4b create message bus event for component selection
feat - 2b1c7fb568 create scroll buttons for breadcrumb feature
feat - 2d34a209a6 create seperate property data sources for inputs/outputs/state
feat - 9bdaa57a74 create shared-utils project library to house functions and classes that can be used by any other project
feat - 18214a9b99 create webtree graph formatter and pass the formatted data through to the web tree graph visualizer
feat - 015d98e2c0 decrease width of split pane to match the rest of the application
feat - dba943a4e2 detect directives added to non-elements
feat - 73dff6f002 disable devtools for production applications
feat - a7ea578507 display latest commit SHA in application (rangle/angular-devtools#243)
feat - ecfc03a2d2 don't show comment nodes by default
feat - b411ec64ed expand node ancestors on component inspection
feat - f46e9c9d76 fix component styling for tooltip; add overflow to tree wrapper; truncate long tree labels
feat - 9344cb7dfc focus search input when icon is clicked
feat - 8d00e44d9b hide router tree if router config isn't found
feat - a8a17df3af highlight element when hovering the breadcrumbs
feat - 07344cd4b3 implement "force refresh" when the user presses the refresh button
feat - dd71a52466 Implement basic configuration UI and use it to toggle Timing API
feat - 1d55622f3a implement component selection functionality for $ng0 - $ng4 similarly to how chrome devtools does with html elements
feat - da690ca84a Implement Component/Directive Search (rangle/angular-devtools#25)
feat - 3b0f52a131 implement dark mode styling for loading screen
feat - 6f338f7066 implement drag to scroll functionality to improve frame navigation (rangle/angular-devtools#716)
feat - 605214c59d implement import/export json functionality for profiler
feat - 8ea84d5776 implement input/output/state preview functionality with the reworked property explorer
feat - 21454e07a8 implement invisible gutter technique from chrome devtools
feat - d0a1773175 implement material expansion panel with drag functionality for each property tree
feat - 9d9518e67e implement negation in the filtering query language
feat - ff45fbd075 implement output profiling
feat - 534809cf85 implement profiler with new framework APIs
feat - b7b99b8532 implement proper diffing in the explorer
feat - 059da5d908 implement reload message bus event that calls window.location.reload inside of the dev tools
feat - 9be250dd62 Implement selected component shortcut similar to Augury to select the component host
feat - 78b3d39810 implement split pane so that user can resize properties view tab (rangle/angular-devtools#60)
feat - 07cd82a10c implement time travel player functionality (rangle/angular-devtools#46)
feat - 967bd3cf8e improve output formatting
feat - 83f41800cf increase gutter width to 2.5px
feat - b5e95ce468 inform user that devtools has limited functionality in production mode
feat - 6c71658dc0 install webtree graph library
feat - a00c19f101 introduce directive records
feat - ac2cd3757b introduce streamed visualization of the profiling data
feat - df5857ddc2 introduce timing API support
feat - 0579e98a1c introduce virtual scrolling in directive explorer
feat - 758d0a82fe keep unique index for all components and directives
feat - 8d319dd486 make devtools fail elegantly for view engine apps
feat - a73f575d6d make tab menu action button icons smaller
feat - ee7d8e58c6 making small frames clickable
feat - 3d9ac47d12 merge frames in the range
feat - 957034bf93 migrate devtools and demo app to scss for styling
feat - 21eb190f74 move highlighter placement - no more overlap (rangle/angular-devtools#451)
feat - 7b4e830d88 new icon & active status
feat - 8b9181724b only show console reference for the currently selected element to reduce noise
feat - a6148608c3 open expansion panels by default; apply styling to expansion header
feat - 54c14c251a optionally show change detection duration only when run
feat - 6d0c4093c2 pass each datasource through to it's own material tree component
feat - f8bb080157 pass input/output data through from application to devtools UI
feat - c44f00b78e patch life cycle hooks
feat - 502ab94003 remove timeout and add new loading/error state message (rangle/angular-devtools#291)
feat - 07632cf7bc renaming app component to app todo component (rangle/angular-devtools#195)
feat - b3a948eca3 renaming timeline graph options
feat - 4ea0d91dc5 reorient split pane when screen width goes under 500 px
feat - a5beefb477 rerender tree on resize to keep tree within view
feat - 5b3ecb3ea2 scroll profiler frame info tab independently of active visualizer
feat - 3e05c31979 select dom element on double click of node (rangle/angular-devtools#51)
feat - be7a0c25cb set showNode option to show most nodes in the treegraph (rangle/angular-devtools#219)
feat - 2bfb96d5bb setting bar graph as default option
feat - f2998980f3 show frame drop in the timeline (rangle/angular-devtools#62)
feat - a25cd0ed15 show the console reference key on each selected element
feat - 342ea4ebd7 show timeline bars color dependant on the framerate
feat - 0b24fe08f5 simplify component styling for tabs component
feat - 7dc1a35a62 sort directive properties by name
feat - e7db0d3f78 split apart visualizing views; create new components for each visualizer component
feat - a93cfdca81 support trusted types for script injection
feat - a3ac38041f synchronizing highlight between source application and component in presentation tree (rangle/angular-devtools#35)
feat - c29c041ec8 themeing breadcrums
feat - d638f9b172 update to latest flamegraph
feat - b4dc6f7bea updating bargraph formatter
feat - 53da6bb0a8 updating record formatter to get directive values
feat - b5d30d1c19 updating to karma-coverage
feat - 8c9645849a updating to karma-coverage and setting clear context to true
feat - 337be9bd63 use flamechart with a better layout
feat - 86cb107fee use flamegraph in timeline and aggregated view
feat - e23c81e2b5 use flamegraph in timeline and aggregated view
feat - cff17715d4 use tag names
feat - 57418c13f5 use the user preferred color scheme
feat - 2749398650 use window object instead of getWindow method for setting a console reference
feat - 86242b10bf wrap entire row in div and bind click event to the div (rangle/angular-devtools#2)
fix - 249d4cf237 add back css that removed after a rebase
fix - 64942d3ed9 add d3 and semver dsl umd modules to karma tests for ng-devtools and ng-devtools-backend
fix - 3d19ebf3a1 added more padding to treegraph
fix - b305c85004 adding coverage reportor to gitignore
fix - d28e601bd4 align theme to other Chrome DevTools
fix - bcfd7b97d6 align with latest changes and keep consistent frame tree
fix - 880d1d0ed4 alignment issue in idle profiler
fix - a665e305ea allow arrow key events to fire when focusing on an input
fix - a20821be38 allow deleting property when editing
fix - de5c669ebe breadcrumb algorithm when there is no parent available
fix - 5c0031d944 broken virtual scroll layout on resize
fix - 774e662b11 bump up the split pane gutter size for the profiler split pane and hide the icon
fix - b55c9c8786 bump webpack version and fix breaking change
fix - cb4e86c016 call change tab helper when tab changes as a result of the inspector being selected
fix - 4120c551e8 catch selection edge cases for selecting the same node and selecting a node already in the array
fix - c87d30eca5 change colors (rangle/angular-devtools#453)
fix - 2e8fe67864 change the isIvy detection
fix - 87aaa4933c check if node.children is undefined before trying to convert it into an array (ex. node is a text node)
fix - 2025717a13 check if node.nativeelement is an instance of an HTMLElement before calling ng.getComponent on it (rangle/angular-devtools#93)
fix - 8c92af6905 color and font sizes and other visuals
fix - 5fe0d80d0c compatibility issues with google3
fix - 288ecfd994 consider change detection completed after a microtask
fix - 8c9336d1a2 consistent console reference hint styles with chrome devtools
fix - 284300abdb consistent styles across shell dev and chrome
fix - df680a9113 contrast on labels and links (rangle/angular-devtools#708)
fix - 544d82fcc3 debounce dirty notifications and ignore vendorChunk (rangle/angular-devtools#264)
fix - e19dc3efb4 delayed angular detection with app_initializer (rangle/angular-devtools#827)
fix - 08af1134e9 disable animations when running e2e testing to fix flaky tests
fix - 99125308a4 disable critical css inlining because of csp
fix - e85d65d26a disable router tree tab
fix - 50488f9380 distinguish between items with and without children
fix - 42ecb7a0d5 do not attempt to initialize devtools if not ivy
fix - b010784b21 do not expand HTML Comments and preserve state for selected nodes
fix - 23bc10cf7e do not highlight nodes during initial rendering
fix - 2a1f6e9464 do not refresh the ui unless there are updates
fix - 8728f6f578 doc links icon (rangle/angular-devtools#742)
fix - d60bdfc207 don't access service prop unnecessarily
fix - 54533bc037 don't collide with the default runtime function (rangle/angular-devtools#6)
fix - 63c86c100f dont leak once subscriptions
fix - 657c74151f dont leak flat and indexed nodes
fix - 97f88712e6 drag and drop when selecting input; fix: console warning on update state error (rangle/angular-devtools#205)
fix - 7c0d6c06e4 enable the profiler even without zone available
fix - d4fc65504b ensure compatibility with angular v10.0.0+
fix - 50723bf1db ensure that the dark mode toggle button reflects the current theme on load
fix - a0ba7f7762 fix all remaining component tab color issues (rangle/angular-devtools#458)
fix - 9c4c18b8ef fix bug in component tree observer that prevented nested added nodes from having their ids set properly
fix - 92679792e0 fix case where the state of the change detection checkbox in the flamegraph is lost when the component is destroyed
fix - 2b5c40ee6d fix constrast on navigation tabs; make light mode icons the same colour as the text (rangle/angular-devtools#667)
fix - 0649cc485d fix edge case where only one item is profiled and where no items are profiled
fix - f5cad86902 fix ExpressionChangedAfterItHasBeenCheckedError by manually triggering change detection when parents are set in directive explorer
fix - 8d81155052 fix initialization of non-supported applications (rangle/angular-devtools#43)
fix - 1fc39d9332 fix issue that prevented booleans from being parsed properly
fix - eb3a1c2971 fix issue where last node would be hidden behind breadcrumbs
fix - 8a5fbf5963 fix issues in message bus and watch
fix - dd977f4b26 fix regression that broke assignment of selected node to $ng0 variable (rangle/angular-devtools#89)
fix - 5eba00abe5 fix regression that broke node expansion (rangle/angular-devtools#88)
fix - a8ba83cd30 fix tests and leave todo related to possible typing refactor
fix - 984dfc6db1 fix typo in file names (rangle/angular-devtools#91)
fix - 2aaa03a50d fixed height for controls on flame graph and save button (rangle/angular-devtools#470)
fix - f7ade259fe fixing code review comments
fix - 21a50b10be fixing the bar graph height issue
fix - 5f5307e610 flicker properties when update selected node
fix - 6dd50832a9 frame colors indicate framerate good vs. bad
fix - a7f6562158 get all the property names including getters
fix - 1871c34743 get ng debug object whenever it is required through a function to prevent an issue where it would be set to undefined on page refresh
fix - b46b296255 get proper change detection trigger
fix - 6d86bbc11b get the lifecycle hook name using a more robust approach
fix - fc5801b225 get the lview from the instance context
fix - 5eed92e91c give breadcrumb container a z-index higher than 1 to prevent an issue where scrolling on the x-axis may inadvertently scroll the properties view tab
fix - 41cb658e10 handle corner cases when a component aims to replace an existing one
fix - 199745fd6c handle lifecycle hooks of only components & directives
fix - ff78c66ae9 handle ngFor and ngIf contexts in the profiler
fix - d41dedb85b highlighter should only show the hovered component's name (#44863)
fix - ae6acce53e highlighting of newly added nodes
fix - 3d3d67fd00 implement shutdown event to prevent memory leak when reopening devtools (rangle/angular-devtools#53)
fix - 5d1e60dc9d improve dark mode styles when no ivy detected
fix - df32c6e11e improve the styles in the meta popup
fix - 0763305d0d incorrect input names
fix - 4eeaab5d5e increase the width of the filter
fix - a30d2a5653 index new nodes before firing callbacks to fix issue where some callbacks rely on the newly indexed nodes
fix - 4fc8a075c0 initialization and popup logic
fix - 85e01af432 layout when visualizing the profiling data
fix - 1665bda6cc links to docs in property view tab
fix - 0169295122 linting errors to prevent ci failing (rangle/angular-devtools#469)
fix - ffb46bdc3c lview parsing when trying to get data from an option
fix - 9510a1c38e make edit functionality compatible with new getDirectiveForest api
fix - ec66218c28 make flamegraph scrollable
fix - 36f5c2e0c0 make sure we are not reference dependant
fix - e74dc9e70d make sure we dont access position of an undefined parent
fix - f454498274 make sure we dont fail on null elements
fix - b455eb158e make sure we invoke getComponent with an element
fix - dfc4437afd make sure we update the property explorer on state change (rangle/angular-devtools#821)
fix - 23f8945f2f make the bar chart scrollable
fix - 30978b3718 names of the tiles in the profiler graph
fix - a5955930dd node selection with collapsed nodes
fix - 212e4026f8 nowrap for the material tree items
fix - e24b476624 pass in root element ng context as an LView instead of as a context object
fix - 820ec85ea4 pass property updates to the correct data sources
fix - f8bd3fccd7 preserve proper nesting in flattened node lists
fix - 6422b60568 preserve the expansion status of moved items
fix - 19ce8a6e9e prevent circular dependency between directive-property-resolver and property-data-source
fix - e1691b2ab5 prevent default behaviour before calculating new scroll position to fix bug when traversing directive forest with arrow keys (rangle/angular-devtools#213)
fix - ded6796efb prevent directive forest hooks from being initiated in production applications
fix - e20347090a prevent link in property view body from closing panel header when clicked (rangle/angular-devtools#714)
fix - 509abcf39b prevent mat button css from leaking out of property view header (rangle/angular-devtools#856)
fix - b3fcc8b408 prevent ng-deep component styling from leaking to child components
fix - 632a12579b prevent node overwriting
fix - b127cdc211 prevent race condition between getting nested props and refresh
fix - f93b53bb89 proper alignment of non-expandable props
fix - 570adcf2f5 proper calculation of the lifecycle hook duration
fix - ee0c245b44 proper dev mode detection when app compiled with closure
fix - b2a537a41b proper diffing and expansion of new items
fix - 79f145dc77 proper diffing with unique ids
fix - a8088ac68f proper timing for operations
fix - 6154f8dfdf proper tracking without overwriting previous refs
fix - 60cc2d8fc0 proper typings in shell-chrome for strictNullChecks
fix - a4b748de75 properly emit shutdown event on cleanup and call change detector ref to update ui into loading state
fix - 681feff8d0 recognize app after reopening devtools
fix - 48c140038b refresh & reinitialize on navigation
fix - 5c5345fdd4 remove forgotten markers causing slowdown
fix - b350bfc838 remove jumping when adding nodes
fix - 21ccdc1c62 remove obsolete hover css that is causing contrast issues in dark mode and set the header height to match the new search filter height for consistency
fix - 9ad12dd3c6 remove redundant scrollbar
fix - 8a8b911586 remove relative positioning from profiler content; makes split pane gutter full height for profile details
fix - e55a24cf30 remove runOutsideAngular wrapper on mouse move event
fix - 1181e4cadc remove tree node highlight when a component is selected from the highlighter
fix - 50fbbbcb8f remove tree wrapper height css to let the height default to how many nodes are being displayed (rangle/angular-devtools#244)
fix - db82118f66 remove useless scrollbar from the demo app
fix - da0ce975f8 rename state to properties (rangle/angular-devtools#682)
fix - 7575fc9167 renaming master to main
fix - 0f4dd494f3 reselect node if it changes position after change detection
fix - 6a87b79190 reset the timeline component when discarding a recording
fix - ab221badb4 resize dark mode and cursor
fix - 6727d7e229 set a min width for the property view split tab to prevents styling issues when tab is too small
fix - 0e10241b5c set extension icon and popup only on DevTools background message
fix - 13af13cc5d set more accurate search label
fix - d40cefb5d2 set production flag to false in dev environment
fix - 5ef4bca194 set proper directive item and explorer height
fix - 7a59606aaa set proper height of the tree nodes
fix - cf682b59b5 set proper icon sizes
fix - 5fa1c35579 set proper types of the props in the clipboard copy feature
fix - e032e043cb setting default page for extension
fix - b04649dacb setting min width for input editor and allowing for rendering space
fix - 3f0a2d3120 show date type property value in preview (#44864)
fix - 82a8d5c0aa show elements nested in app elements
fix - 17eea0549b show new items using a class
fix - 815d697efe show not-angular popup for non-angular apps
fix - 8a286f1a07 show proper lifecycle hook names
fix - dc345956ce show properly dynamically inserted content with DOM APIs (rangle/angular-devtools#828)
fix - 3340caf648 show report for replaced nodes in the same tile and get lifecycle hook name
fix - 5bf180afb8 skip node if there is no associated TViewData (rangle/angular-devtools#804)
fix - 67faf7710c small improvements to Properties Details view (rangle/angular-devtools#455)
fix - 37dea7ccd7 sort array indexes in ascending order
fix - edcaa8c89f stop filter input from scrolling with the component forest (rangle/angular-devtools#87)
fix - 3633be9875 Style Changes to Profiler, general color scheme, controls & responsiveness (rangle/angular-devtools#468)
fix - db94717ecb style of editor input
fix - 0aa64aa490 Support Electron (rangle/angular-devtools#849)
fix - f08eaabb25 theming of profiler tab
fix - d66fe32c14 time label on profiler
fix - be814408c8 treemap hover colors highlight selection
fix - 4dec3fb3e6 ui flicker bug (rangle/angular-devtools#49)
fix - db449b531d unsubscribe from file upload Subscription instead of Subject
fix - e6bec2430a update the prod mode detection to also consider VE apps
fix - 1b97432960 update typing of differ objects to fit the new contract of TrackByFunction (rangle/angular-devtools#862)
fix - c5445440bf updating page design
fix - 3b8833cfec use cascading view child/children to fix regression caused by refactor (rangle/angular-devtools#92)
fix - 614919fd61 use the aio docs link rather than github
fix - f9a5069e94 use theming in chrome extension
fix - c3e8311298 use visible gutter size in calculation for split area flex basis' (rangle/angular-devtools#857)
fix - e5d1fcbc96 wait 500ms before checking the tree for a new node
fix - fcfc9ebdc1 webtree sizing (rangle/angular-devtools#203)
fix - 85f2212796 wrong label in the profiler
perf - d95806ef57 cache timeline frames so that the timetraveler doesn't have to process the same frame multiple times
perf - 18457f02f5 disable flame graph animations
perf - 7851fb2348 do not index on mutation of inspector
perf - b3b0879053 don't reformat the same record multiple times
perf - 20398cfa52 faster bar chart formatting
perf - ca0910e59c prevent directive forest from building twice every time a node is selected in the directive explorer
perf - 1a00837b0c prevent highlighter from rebuilding the directive forest every time a node is hovered over in the directive forest
perf - a4a06eea18 stream records incrementally so that they do not get sent all at once
perf - 8a90f5b8b4 switch to on push change detection to optimize profiler; rename variable for readability; null coalesce profileRecords to fix bug when profile profiles no changes (rangle/angular-devtools#3)
perf - 29b9021113 use WeakMap to reduce memory usage when memoizing

devtools tabs

Commit Description
fix - 6c284ef32e stop scroll occuring at tabs level

forms

Commit Description
feat - f490c2de4e support negative indices in FormArray methods. (#44848)
fix - 889de8276d ensure OnPush ancestors are marked dirty when the promise resolves (#44886)
fix - deb9531a31 Update the typed forms migration schematic to find all files. (#44881)
fix - cae1e44608 Update the typed forms migration to use FormArray instead of FormArray<T[]>. (#44933)

router

Commit Description
feat - 910de8bc33 Add Route.title with a configurable TitleStrategy (#43307)

Special Thanks

Alan, Alan Agius, AleksanderBodurri, Amir Rustamzadeh, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Arjen, Daan De Smedt, Daniel Díaz, David Shevitz, Doug Parker, Dylan Hunn, Emma Twersky, Esteban Gehring, George Kalpakas, Jessica Janiuk, JimMorrison723, JoostK, Juri Strumpflohner, Lee Robinson, Maarten Tibau, Mark Whitfeld, Minko Gechev, Paul Gschwendtner, Ricardo Mattiazzi Baumgartner, Sumit Arora, Theodore Brown, arturovt, dario-piotrowicz, fru2, kamikopi, markostanimirovic, markwhitfeld, mgechev, renovate[bot] and twerske

14.0.0-next.0 (2022-01-26)

language-service

Commit Description
feat - 9d4af65e34 Provide plugin to delegate rename requests to Angular (#44696)

service-worker

Commit Description
feat - ec0a0e0669 add cacheOpaqueResponses option for data-groups (#44723)

Special Thanks

Andrew Kushnir, Dylan Hunn, George Kalpakas, JiaLiPassion, Joey Perrott and ivanwonder