angular-cn/CHANGELOG.md

866 KiB

12.0.0-rc.0 (2021-04-21)

Bug Fixes

  • animations: allow animations on elements in the shadow DOM (#40134) (dad42c8), closes #25672
  • common: viewport scroller not finding elements inside the shadow DOM (#41644) (c0f5ba3), closes #41470
  • compiler: non-literal inline templates incorrectly processed in partial compilation (#41583) (ab257b3)
  • compiler: not generating update instructions for ng-template inside alternate namespaces (#41669) (2bcbbda), closes #41308
  • compiler-cli: autocomplete literal types in templates. (#41456) (#41645) (8b2b5ef)
  • compiler-cli: do not error with prepocessing if component has no inline styles (#41602) (a5fe8b9)
  • router: Only retrieve stored route when reuse strategy indicates it should reattach (#30263) (a4ff071), closes #23162
  • router: recursively merge empty path matches (#41584) (1179dc8), closes #41481

Performance Improvements

  • compiler: reduce amount of generated code for safe accesses and nullish coalescing (#41563) (9a3b82f), closes #41437 #41491

11.2.11 (2021-04-21)

Bug Fixes

  • common: viewport scroller not finding elements inside the shadow DOM (#41644) (3aa9235), closes #41470
  • compiler-cli: autocomplete literal types in templates (296f887)
  • router: Only retrieve stored route when reuse strategy indicates it should reattach (#30263) (f4376fc), closes #23162
  • router: recursively merge empty path matches (#41584) (8d62813), closes #41481

12.0.0-next.9 (2021-04-14)

Bug Fixes

  • compiler: avoid parsing EmptyExpr with a backwards span (#41581) (e1a2930)
  • compiler-cli: ensure the compiler tracks ts.Programs correctly (#41291) (deacc74)
  • compiler-cli: prevent eliding default imports in incremental recompilations (#41557) (7f16515), closes #41377
  • compiler-cli: resolve rootDirs to absolute (#41359) (3e0fda9), closes #36290
  • language-service: use script versions for incremental compilations (#41475) (78236bf)

Build System

Code Refactoring

Features

Performance Improvements

  • compiler-cli: allow incremental compilation in the presence of redirected source files (#41448) (ffea31f)
  • compiler-cli: cache results of absoluteFromSourceFile (#41475) (fab1a64)
  • core: optimize getDirectives (#41525) (f7e391a)

BREAKING CHANGES

  • Minified UMD bundles are no longer included in the distributed NPM packages.
  • core: Angular no longer maintains support for node v10
  • core: Previously the ng.getDirectives function threw an error in case a given DOM node had no Angular context associated with it (for example if a function was called for a DOM element outside of an Angular app). This behavior was inconsistent with other debugging utilities under ng namespace, which handled this situation without raising an exception. Now calling the ng.getDirectives function for such DOM nodes would result in an empty array returned from that function.
  • compiler-cli: Linked libraries no longer generate legacy i18n message ids. Any downstream application that provides translations for these messages, will need to migrate their message ids using the localize-migrate command line tool.

11.2.10 (2021-04-14)

Bug Fixes

Performance Improvements

  • compiler-cli: allow incremental compilation in the presence of redirected source files (#41587) (616145e)

12.0.0-next.8 (2021-04-07)

Features

  • common: add historyGo method to Location service (#38890) (e05a6f3)
  • compiler-cli: support transforming component style resources (#41307) (1de04b1)
  • core: support forwardRef in providedIn of Injectable declaration (#41426) (f7c294e), closes #41205

11.2.9 (2021-04-07)

Bug Fixes

Features

  • bazel: allow setting compilationMode in ng_module rule (#41418) (e6da38a)

Performance Improvements

  • core: add private hooks around user code executed by the runtime (#41421) (94af9d9)
  • language-service: add perf tracing to LanguageService (#41401) (7b0a800)

12.0.0-next.7 (2021-04-01)

Bug Fixes

  • common: temporarily re-export and deprecate XhrFactory (#41393) (7dfa446)
  • compiler: handle case-sensitive CSS custom properties (#41380) (e112e32), closes #41364
  • compiler: include used components during JIT compilation of partial component declaration (#41353) (ff9470b), closes #41104 #41318
  • language-service: Only provide Angular property completions in templates (#41278) (0226a11)
  • platform-browser: configure XhrFactory to use BrowserXhr (#41313) (e0028e5), closes #41311

Features

  • core: add migration for XhrFactory import (#41313) (95ff5ec)
  • language-service: add perf tracing to LanguageService (#41319) (90f85da)

BREAKING CHANGES

  • platform-browser: XhrFactory has been moved from @angular/common/http to @angular/common.

Before

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

After

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

11.2.8 (2021-04-01)

Bug Fixes

12.0.0-next.6 (2021-03-24)

Bug Fixes

Features

BREAKING CHANGES

  • animations: DOM elements are now correctly removed when the root view is removed. If you are using SSR and use the app's HTML for rendering, you will need to ensure that you save the HTML to a variable before destorying the app. It is also possible that tests could be accidentally relying on the old behavior by trying to find an element that was not removed in a previous test. If this is the case, the failing tests should be updated to ensure they have proper setup code which initializes elements they rely on.
  • router: Strict null checks will report on fragment potentially being null. Migration path: add null check.

11.2.7 (2021-03-24)

Bug Fixes

12.0.0-next.5 (2021-03-17)

Bug Fixes

  • core: Switch emitDistinctChangesOnlyDefaultValue to true (#41121) (7096246)

Features

Performance Improvements

  • common: remove unused methods from DomAdapter (#41102) (3c66b10)

BREAKING CHANGES

  • core: Switching default of emitDistinctChangesOnlyDefaultValue which changes the default behavior and may cause some applications which rely on the incorrect behavior to fail.

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

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

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

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

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

11.2.6 (2021-03-17)

Bug Fixes

Performance Improvements

12.0.0-next.4 (2021-03-10)

Bug Fixes

  • common: cleanup location change listeners when the root view is removed (#40867) (38524c4), closes #31546
  • core: remove duplicated EMPTY_OBJ constant (#41066) (bf158e7)

Features

  • compiler: emit @PURE or @pureOrBreakMyCode annotations in the generated code (#41096) (9c21028)
  • compiler-cli: support producing Closure-specific PURE annotations (#41021) (fbc9df1)
  • core: manually annotate de-sugarred core tree-shakable providers with @pureOrBreakMyCode (#41096) (03d47d5)
  • core: more precise type for APP_INITIALIZER token (#40986) (ca721c2), closes #40729
  • localize: add scripts to migrate away from legacy message IDs (#41026) (1735430)

BREAKING CHANGES

  • common: Methods of the PlatformLocation class, namely onPopState and onHashChange, used to return void. Now those methods return functions that can be called to remove event handlers.
  • core: The type of the APP_INITIALIZER token has been changed to more accurately reflect the types of return values that are handled by Angular. Previously, each initializer callback was typed to return any, this is now Promise<unknown> | Observable<unknown> | void. In the unlikely event that your application uses the Injector.get or TestBed.inject API to inject the APP_INITIALIZER token, you may need to update the code to account for the stricter type.

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

11.2.5 (2021-03-10)

Bug Fixes

  • bazel: fix incorrect rollup plugin method signature (#41101) (925746b)
  • language-service: Only provide dom completions for inline templates (#41078) (a05eb13)

Performance Improvements

  • compiler-cli: avoid module resolution in cycle analysis (#40948) (532ae73)
  • compiler-cli: detect semantic changes and their effect on an incremental rebuild (#40947) (e35ecea), closes #34867 #40635 #40728
  • compiler-cli: ensure module resolution cache is reused for type-check program (#39693) (16f90ca)
  • compiler-cli: use bound symbol in import graph in favor of module resolution (#40948) (2035b15)

12.0.0-next.3 (2021-03-03)

Bug Fixes

  • animations: cleanup DOM elements when the root view is removed (#41001) (a31da48)
  • common: allow number or boolean as http params (#40663) (91cdc11), closes #23856
  • core: remove duplicated EMPTY_ARRAY constant (#40991) (e12d9de)
  • language-service: Add plugin option to force strictTemplates (#41062) (e9e7c33)
  • language-service: use single entry point for Ivy and View Engine (#40967) (e986a97)

Features

  • animations: add support for disabling animations through BrowserAnimationsModule.withConfig (#40731) (29d8a0a)
  • router: Add more fine-tuned control in routerLinkActiveOptions (#40303) (6c05c80), closes #13205

BREAKING CHANGES

  • common: The methods of the HttpParams class now accept string | number | boolean instead of string for the value of a parameter. If you extended this class in your application, you'll have to update the signatures of your methods to reflect these changes.
  • router: The type of the RouterLinkActive.routerLinkActiveOptions input was expanded to allow more fine-tuned control. Code that previously read this property may need to be updated to account for the new type.

11.2.4 (2021-03-03)

Bug Fixes

12.0.0-next.2 (2021-02-24)

Bug Fixes

Features

BREAKING CHANGES

  • core: Minimum supported zone.js version is 0.11.4

11.2.3 (2021-02-24)

Performance Improvements

  • language-service: Skip Angular analysis when quick info requested outside a template (#40956) (0dd1fac)

11.2.2 (2021-02-22)

Bug Fixes

Performance Improvements

  • core: use ngDevMode to tree-shake warning (#40876) (c8a2e3a)
  • language-service: short-circuit LS operations when we know there is no Angular information to provide (#40946) (73a3ff1)

12.0.0-next.1 (2021-02-17)

Bug Fixes

  • compiler-cli: readConfiguration existing options should override options in tsconfig (#40694) (b7c4d07)
  • compiler-cli: extend angularCompilerOptions in tsconfig from node (#40694) (5eb1954), closes #36715

Features

BREAKING CHANGES

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

  • FormGroup.addControl

  • FormGroup.removeControl

  • FormGroup.setControl

  • FormArray.push

  • FormArray.insert

  • FormArray.removeAt

  • FormArray.setControl

  • FormArray.clear

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

11.2.1 (2021-02-17)

Bug Fixes

12.0.0-next.0 (2021-02-10)

Bug Fixes

  • bazel: update build tooling for latest changes in rules_nodejs (#40710) (696f7bc)
  • bazel: update integration test to use rules_nodejs@3.1.0 (#40710) (34de89a)
  • bazel: update type castings for JSON.parse usage (#40710) (2c90391)
  • benchpress: update type castings for JSON.parse usage (#40710) (e721a5d)
  • compiler: support multiple :host-context() selectors (#40494) (07b7af3), closes #19199
  • compiler: update type castings for JSON.parse usage (#40710) (f728490)
  • compiler-cli: update ngcc integration tests for latest changes in rules_nodejs (#40710) (d7f5755)
  • compiler-cli: update type castings for JSON.parse usage (#40710) (b75d7cb)
  • core: make DefaultIterableDiffer keep the order of duplicates (#23941) (a826926), closes #23815
  • core: NgZone coaleascing options should trigger onStable correctly (#40540) (22f9e45)
  • elements: update type castings for JSON.parse usage (#40710) (efd4149)
  • http: complete the request on timeout (#39807) (61a0b6d), closes #26453
  • http: emit error on XMLHttpRequest abort event (#40767) (3897265), closes #22324
  • localize: update type castings for JSON.parse usage (#40710) (4b469c9)
  • platform-browser: update type castings for JSON.parse usage (#40710) (7ecfd2d)
  • router: update type castings for JSON.parse usage (#40710) (350dada)
  • service-worker: update type castings for JSON.parse usage (#40710) (4f7ff96)

Features

  • common: implement appendAll() method on HttpParams (#20930) (575a2d1), closes #20798
  • forms: introduce min and max validators (#39063) (8fb83ea), closes #16352
  • http: expose a list of human-readable http status codes (#23548) (6fe3a1d), closes #23543
  • language-service: add command for getting components for a template file (#40655) (5cde4ad)
  • language-service: Add diagnostics to suggest turning on strict mode (#40423) (ecae75f)
  • language-service: Implement getRenameInfo (#40439) (4e8198d)
  • language-service: initial implementation for findRenameLocations (#40140) (9a5ac47)
  • language-service: view template typecheck block (#39974) (d482f5c)

BREAKING CHANGES

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

11.2.0 (2021-02-10)

Bug Fixes

11.2.0-rc.0 (2021-02-03)

This release contains the same set the of changes as 11.2.0-next.1.

11.2.0-next.1 (2021-02-03)

Bug Fixes

Performance Improvements

  • language-service: update NgCompiler via resource-only path when able (#40585) (07a3d7a)

11.1.2 (2021-02-03)

Bug Fixes

Performance Improvements

  • language-service: update NgCompiler via resource-only path when able (#40680) (0047eb3)

11.1.1 (2021-01-27)

Bug Fixes

  • compiler-cli: handle pseudo cycles in inline source-maps (#40435) (566206b), closes #40408
  • compiler-cli: use Map rather than object for map of partial linkers (#40563) (33e0f2b)
  • core: fix possible XSS attack in development through SSR (#40525) (97ec6e4)
  • core: improve injector debug information in ngDevMode (#40476) (4bb38c9)
  • forms: allow patchValue() method of FormGroup and FormArray classes to skip null values (#40534) (2fab148), closes #36672 #21021
  • forms: properly cleanup in cases when FormControlName has no CVA (#40526) (72fc6aa), closes #39235 #40521
  • language-service: implement realpath to resolve symlinks (#40593) (77efc27)
  • language-service: recognize incomplete pipe bindings with whitespace (#40346) (d88f18e)
  • localize: include meaning in generated ARB files (#40546) (5661298), closes #40506
  • router: always stringify matrix parameters (#25095) (a8a27ef), closes #23165
  • router: Fix occasional error when creating url tree in IE 11 and Edge (#40488) (69fd942)
  • service-worker: handle error with console.error (#40236) (37710b9)

Features

  • language-service: Add diagnostics to suggest turning on strict mode (#40568) (defa627)

Performance Improvements

  • compiler-cli: introduce fast path for resource-only updates (#40561) (156103c)
  • core: simplify bloom bucket computation (#40489) (106734a)

11.1.0 (2021-01-20)

Bug Fixes

Performance Improvements

  • animations: use ngDevMode to tree-shake warning (#39964) (9ebe423)
  • common: use ngDevMode to tree-shake warnings (#39964) (f022efa)
  • core: use ngDevMode to tree-shake checkNoChanges (#39964) (e1fe9ec)
  • core: use ngDevMode to tree-shake warnings (#39959) (8b0cccc)
  • core: make DI decorators tree-shakable when used for useFactory deps config (#40145) (0664d75), closes #40143
  • forms: use ngDevMode to tree-shake _ngModelWarning (#39964) (7954c8d)
  • ngcc: do not copy files that have been processed (#40429) (798aae4)

Features

  • common: allow any Subscribable in async pipe (#39627) (c7f4abf)
  • compiler: recover expression parsing in more malformed pipe cases (#39437) (e336572)
  • compiler: support recovery of malformed property writes (#39103) (e44e10b)
  • compiler: add schema for Trusted Types sinks (#39554) (358c50e)
  • compiler: support error reporting in I18nMetaVisitor (#39554) (bb70a9b)
  • compiler: support tagged template literals in code generator (#39122) (ef89274)
  • compiler: allow trailing comma in array literal (#22277) (8d613c1), closes #20773
  • compiler-cli: implement partial directive declaration linking (#39518) (87e9cd6)
  • compiler-cli: partial compilation of directives (#39518) (8c0a92b)
  • compiler-cli: add support for using TypeScript 4.1 (#39571) (a7e7c21)
  • compiler-cli: support for partial compilation of components (#39707) (e75244e)
  • compiler-cli: expose function to allow short-circuiting of linking (#40137) (7dcf286)
  • compiler-cli: JIT compilation of component declarations (#40127) (d4327d5)
  • compiler-cli: JIT compilation of directive declarations (#40101) (9186f1f)
  • core: add shouldCoalesceRunChangeDetection option to coalesce change detections in the same event loop. (#39422) (5e92d64), closes #39348 #39348
  • core: adds get method to QueryList (#36907) (a965589), closes #29467
  • core: Add schematic to fix invalid Route configs (#40067) (805b4f9)
  • language-service: log Angular compiler options (#40364) (6a9e328)
  • language-service: autocomplete pipe binding expressions (#40032) (cbb6eae)
  • language-service: autocompletion of element tags (#40032) (e42250f)
  • language-service: autocompletion within expression contexts (#39727) (93a8326)
  • language-service: complete attributes on elements (#40032) (66378ed)
  • language-service: completions for structural directives (#40032) (2a74431)
  • language-service: enable get references for directive and component from template (#40054) (973f797)
  • language-service: Add "find references" capability to Ivy integrated LS (#39768) (06a782a)
  • language-service: implement autocompletion for global properties (Ivy) (#39250) (28a0bcb)
  • language-service: Implement go to definition for style and template urls (#39202) (563fb6c)
  • localize: support Application Resource Bundle (ARB) translation file format (#36795) (5684ac5)
  • platform-browser: add doubletap HammerJS support (#26362) (b5c0f9d), closes #23954
  • router: add relativeTo as an input to routerLink (#39720) (112324a), closes #13523

11.0.9 (2021-01-13)

Bug Fixes

  • compiler: incorrectly inferring content type of SVG-specific title tag (#40259) (642c45b), closes #31503
  • compiler-cli: prevent stack overflow in decorator transform for large number of files (#40374) (ff36485), closes #40276
  • ngcc: compute the correct package paths for target entry-points (#40376) (584b78a), closes #40352 #40357
  • router: better ngZone checking for warning (#25839) (adf42da), closes #25837
  • service-worker: allow checking for updates when constantly polling the server (#40234) (a7befd5), closes #40207
  • service-worker: ensure SW stays alive while notifying clients about unrecoverable state (#40234) (c01b5ea)

11.0.8 (2021-01-11)

Bug Fixes

  • core: memory leak if view container host view is destroyed while view ref is not (#40219) (f691e85), closes #38648
  • forms: handle standalone <form> tag correctly in NgControlStatusGroup directive (#40344) (b3f322f), closes #38391
  • router: Remove usage of Object.values to avoid the need for a polyfill (#40370) (c44dd84)

11.0.7 (2021-01-07)

Bug Fixes

11.0.6 (2021-01-06)

Bug Fixes

11.0.5 (2020-12-16)

Bug Fixes

  • compiler: handle strings inside bindings that contain binding characters (#39826) (f5aab2b), closes #39601
  • core: fix possible XSS attack in development through SSR. (#40136) (0aa220b)
  • core: set ngDevMode to false when calling enableProdMode() (#40124) (922f492)
  • upgrade: fix HMR for hybrid applications (#40045) (c4c7509), closes #39935

11.0.4 (2020-12-09)

Bug Fixes

  • animations: implement getPosition in browser animation builder (#39983) (5a765f0)
  • compiler-cli: correct incremental behavior even with broken imports (#39967) (adeeb84)
  • compiler-cli: remove the concept of an errored trait (#39967) (0aa35ec)
  • compiler-cli: track poisoned scopes with a flag (#39967) (178cc51)
  • core: remove application from the testability registry when the root view is removed (#39876) (3680ad1), closes #22106
  • core: unsubscribe from the onError when the root view is removed (#39940) (35309bb)
  • language-service: do not return external template that does not exist (#39898) (6b6fcd7)
  • language-service: do not treat file URIs as general URLs (#39917) (829988b)
  • service-worker: handle error with ErrorHandler (#39990) (588dbd3), closes #39913
  • upgrade: avoid memory leak when removing downgraded components (#39965) (97310d3), closes #26209 #39911 #39921

Performance Improvements

  • animations: use ngDevMode to tree-shake warning (#39964) (72aad32)
  • common: use ngDevMode to tree-shake warnings (#39964) (bf3de9b)
  • core: use ngDevMode to tree-shake checkNoChanges (#39964) (2fbb684)
  • core: use ngDevMode to tree-shake warnings (#39959) (1e3534f)
  • forms: use ngDevMode to tree-shake _ngModelWarning (#39964) (735556d)

11.0.3 (2020-12-02)

Bug Fixes

  • animations: getAnimationStyle causes exceptions in older browsers (#29709) (cb1d77a)
  • animations: replace copy of query selector node-list from "spread" to "for" (#39646) (e95cd2a), closes #38551
  • common: Prefer to use pageXOffset / pageYOffset instance of scrollX / scrollY (#28262) (5692607)
  • compiler: ensure that placeholders have the correct sourceSpan (#39717) (8ec7156), closes #39671
  • compiler: report better error on interpolation in an expression (#30300) (6dc74fd)
  • compiler-cli: report error when a reference target is missing instead of crashing (#39805) (8634611), closes #38618 #39744
  • core: Ensure OnPush ancestors are marked dirty when events occur (#39833) (01c1bfd), closes #39832
  • core: meta addTag() adds incorrect attribute for httpEquiv (#32531) (3114b0a)
  • core: migration error if program contains files outside of the project (#39790) (7dcc212), closes #39778
  • core: not invoking object's toString when rendering to the DOM (#39843) (75e22ab), closes #38839
  • core: remove duplicated noop function (#39761) (26a1337)
  • core: support Attribute DI decorator in deps section of a token (#37085) (aaa3111), closes #36479
  • router: correctly handle string command in outlets (#39728) (50c19a2), closes #18928
  • router: remove duplicated getOutlet function (#39764) (df231ad)
  • service-worker: correctly handle failed cache-busted request (#39786) (7bf73d7), closes #39775 #39775

DEPRECATIONS

  • forms: Mark the {[key: string]: any} type for the options property of the FormBuilder.group method as deprecated. Using AbstractControlOptions gives the same functionality and is type-safe.

11.0.2 (2020-11-19)

Bug Fixes

11.0.1 (2020-11-18)

Bug Fixes

  • compiler-cli: incorrectly type checking calls to implicit template variables (#39686) (e05cfdd), closes #39634 * compiler-cli: setComponentScope should only list used components/pipes (#39662) (8d317df) * core: handle !important in style property value (#39603) (978f081), closes #35323 * core: not inserting ViewContainerRef nodes when inside root of a component (#39599) (20db90a), closes #39556 * core: remove deprecated wtfZoneSpec from NgZone (#37864) (e02bea8), closes #33949
  • forms: more precise control cleanup (#39623) (050cea9)
  • http: queue jsonp