81db6a3 | Misko Hevery | 24 August 2020, 22:15:10 UTC | release: cut the v10.0.12 release | 24 August 2020, 22:15:10 UTC |
8224e65 | windmichael | 22 August 2020, 15:06:31 UTC | docs(localize): fix angular.json syntax (#38553) In chapter internationalization (i18n) at section "Deploy multiple locales" the syntax for angular.json is wrong. This commit fixes the angular.json, when specifying the translation file and the baseHref for a locale. PR Close #38553 | 24 August 2020, 16:25:38 UTC |
9e50cef | Keen Yee Liau | 21 August 2020, 17:35:49 UTC | test(language-service): [Ivy] return cursor position in overwritten template (#38552) In many testing scenarios, there is a common pattern: 1. Overwrite template (inline or external) 2. Find cursor position 3. Call one of language service APIs 4. Inspect spans in result In order to faciliate this pattern, this commit refactors `MockHost.overwrite()` and `MockHost.overwriteInlineTemplate()` to allow a faux cursor symbol `¦` to be injected into the template, and the methods will automatically remove it before updating the script snapshot. Both methods will return the cursor position and the new text without the cursor symbol. This makes testing very convenient. Here's a typical example: ```ts const {position, text} = mockHost.overwrite('template.html', `{{ ti¦tle }}`); const quickInfo = ngLS.getQuickInfoAtPosition('template.html', position); const {start, length} = quickInfo!.textSpan; expect(text.substring(start, start + length)).toBe('title'); ``` PR Close #38552 | 24 August 2020, 16:25:07 UTC |
66d8c22 | Keen Yee Liau | 12 August 2020, 23:13:02 UTC | feat(language-service): introduce hybrid visitor to locate AST node (#38540) This commit introduces two visitors, one for Template AST and the other for Expression AST to allow us to easily find the node that most closely corresponds to a given cursor position. This is crucial because many language service APIs take in a `position` parameter, and the information returned depends on how well we can find a good candidate node. In View Engine implementation of language service, the search for the node and the processing of information to return the result are strongly coupled. This makes the code hard to understand and hard to debug because the stack trace is often littered with layers of visitor calls. With this new feature, we could test the "searching" part separately and colocate all the logic (aka hacks) that's required to retrieve an accurate span for a given node. Right now, only the most "narrow" node is returned by the main exported function `findNodeAtPosition`. If needed, we could expose the entire AST path, or expose other methods to provide more context for a node. Note that due to limitations in the template AST interface, there are a few known cases where microsyntax spans are not recorded properly. This will be dealt with in a follow-up PR. PR Close #38540 | 24 August 2020, 16:24:21 UTC |
814b436 | crisbeto | 20 August 2020, 21:21:21 UTC | fix(compiler-cli): adding references to const enums in runtime code (#38542) We had a couple of places where we were assuming that if a particular symbol has a value, then it will exist at runtime. This is true in most cases, but it breaks down for `const` enums. Fixes #38513. PR Close #38542 | 21 August 2020, 19:23:24 UTC |
6b98567 | George Kalpakas | 20 August 2020, 16:17:06 UTC | fix(dev-infra): ignore comments when validating commit messages (#38438) When creating a commit with the git cli, git pre-populates the editor used to enter the commit message with some comments (i.e. lines starting with `#`). These comments contain helpful instructions or information regarding the changes that are part of the commit. As happens with all commit message comments, they are removed by git and do not end up in the final commit message. However, the file that is passed to the `commit-msg` to be validated still contains these comments. This may affect the outcome of the commit message validation. In such cases, the author will not realize that the commit message is not in the desired format until the linting checks fail on CI (which validates the final commit messages and is not affected by this issue), usually several minutes later. Possible ways in which the commit message validation outcome can be affected: - The minimum body length check may pass incorrectly, even if there is no actual body, because the comments are counted as part of the body. - The maximum line length check may fail incorrectly due to a very long line in the comments. This commit fixes the problem by removing comment lines before validating a commit message. Fixes #37865 PR Close #38438 | 21 August 2020, 19:17:17 UTC |
7f2a3e4 | Aristeidis Bampakos | 19 August 2020, 07:29:09 UTC | docs: apply code styling in template reference variables guide (#38522) PR Close #38522 | 20 August 2020, 20:01:37 UTC |
1775f35 | Ajit Singh | 15 August 2020, 07:37:30 UTC | fix(docs-infra): fix vertical alignment of external link icons (#38410) At some places external link icons appear as a subscript. For example https://github.com/angular/angular/blame/8366effeec8e74c1a11d2a6e1a48d42e849e4653/aio/content/guide/roadmap.md\#L37 this commit places external link icons in the middle to improve there positioning in a line. PR Close #38410 | 20 August 2020, 16:40:05 UTC |
1df52d9 | Santosh Yadav | 08 July 2020, 06:22:43 UTC | docs: udpate the details (#37967) updating my twitter handle and bio as it is changed from Angular and Web Tech to Angular also the twitter handle is changed to SantoshYadavDev PR Close #37967 | 20 August 2020, 16:39:05 UTC |
77e8db4 | Leon Yu | 20 August 2020, 02:37:46 UTC | docs(core): Fix typo in JSDoc for AbstractType<T> (#38541) PR Close #38541 | 20 August 2020, 16:30:24 UTC |
c90262e | Misko Hevery | 20 August 2020, 15:56:01 UTC | Revert "Revert "fix(core): remove closing body tag from inert DOM builder (#38454)"" This reverts commit 87bbf69ce8f673c022b6db55be232ecdf2cb343a. | 20 August 2020, 15:56:01 UTC |
87bbf69 | Misko Hevery | 20 August 2020, 04:02:55 UTC | Revert "fix(core): remove closing body tag from inert DOM builder (#38454)" This reverts commit 552853648ca75fe420ba594ba48555da39f263c7. | 20 August 2020, 04:02:55 UTC |
5528536 | Bjarki | 13 August 2020, 21:33:40 UTC | fix(core): remove closing body tag from inert DOM builder (#38454) Fix a bug in the HTML sanitizer where an unclosed iframe tag would result in an escaped closing body tag as the output: _sanitizeHtml(document, '<iframe>') => '</body>' This closing body tag comes from the DOMParserHelper where the HTML to be sanitized is wrapped with surrounding body tags. When an opening iframe tag is parsed by DOMParser, which DOMParserHelper uses, everything up until its matching closing tag is consumed as a text node. In the above example this includes the appended closing body tag. By removing the explicit closing body tag from the DOMParserHelper and relying on the body tag being closed implicitly at the end, the above example is sanitized as expected: _sanitizeHtml(document, '<iframe>') => '' PR Close #38454 | 19 August 2020, 21:18:47 UTC |
07b99f5 | Pete Bacon Darwin | 16 August 2020, 15:11:30 UTC | fix(localize): parse all parts of a translation with nested HTML (#38452) Previously nested container placeholders (i.e. HTML elements) were not being fully parsed from translation files. This resulted in bad translation of messages that contain these placeholders. Note that this causes the canonical message ID to change for such messages. Currently all messages generated from templates use "legacy" message ids that are not affected by this change, so this fix should not be seen as a breaking change. Fixes #38422 PR Close #38452 | 19 August 2020, 21:16:48 UTC |
57d1a48 | Pete Bacon Darwin | 16 August 2020, 13:17:56 UTC | fix(localize): include the last placeholder in parsed translation text (#38452) When creating a `ParsedTranslation` from a set of message parts and placeholder names a textual representation of the message is computed. Previously the last placeholder and text segment were missing from this computed message string. PR Close #38452 | 19 August 2020, 21:16:45 UTC |
d662a64 | Alex Rickabaugh | 05 August 2020, 23:13:12 UTC | refactor(compiler-cli): add getTemplateOfComponent to TemplateTypeChecker (#38355) This commit adds a `getTemplateOfComponent` method to the `TemplateTypeChecker` API, which retrieves the actual nodes parsed and used by the compiler for template type-checking. This is advantageous for the language service, which may need to query other APIs in `TemplateTypeChecker` that require the same nodes used to bind the template while generating the TCB. Fixes #38352 PR Close #38355 | 19 August 2020, 21:07:07 UTC |
e57a2b3 | Aristeidis Bampakos | 19 August 2020, 06:30:07 UTC | docs: Typos fixes in the binding syntax guide (#38519) PR Close #38519 | 19 August 2020, 21:05:53 UTC |
a3f3082 | atscott | 19 August 2020, 16:05:11 UTC | release: cut the v10.0.11 release | 19 August 2020, 16:05:11 UTC |
0570c24 | Aristeidis Bampakos | 19 August 2020, 07:48:52 UTC | docs: Fix typo in the inputs and outputs guide (#38524) PR Close #38524 | 19 August 2020, 15:27:48 UTC |
398118f | Joey Perrott | 29 July 2020, 21:19:15 UTC | feat(dev-infra): create a wizard for building commit messages (#38457) Creates a wizard to walk through creating a commit message in the correct template for commit messages in Angular repositories. PR Close #38457 | 19 August 2020, 00:01:18 UTC |
dcc3f6d | Joey Perrott | 14 August 2020, 23:49:07 UTC | feat(dev-infra): tooling to check out pending PR (#38474) Creates a tool within ng-dev to checkout a pending PR from the upstream repository. This automates an action that many developers on the Angular team need to do periodically in the process of testing and reviewing incoming PRs. Example usage: ng-dev pr checkout <pr-number> PR Close #38474 | 18 August 2020, 23:22:52 UTC |
0af9533 | Andrew Scott | 18 August 2020, 14:57:42 UTC | fix(router): ensure routerLinkActive updates when associated routerLinks change (#38511) This commit introduces a new subscription in the `routerLinkActive` directive which triggers an update when any of its associated routerLinks have changes. `RouterLinkActive` not only needs to know when links are added or removed, but it also needs to know about if a link it already knows about changes in some way. Quick note that `from...mergeAll` is used instead of just a simple `merge` (or `scheduled...mergeAll`) to avoid introducing new rxjs operators in order to keep bundle size down. Fixes #18469 PR Close #38511 | 18 August 2020, 17:21:55 UTC |
f9a76a7 | Andrew Scott | 18 August 2020, 14:56:58 UTC | Revert "fix(router): ensure routerLinkActive updates when associated routerLinks change (#38349)" (#38511) This reverts commit e0e5c9f195460c7626c30248e7a79de9a2ebe377. Failures in Google tests were detected. PR Close #38511 | 18 August 2020, 17:21:52 UTC |
832a54e | Andrea Balducci | 17 August 2020, 09:24:09 UTC | docs(common): Wrong parameter description on TrackBy (#38495) Track By Function receive the T[index] data, not the node id. TrackByFunction reference description has the same issue. PR Close #38495 | 18 August 2020, 17:08:47 UTC |
e8f4294 | Joey Perrott | 17 August 2020, 23:00:33 UTC | refactor(localize): update yargs and typings for yargs (#38502) Updating yargs and typings for the updated yargs module. PR Close #38502 | 18 August 2020, 17:06:32 UTC |
ce448f4 | Joey Perrott | 17 August 2020, 22:41:03 UTC | refactor(ngcc): update yargs and typings for yargs (#38502) Updating yargs and typings for the updated yargs module. PR Close #38502 | 18 August 2020, 17:06:29 UTC |
847eaa0 | Joey Perrott | 17 August 2020, 22:40:40 UTC | refactor(dev-infra): update yargs and typings for yargs (#38502) Updating yargs and typings for the updated yargs module. PR Close #38502 | 18 August 2020, 17:06:26 UTC |
3e80f0e | atscott | 17 August 2020, 20:10:36 UTC | release: cut the v10.0.10 release | 17 August 2020, 20:10:36 UTC |
f3dd6c2 | Paul Gschwendtner | 14 August 2020, 18:43:59 UTC | fix(ngcc): detect synthesized delegate constructors for downleveled ES2015 classes (#38500) Similarly to the change we landed in the `@angular/core` reflection capabilities, we need to make sure that ngcc can detect pass-through delegate constructors for classes using downleveled ES2015 output. More details can be found in the preceding commit, and in the issue outlining the problem: #38453. Fixes #38453. PR Close #38500 | 17 August 2020, 19:50:19 UTC |
863acb6 | Paul Gschwendtner | 14 August 2020, 08:23:53 UTC | fix(core): detect DI parameters in JIT mode for downleveled ES2015 classes (#38500) In the Angular Package Format, we always shipped UMD bundles and previously even ES5 module output. With V10, we removed the ES5 module output but kept the UMD ES5 output. For this, we were able to remove our second TypeScript transpilation. Instead we started only building ES2015 output and then downleveled it to ES5 UMD for the NPM packages. This worked as expected but unveiled an issue in the `@angular/core` reflection capabilities. In JIT mode, Angular determines constructor parameters (for DI) using the `ReflectionCapabilities`. The reflection capabilities basically read runtime metadata of classes to determine the DI parameters. Such metadata can be either stored in static class properties like `ctorParameters` or within TypeScript's `design:params`. If Angular comes across a class that does not have any parameter metadata, it tries to detect if the given class is actually delegating to an inherited class. It does this naively in JIT by checking if the stringified class (function in ES5) matches a certain pattern. e.g. ```js function MatTable() { var _this = _super.apply(this, arguments) || this; ``` These patterns are reluctant to changes of the class output. If a class is not recognized properly, the DI parameters will be assumed empty and the class is **incorrectly** constructed without arguments. This actually happened as part of v10 now. Since we downlevel ES2015 to ES5 (instead of previously compiling sources directly to ES5), the class output changed slightly so that Angular no longer detects it. e.g. ```js var _this = _super.apply(this, __spread(arguments)) || this; ``` This happens because the ES2015 output will receive an auto-generated constructor if the class defines class properties. This constructor is then already containing an explicit `super` call. ```js export class MatTable extends CdkTable { constructor() { super(...arguments); this.disabled = true; } } ``` If we then downlevel this file to ES5 with `--downlevelIteration`, TypeScript adjusts the `super` call so that the spread operator is no longer used (not supported in ES5). The resulting super call is different to the super call that would have been emitted if we would directly transpile to ES5. Ultimately, Angular no longer detects such classes as having an delegate constructor -> and DI breaks. We fix this by expanding the rather naive RegExp patterns used for the reflection capabilities so that downleveled pass-through/delegate constructors are properly detected. There is a risk of a false-positive as we cannot detect whether `__spread` is actually the TypeScript spread helper, but given the reflection patterns already make lots of assumptions (e.g. that `super` is actually the superclass, we should be fine making this assumption too. The false-positive would not result in a broken app, but rather in unnecessary providers being injected (as a noop). Fixes #38453 PR Close #38500 | 17 August 2020, 19:50:16 UTC |
989e8a1 | Andrew Scott | 05 August 2020, 17:34:12 UTC | fix(router): ensure routerLinkActive updates when associated routerLinks change (#38349) This commit introduces a new subscription in the `routerLinkActive` directive which triggers an update when any of its associated routerLinks have changes. `RouterLinkActive` not only needs to know when links are added or removed, but it also needs to know about if a link it already knows about changes in some way. Quick note that `from...mergeAll` is used instead of just a simple `merge` (or `scheduled...mergeAll`) to avoid introducing new rxjs operators in order to keep bundle size down. Fixes #18469 PR Close #38349 | 17 August 2020, 19:34:02 UTC |
84d1ba7 | Keen Yee Liau | 31 July 2020, 04:26:02 UTC | refactor(language-service): [Ivy] remove temporary compiler (#38310) Now that Ivy compiler has a proper `TemplateTypeChecker` interface (see https://github.com/angular/angular/pull/38105) we no longer need to keep the temporary compiler implementation. The temporary compiler was created to enable testing infrastructure to be developed for the Ivy language service. This commit removes the whole `ivy/compiler` directory and moves two functions `createTypeCheckingProgramStrategy` and `getOrCreateTypeCheckScriptInfo` to the `LanguageService` class. Also re-enable the Ivy LS test since it's no longer blocking development. PR Close #38310 | 17 August 2020, 18:30:36 UTC |
b32126c | Andrew Scott | 14 August 2020, 17:32:55 UTC | fix(common): Allow scrolling when browser supports scrollTo (#38468) This commit fixes a regression from "fix(common): ensure scrollRestoration is writable (#30630)" that caused scrolling to not happen at all in browsers that do not support scroll restoration. The issue was that `supportScrollRestoration` was updated to return `false` if a browser did not have a writable `scrollRestoration`. However, the previous behavior was that the function would return `true` if `window.scrollTo` was defined. Every scrolling function in the `ViewportScroller` used `supportScrollRestoration` and, with the update in bb88c9fa3daac80086efbda951d81c159e3840f4, no scrolling would be performed if a browser did not have writable `scrollRestoration` but _did_ have `window.scrollTo`. Note, that this failure was detected in the saucelabs tests. IE does not support scroll restoration so IE tests were failing. PR Close #38468 | 14 August 2020, 18:41:26 UTC |
d5e09f4 | waterplea | 13 August 2020, 19:53:46 UTC | fix(core): fix multiple nested views removal from ViewContainerRef (#38317) When removal of one view causes removal of another one from the same ViewContainerRef it triggers an error with views length calculation. This commit fixes this bug by removing a view from the list of available views before invoking actual view removal (which might be recursive and relies on the length of the list of available views). Fixes #38201. PR Close #38317 | 13 August 2020, 20:35:56 UTC |
c25c57c | Ahn | 13 August 2020, 13:24:03 UTC | style(compiler-cli): remove unused constant (#38441) Remove unused constant allDiagnostics PR Close #38441 | 13 August 2020, 20:32:44 UTC |
692e34d | Sonu Kapoor | 10 August 2020, 23:02:47 UTC | test(docs-infra): remove deprecated `ReflectiveInjector` (#38408) This commit replaces the old and slow `ReflectiveInjector` that was deprecated in v5 with the new `Injector`. Note: This change was only done in the spec files inside the `aio` folder. While changing this, it was not possible to directly use `Injector.get` to get the correct typing for the mocked classes. For example: ```typescript locationService = injector.get<TestLocationService>(LocationService); ``` Fails with: > Argument of type 'typeof LocationService' is not assignable to parameter of type 'Type<TestLocationService> | InjectionToken<TestLocationService> | AbstractType<TestLocationService>'. Type 'typeof LocationService' is not assignable to type 'Type<TestLocationService>'. Property 'searchResult' is missing in type 'LocationService' but required in type 'TestLocationService'. Therefore, it was necessary to first convert to `unknown` and then to `TestLocationService`. ```typescript locationService = injector.get(LocationService) as unknown as TestLocationService; ``` PR Close #38408 | 13 August 2020, 19:56:17 UTC |
071348e | Paul Gschwendtner | 13 August 2020, 08:09:43 UTC | build: run browsers tests on chromium locally (#38435) (#38450) Previously we added a browser target for `firefox` into the dev-infra package. It looks like as part of this change, we accidentally switched the local web testing target to `firefox`. Web tests are not commonly run locally as we use Domino and NodeJS tests for primary development. Sometimes though we intend to run tests in a browser. This would currently work with Firefox but not on Windows (as Firefox is a noop there in Bazel). This commit switches the primary browser back to `chromium`. Also Firefox has been added as a second browser to web testing targets. This allows us to reduce browsers in the legacy Saucelabs job. i.e. not running Chrome and Firefox there. This should increase stability and speed up the legacy job (+ reduced rate limit for Saucelabs). PR Close #38435 PR Close #38450 | 13 August 2020, 19:55:16 UTC |
8803f9f | Joey Perrott | 19 June 2020, 17:02:33 UTC | ci: disable saucelabs tests on Firefox ESR while investigating failures (#37647) (#38450) Firefox ESR tests fail running the acceptance tests on saucelabs. These tests are being disabled while investigating the failure as it is not entirely clear whether this is saucelabs failure or a something like a memory pressure error in the test itself. PR Close #37647 PR Close #38450 | 13 August 2020, 19:55:13 UTC |
aa816d3 | Andrew Scott | 13 August 2020, 18:03:31 UTC | ci: disable closure size tracking test (#38449) We should define ngDevMode to false in Closure, but --define only works in the global scope. With ngDevMode not being set to false, this size tracking test provides little value but a lot of headache to continue updating the size. PR Close #38449 | 13 August 2020, 18:41:16 UTC |
a5ba40a | Andrew Scott | 13 August 2020, 16:27:15 UTC | refactor(router): Add annotations to correct Router documentation (#38448) The `@HostListener` functions and lifecycle hooks aren't intended to be public API but do need to appear in the `.d.ts` files or type checking will break. Adding the nodoc annotation will correctly hide this function on the docs site. Again, note that `@internal` cannot be used because the result would be that the functions then do not appear in the `.d.ts` files. This would break lifecycle hooks because the class would be seen as not implementing the interface correctly. This would also break `HostListener` because the compiled templates would attempt to call the `onClick` functions, but those would also not appear in the `d.ts` and would produce errors like "Property 'onClick' does not exist on type 'RouterLinkWithHref'". PR Close #38448 | 13 August 2020, 18:36:13 UTC |
cb83b8a | crisbeto | 13 August 2020, 06:02:59 UTC | fix(core): error if CSS custom property in host binding has number in name (#38432) Fixes an error if a CSS custom property, used inside a host binding, has a number in its name. The error is thrown because the styling parser only expects characters from A to Z,dashes, underscores and a handful of other characters. Fixes #37292. PR Close #38432 | 13 August 2020, 17:35:11 UTC |
8bb726e | Joey Perrott | 13 August 2020, 14:43:41 UTC | build: update ng-dev config file for new commit message configuration (#38430) Removes the commit message types from the config as they are now staticly defined in the dev-infra code. PR Close #38430 | 13 August 2020, 16:11:25 UTC |
88662a5 | Joey Perrott | 12 August 2020, 16:36:59 UTC | feat(dev-infra): migrate to unified commit message types in commit message linting (#38430) Previously commit message types were provided as part of the ng-dev config in the repository using the ng-dev toolset. This change removes this configuration expectation and instead predefines the valid types for commit messages. Additionally, with this new unified set of types requirements around providing a scope have been put in place. Scopes are either required, optional or forbidden for a given commit type. PR Close #38430 | 13 August 2020, 16:11:23 UTC |
9b32a59 | Paul Gschwendtner | 13 August 2020, 12:23:15 UTC | feat(dev-infra): update to latest benchpress version (#38440) We recently updated the benchpress package to have a more loose Angular core peer dependency, and less other unused dependencies. We should make sure to use that in the dev-infra package so that peer dependencies can be satisified in consumer projects, and so that less unused dependencies are brought into projects. PR Close #38440 | 13 August 2020, 16:09:34 UTC |
ffd1691 | Joey Perrott | 30 July 2020, 21:01:03 UTC | feat(dev-infra): save invalid commit message attempts to be restored on next commit attempt (#38304) When a commit message fails validation, rather than throwing out the commit message entirely the commit message is saved into a draft file and restored on the next commit attempt. PR Close #38304 | 13 August 2020, 15:45:28 UTC |
afd4417 | Joey Perrott | 12 August 2020, 16:40:37 UTC | refactor(dev-infra): extract the commit message parsing function into its own file (#38429) Extracts the commit message parsing function into its own file. PR Close #38429 | 12 August 2020, 23:10:08 UTC |
2f53bbb | Sergey Falinsky | 30 July 2020, 22:30:57 UTC | docs: remove unused Input decorator (#38306) In the part "5. Add In-app Navigation" of the tutorial it was already removed PR Close #38306 | 12 August 2020, 18:26:11 UTC |
a4f99f4 | Joey Perrott | 11 August 2020, 22:29:11 UTC | refactor(dev-infra): use promptConfirm util in ng-dev's formatter (#38419) Use the promptConfirm util instead of manually creating a confirm prompt with inquirer. PR Close #38419 | 12 August 2020, 18:25:12 UTC |
0711128 | Alan Agius | 12 August 2020, 08:44:45 UTC | docs: update web-worker CLI commands to bash style (#38421) With this change we update the CLI generate commands to be in bash style. PR Close #38421 | 12 August 2020, 18:24:36 UTC |
25f79ba | Andrew Kushnir | 12 August 2020, 16:35:37 UTC | release: cut the v10.0.9 release | 12 August 2020, 16:35:37 UTC |
2590a9b | Vlad GURDIGA | 04 August 2020, 07:35:00 UTC | docs: delete one superfluous sentence (#38339) PR Close #38339 | 12 August 2020, 15:23:19 UTC |
f68a1d3 | Joey Perrott | 11 August 2020, 23:09:00 UTC | build: run formatting automatically on pre-commit hook (#38402) Runs the `ng-dev format changed` command whenever the `git commit` command is run. As all changes which are checked by CI will require this check passing, this change can prevent needless roundtrips to correct lint/formatting errors. This automatic formatting can be bypassed with the `--no-verify` flag on the `git commit` command. PR Close #38402 | 11 August 2020, 23:32:55 UTC |
89f7f63 | Joey Perrott | 11 August 2020, 23:08:35 UTC | feat(dev-infra): Add support for formatting all staged files (#38402) Adds an ng-dev formatter option to format all of the staged files. This will can be used to format only the staged files during the pre-commit hook. PR Close #38402 | 11 August 2020, 23:32:55 UTC |
ca2b4bc | JoostK | 03 July 2020, 18:12:24 UTC | fix(compiler-cli): avoid creating value expressions for symbols from type-only imports (#38415) In TypeScript 3.8 support was added for type-only imports, which only brings in the symbol as a type, not their value. The Angular compiler did not yet take the type-only keyword into account when representing symbols in type positions as value expressions. The class metadata that the compiler emits would include the value expression for its parameter types, generating actual imports as necessary. For type-only imports this should not be done, as it introduces an actual import of the module that was originally just a type-only import. This commit lets the compiler deal with type-only imports specially, preventing a value expression from being created. Backports #37912 to patch PR Close #38415 | 11 August 2020, 19:31:58 UTC |
f6cfc92 | Andrew Kushnir | 11 August 2020, 17:34:59 UTC | ci: update payload size limits for Closure tests (#38411) Currently the Closure-related tests are not tree-shaking the dev-mode-only content, thus payload size checks are failing even if dev-mode-only content is added. The https://github.com/angular/angular/commit/2e9fdbde9eb26fea17e3e68e272dc1c2cc9f4fa3 commit added some logic to JIT compiler, which is likely triggered the payload size increase. This commit updates the payload size limits for Closure-related test to get master and patch branches back to the "green" state. PR Close #38411 | 11 August 2020, 17:59:40 UTC |
5b87c67 | JoostK | 03 July 2020, 22:16:18 UTC | fix(compiler-cli): infer quote expressions as any type in type checker (#37917) "Quote expressions" are expressions that start with an identifier followed by a comma, allowing arbitrary syntax to follow. These kinds of expressions would throw a an error in the template type checker, which would make them hard to track down. As quote expressions are not generally used at all, the error would typically occur for URLs that would inadvertently occur in a binding: ```html <a [href]="https://example.com"></a> ``` This commit lets such bindings be inferred as the `any` type. Fixes #36568 Resolves FW-2051 PR Close #37917 | 11 August 2020, 16:54:54 UTC |
f5b9d87 | JoostK | 03 July 2020, 17:35:44 UTC | fix(compiler): evaluate safe navigation expressions in correct binding order (#37911) When using the safe navigation operator in a binding expression, a temporary variable may be used for storing the result of a side-effectful call. For example, the following template uses a pipe and a safe property access: ```html <app-person-view [enabled]="enabled" [firstName]="(person$ | async)?.name"></app-person-view> ``` The result of the pipe evaluation is stored in a temporary to be able to check whether it is present. The temporary variable needs to be declared in a separate statement and this would also cause the full expression itself to be pulled out into a separate statement. This would compile into the following pseudo-code instructions: ```js var temp = null; var firstName = (temp = pipe('async', ctx.person$)) == null ? null : temp.name; property('enabled', ctx.enabled)('firstName', firstName); ``` Notice that the pipe evaluation happens before evaluating the `enabled` binding, such that the runtime's internal binding index would correspond with `enabled`, not `firstName`. This introduces a problem when the pipe uses `WrappedValue` to force a change to be detected, as the runtime would then mark the binding slot corresponding with `enabled` as dirty, instead of `firstName`. This results in the `enabled` binding to be updated, triggering setters and affecting how `OnChanges` is called. In the pseudo-code above, the intermediate `firstName` variable is not strictly necessary---it only improved readability a bit---and emitting it inline with the binding itself avoids the out-of-order execution of the pipe: ```js var temp = null; property('enabled', ctx.enabled) ('firstName', (temp = pipe('async', ctx.person$)) == null ? null : temp.name); ``` This commit introduces a new `BindingForm` that results in the above code to be generated and adds compiler and acceptance tests to verify the proper behavior. Fixes #37194 PR Close #37911 | 11 August 2020, 16:51:11 UTC |
3acebdc | JoostK | 27 June 2020, 17:27:24 UTC | fix(core): prevent NgModule scope being overwritten in JIT compiler (#37795) In JIT compiled apps, component definitions are compiled upon first access. For a component class `A` that extends component class `B`, the `B` component is also compiled when the `InheritDefinitionFeature` runs during the compilation of `A` before it has finalized. A problem arises when the compilation of `B` would flush the NgModule scoping queue, where the NgModule declaring `A` is still pending. The scope information would be applied to the definition of `A`, but its compilation is still in progress so requesting the component definition would compile `A` again from scratch. This "inner compilation" is correctly assigned the NgModule scope, but once the "outer compilation" of `A` finishes it would overwrite the inner compilation's definition, losing the NgModule scope information. In summary, flushing the NgModule scope queue could trigger a reentrant compilation, where JIT compilation is non-reentrant. To avoid the reentrant compilation, a compilation depth counter is introduced to avoid flushing the NgModule scope during nested compilations. Fixes #37105 PR Close #37795 | 11 August 2020, 16:50:28 UTC |
02aca13 | Andrew Kushnir | 10 August 2020, 22:15:24 UTC | fix(dev-infra): update i18n-related file locations in PullApprove config (#38403) The changes in https://github.com/angular/angular/pull/38368 split `render3/i18n.ts` files into smaller scripts, but the PullApprove config was not updated to reflect that. This commit updates the PullApprove config to reflect the recent changes in i18n-related files. PR Close #38403 | 11 August 2020, 00:29:52 UTC |
32109dc | crisbeto | 01 August 2020, 09:57:29 UTC | fix(core): queries not matching string injection tokens (#38321) Queries weren't matching directives that provide themselves via string injection tokens, because the assumption was that any string passed to a query decorator refers to a template reference. These changes make it so we match both template references and providers while giving precedence to the template references. Fixes #38313. Fixes #38315. PR Close #38321 | 10 August 2020, 22:27:25 UTC |
c9acb7b | crisbeto | 09 August 2020, 08:10:35 UTC | fix(compiler-cli): preserve quotes in class member names (#38387) When we were outputting class members for `setClassMetadata` calls, we were using the string representation of the member name. This can lead to us generating invalid code when the name contains dashes and is quoted (e.g. `@Output() 'has-dashes' = new EventEmitter()`), because the quotes will be stripped for the string representation. These changes fix the issue by using the original name AST node that was used for the declaration and which knows whether it's supposed to be quoted or not. Fixes #38311. PR Close #38387 | 10 August 2020, 22:26:46 UTC |
545444d | Misko Hevery | 06 August 2020, 21:01:59 UTC | refactor(core): break `i18n.ts` into smaller files (#38368) This commit contains no changes to code. It only breaks `i18n.ts` file into `i18n.ts` + `i18n_apply.ts` + `i18n_parse.ts` + `i18n_postprocess.ts` for easier maintenance. PR Close #38368 | 10 August 2020, 22:07:44 UTC |
7f11149 | Joey Perrott | 06 August 2020, 17:59:20 UTC | fix(platform-server): remove styles added by ServerStylesHost on destruction (#38367) When a ServerStylesHost instance is destroyed, all of the shared styles added to the DOM head element by that instance should be removed. Without this removal, over time a large number of style rules will build up and cause extra memory pressure. This brings the ServerStylesHost in line with the DomStylesHost used by the platform browser, which performs this same cleanup. PR Close #38367 | 10 August 2020, 20:12:24 UTC |
ee5123f | Misko Hevery | 04 August 2020, 19:42:12 UTC | fix(core): Store the currently selected ICU in `LView` (#38345) The currently selected ICU was incorrectly being stored it `TNode` rather than in `LView`. Remove: `TIcuContainerNode.activeCaseIndex` Add: `LView[TIcu.currentCaseIndex]` PR Close #38345 | 10 August 2020, 19:41:18 UTC |
3dfaf56 | Gillan Martindale | 10 August 2020, 15:28:39 UTC | docs: Remove redundant sentence from Router (#38398) PR Close #38398 | 10 August 2020, 16:52:31 UTC |
432a688 | cindygk | 07 August 2020, 23:59:20 UTC | docs: update team contributors page (#38384) Removing Kara, Denny, Judy, Tony, Matias as they are no longer actively working on the project PR Close #38384 | 10 August 2020, 16:51:51 UTC |
42a649d | Shmuela Jacobs | 28 April 2020, 11:30:55 UTC | docs: fix purpose description of "builders.json" (#36830) PR Close #36830 | 07 August 2020, 22:04:57 UTC |
47fbfb3 | Andrew Kushnir | 06 August 2020, 02:14:08 UTC | refactor(forms): get rid of duplicate functions (#38371) (#38380) This commit performs minor refactoring in Forms package to get rid of duplicate functions. It looks like the functions were duplicated due to a slightly different type signatures, but their logic is completely identical. The logic in retained functions remains the same and now these function also accept a generic type to achieve the same level of type safety. PR Close #38380 | 07 August 2020, 19:11:37 UTC |
4107abb | Alessandro | 07 August 2020, 09:24:14 UTC | refactor(common): use getElementById in ViewportScroller.scrollToAnchor (#38372) This commit uses getElementById and getElementsByName when an anchor scroll happens, to avoid escaping the anchor and wrapping the code in a try/catch block. Related to #28960 PR Close #38372 | 07 August 2020, 18:17:53 UTC |
1d26bc5 | JoostK | 29 July 2020, 21:44:03 UTC | test: update components repo to test against recent revision (#38273) (#38378) The changes in angular/components#20136 are required to allow the framework tests to succeed. PR Close #38273 PR Close #38378 | 07 August 2020, 18:12:49 UTC |
ef7b70a | Misko Hevery | 06 August 2020, 02:16:20 UTC | refactor(core): add debug ranges to `LViewDebug` with matchers (#38359) This change provides better typing for the `LView.debug` property which is intended to be used by humans while debugging the application with `ngDevMode` turned on. In addition this chang also adds jasmine matchers for better asserting that `LView` is in the correct state. PR Close #38359 | 06 August 2020, 23:58:12 UTC |
deb290b | Misko Hevery | 22 July 2020, 21:19:36 UTC | refactor(core): extract `icuSwitchCase`, `icuUpdateCase`, `removeNestedIcu` (#38154) (#38370) Extract `icuSwitchCase`, `icuUpdateCase`, `removeNestedIcu` into separate functions to align them with the `.debug` property text. PR Close #38154 PR Close #38370 | 06 August 2020, 23:27:28 UTC |
5c8b7d2 | Misko Hevery | 21 July 2020, 05:06:09 UTC | refactor(core): add human readable `debug` for i18n (#38154) (#38370) I18n code breaks up internationalization into opCodes which are then stored in arrays. To make it easier to debug the codebase this PR adds `debug` property to the arrays which presents the data in human readable format. PR Close #38154 PR Close #38370 | 06 August 2020, 23:27:27 UTC |
f5d5bac | Sonu Kapoor | 03 August 2020, 16:32:14 UTC | fix(service-worker): fix the chrome debugger syntax highlighter (#38332) The Chrome debugger is not able to render the syntax properly when the code contains backticks. This is a known issue in Chrome and they have an open [issue](https://bugs.chromium.org/p/chromium/issues/detail?id=659515) for that. This commit adds the work-around to use double backslash with one backtick ``\\` `` at the end of the line. This can be reproduced by running the following command: `yarn bazel test //packages/forms/test --config=debug` When opening the chrome debugger tools, you should see the correct code highlighting syntax. PR Close #38332 | 06 August 2020, 22:22:57 UTC |
ad16e2f | George Kalpakas | 06 August 2020, 15:07:00 UTC | docs(service-worker): describe how asset-/data-group order affects request handling (#38364) The order of asset- and data-groups in `ngsw-config.json` affects how a request is handled by the ServiceWorker. Previously, this was not clearly documented. This commit describes how the order of asset-/data-groups affects request handling. Closes #21189 PR Close #38364 | 06 August 2020, 18:41:59 UTC |
d0191a7 | George Kalpakas | 06 August 2020, 16:39:06 UTC | fix(docs-infra): correctly generate CLI commands docs when the overview page moves (#38365) Previously, the [processCliCommands][1] dgeni processor, which is used to generate the docs pages for the CLI commands, expected the CLI commands overview page (with a URL of `cli`) to exist as a child of a top-level navigation section (`CLI Commands`). If one tried to move the `CLI Commands` section inside another section, `processCliCommnads` would fail to find it and thus fail to generate the CLI commands docs. This problem came up in #38353. This commit updates the `processCliCommands` processor to be able to find it regardless of the position of the `CLI Commands` section inside the navigation doc. [1]: https://github.com/angular/angular/blob/dca4443a8ed65d341356fe62f6df9934e6314dfe/aio/tools/transforms/cli-docs-package/processors/processCliCommands.js#L7-L9 PR Close #38365 | 06 August 2020, 18:41:07 UTC |
016a41b | Doug Parker | 01 August 2020, 00:42:21 UTC | fix(compiler-cli): mark eager `NgModuleFactory` construction as not side effectful (#38320) Roll forward of #38147. This allows Closure compiler to tree shake unused constructor calls to `NgModuleFactory`, which is otherwise considered side-effectful. The Angular compiler generates factory objects which are exported but typically not used, as they are only needed for compatibility with View Engine. This results in top-level constructor calls, such as: ```typescript export const FooNgFactory = new NgModuleFactory(Foo); ``` `NgModuleFactory` has a side-effecting constructor, so this statement cannot be tree shaken, even if `FooNgFactory` is never imported. The `NgModuleFactory` continues to reference its associated `NgModule` and prevents the module and all its unused dependencies from being tree shaken, making Closure builds significantly larger than necessary. The fix here is to wrap `NgModuleFactory` constructor with `noSideEffects(() => /* ... */)`, which tricks the Closure compiler into assuming that the invoked function has no side effects. This allows it to tree-shake unused `NgModuleFactory()` constructors when they aren't imported. Since the factory can be removed, the module can also be removed (if nothing else references it), thus tree shaking unused dependencies as expected. The one notable edge case is for lazy loaded modules. Internally, lazy loading is done as a side effect when the lazy script is evaluated. For Angular, this side effect is registering the `NgModule`. In Ivy this is done by the `NgModuleFactory` constructor, so lazy loaded modules **cannot** have their top-level `NgModuleFactory` constructor call tree shaken. We handle this case by looking for the `id` field on `@NgModule` annotations. All lazy loaded modules include an `id`. When this `id` is found, the `NgModuleFactory` is generated **without** with `noSideEffects()` call, so Closure will not tree shake it and the module will lazy-load correctly. PR Close #38320 | 06 August 2020, 16:02:17 UTC |
7a527b4 | Doug Parker | 01 August 2020, 00:35:38 UTC | refactor(compiler): add `ModuleInfo` interface (#38320) This introduces a new `ModuleInfo` interface to represent some of the statically analyzed data from an `NgModule`. This gets passed into transforms to give them more context around a given `NgModule` in the compilation. PR Close #38320 | 06 August 2020, 16:02:17 UTC |
fd28f0c | Doug Parker | 01 August 2020, 00:25:08 UTC | refactor(core): add `noSideEffects()` as private export (#38320) This is to enable the compiler to generate `noSideEffects()` calls. This is a private export, gated by `ɵ`. PR Close #38320 | 06 August 2020, 16:02:17 UTC |
7342b1e | Ajit Singh | 06 August 2020, 03:46:38 UTC | docs: remove https://angular.io from internal links (#38360) PR #36601 introduces icons on all links if the link contains https:// or http:// but there were some internal links left which contained https://angular.io. Removed https://angular.io from all these links. PR Close #38360 | 06 August 2020, 16:01:35 UTC |
58f4b3a | marcvincenti | 23 May 2019, 12:44:46 UTC | fix(common): ensure scrollRestoration is writable (#30630) (#38357) Some specialised browsers that do not support scroll restoration (e.g. some web crawlers) do not allow `scrollRestoration` to be writable. We already sniff the browser to see if it has the `window.scrollTo` method, so now we also check whether `window.history.scrollRestoration` is writable too. Fixes #30629 PR Close #30630 PR Close #38357 | 06 August 2020, 00:49:56 UTC |
3974312 | Pete Bacon Darwin | 14 July 2020, 16:13:22 UTC | style(docs-infra): reformat ScrollService file (#30630) (#38357) Pre-empting code formatting changes when the code is updated in a subsequent commit. PR Close #30630 PR Close #38357 | 06 August 2020, 00:49:55 UTC |
db897f4 | mgechev | 04 August 2020, 17:47:29 UTC | docs: add a page with the Angular roadmap (#38356) PR Close #38356 | 06 August 2020, 00:16:38 UTC |
77093c2 | Sonu Kapoor | 15 July 2020, 22:59:11 UTC | refactor(platform-browser): specify return type of parseEventName (#38089) This commit refactors the argument of the `parseEventName` function to use an object with named properties instead of using an object indexer. PR Close #38089 | 06 August 2020, 00:06:29 UTC |
4151314 | Joey Perrott | 04 August 2020, 17:56:39 UTC | fix(router): prevent calling unsubscribe on undefined subscription in RouterPreloader (#38344) Previously, the `ngOnDestroy` method called `unsubscribe` regardless of if `subscription` had been initialized. This can lead to an error attempting to call `unsubscribe` of undefined. This change prevents this error, and instead only attempts `unsubscribe` when the subscription has been defined. PR Close #38344 | 05 August 2020, 17:54:42 UTC |
df01a82 | Charles Lyding | 10 July 2020, 16:41:35 UTC | fix(compiler-cli): match wrapHost parameter types within plugin interface (#38004) The `TscPlugin` interface using a type of `ts.CompilerHost&Partial<UnifiedModulesHost>` for the `host` parameter of the `wrapHost` method. However, prior to this change, the interface implementing `NgTscPlugin` class used a type of `ts.CompilerHost&UnifiedModulesHost` for the parameter. This change corrects the inconsistency and allows `UnifiedModulesHost` members to be optional when using the `NgtscPlugin`. PR Close #38004 | 05 August 2020, 17:54:08 UTC |
1912fa3 | Paul Gschwendtner | 24 July 2020, 15:47:30 UTC | feat(dev-infra): provide organization-wide merge-tool label configuration (#38223) Previously, each Angular repository had its own strategy/configuration for merging pull requests and cherry-picking. We worked out a new strategy for labeling/branching/versioning that should be the canonical strategy for all actively maintained projects in the Angular organization. This PR provides a `ng-dev` merge configuration that implements the labeling/branching/merging as per the approved proposal. See the following document for the proposal this commit is based on for the merge script labeling/branching: https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU The merge tool label configuration can be conveniently accesed within each `.ng-dev` configuration, and can also be extended if there are special labels on individual projects. This is one of the reasons why the labels are not directly built into the merge script. The script should remain unopinionated and flexible. The configuration is conceptually powerful enough to achieve the procedures as outlined in the versioning/branching/labeling proposal. PR Close #38223 | 05 August 2020, 17:53:18 UTC |
db5e1de | Paul Gschwendtner | 24 July 2020, 16:05:51 UTC | feat(dev-infra): support user-failures when computing branches for target label (#38223) The merge tool provides a way for configurations to determine the branches for a label lazily. This is supported because it allows labels to respect the currently selected base branch through the Github UI. e.g. if `target: label` is applied on a PR and the PR is based on the patch branch, then the change could only go into the selected target branch, while if it would be based on `master`, the change would be cherry-picked to `master` too. This allows for convenient back-porting of changes if they did not apply cleanly to the primary development branch (`master`). We want to expand this function so that it is possible to report failures if an invalid target label is appplied (e.g. `target: major` not allowed in some situations), or if the Github base branch is not valid for the given target label (e.g. if `target: lts` is used, but it's not based on a LTS branch). PR Close #38223 | 05 August 2020, 17:53:18 UTC |
84661ea | Paul Gschwendtner | 24 July 2020, 15:59:12 UTC | feat(dev-infra): provide github API instance to lazy merge configuration (#38223) The merge script currently accepts a configuration function that will be invoked _only_ when the `ng-dev merge` command is executed. This has been done that way because the merge tooling usually relies on external requests to Git or NPM for constructing the branch configurations. We do not want to perform these slow external queries on any `ng-dev` command though, so this became a lazily invoked function. This commit adds support for these configuration functions to run asynchronously (by returning a Promise that will be awaited), so that requests could also be made to the Github API. This is benefical as it could avoid dependence on the local Git state and the HTTP requests are more powerful/faster. Additionally, in order to be able to perform Github API requests with an authenticated instance, the merge tool will pass through a `GithubClient` instance that uses the specified `--github-token` (or from the environment). This ensures that all API requests use the same `GithubClient` instance and can be authenticated (mitigating potential rate limits). PR Close #38223 | 05 August 2020, 17:53:18 UTC |
629203f | Zara Cooper | 31 July 2020, 18:10:18 UTC | docs: fix typo in glossary (#38318) Add missing comma in structural directive section that made dash display incorrectly. PR Close #38318 | 05 August 2020, 17:52:28 UTC |
2ab8e88 | Alex Rickabaugh | 04 August 2020, 22:51:57 UTC | release: cut the v10.0.8 release | 04 August 2020, 22:51:57 UTC |
a91dd2e | Alex Eagle | 17 July 2020, 20:31:28 UTC | build: cleanup .bazelrc file to no longer set unused flags (#38124) This option is no longer needed in Bazel and will be an error in the future PR Close #38124 | 03 August 2020, 19:53:11 UTC |
6eca80b | Zara Cooper | 01 August 2020, 20:00:34 UTC | revert: docs(core): correct SomeService to SomeComponent (#38325) This reverts commit b4449e35bfd04c5858ded17c0ce56248d680e8d4. The example given from the previous change was for a component selector and not a provider selector. This change fixes it. Fixes #38323. PR Close #38325 | 03 August 2020, 19:52:20 UTC |
cea4678 | Joey Perrott | 31 July 2020, 19:26:39 UTC | fix(compiler): update unparsable character reference entity error messages (#38319) Within an angular template, when a character entity is unable to be parsed, previously a generic unexpected character error was thrown. This does not properly express the issue that was discovered as the issue is actually caused by the discovered character making the whole of the entity unparsable. The compiler will now instead inform via the error message what string was attempted to be parsed and what it was attempted to be parsed as. Example, for this template: ``` <p> ģp </p> ``` Before this change: `Unexpected character "p"` After this change: `Unable to parse entity "ģp" - hexadecimal character reference entities must end with ";"` Fixes #26067 PR Close #38319 | 31 July 2020, 22:32:54 UTC |
9c5fc16 | George Kalpakas | 30 July 2020, 10:03:23 UTC | refactor(docs-infra): update docs examples `tslint.json` to match CLI and fix failures (#38143) This commit updates the `tslint.json` configuration file, that is used to lint the docs examples, to match the one generated for new Angular CLI apps. There are some minimal differences (marked with `TODO` comments) for things, such as component selector prefix, that would require extensive and/or difficult to validate changes in guides. This commit also includes the final adjustments to make the docs examples code compatible with the new tslint rules. (The bulk of the work has been done in previous commits.) PR Close #38143 | 31 July 2020, 18:00:08 UTC |
42f5770 | George Kalpakas | 30 July 2020, 10:03:21 UTC | refactor(docs-infra): fix docs examples for Angular-specific tslint rules (#38143) This commit updates the docs examples to be compatible with the following Angular-specific tslint rules: - `component-selector` - `directive-selector` - `no-conflicting-lifecycle` - `no-host-metadata-property` - `no-input-rename` - `no-output-native` - `no-output-rename` This is in preparation of updating the docs examples `tslint.json` to match the one generated for new Angular CLI apps in a future commit. PR Close #38143 | 31 July 2020, 18:00:08 UTC |
01db374 | George Kalpakas | 30 July 2020, 10:03:19 UTC | refactor(docs-infra): fix docs examples for tslint rule `prefer-const` (#38143) This commit updates the docs examples to be compatible with the `prefer-const` tslint rule. This is in preparation of updating the docs examples `tslint.json` to match the one generated for new Angular CLI apps in a future commit. PR Close #38143 | 31 July 2020, 18:00:08 UTC |
07a0033 | George Kalpakas | 30 July 2020, 10:03:17 UTC | refactor(docs-infra): fix docs examples for tslint rules related to underscores in variable names (#38143) This commit updates the docs examples to be compatible with the `variable-name` tslint rule without requiring the `allow-leading-underscore` and `allow-trailing-underscore` options. This is in preparation of updating the docs examples `tslint.json` to match the one generated for new Angular CLI apps in a future commit. PR Close #38143 | 31 July 2020, 18:00:08 UTC |
ac009d2 | George Kalpakas | 30 July 2020, 10:03:16 UTC | refactor(docs-infra): fix docs examples for tslint rules related to variable names (#38143) This commit updates the docs examples to be compatible with the `no-shadowed-variable` and `variable-name` tslint rules. This is in preparation of updating the docs examples `tslint.json` to match the one generated for new Angular CLI apps in a future commit. PR Close #38143 | 31 July 2020, 18:00:08 UTC |
eb8f8c9 | George Kalpakas | 30 July 2020, 10:03:15 UTC | refactor(docs-infra): fix docs examples for tslint rule `member-ordering` (#38143) This commit updates the docs examples to be compatible with the `member-ordering` tslint rule. This is in preparation of updating the docs examples `tslint.json` to match the one generated for new Angular CLI apps in a future commit. PR Close #38143 | 31 July 2020, 18:00:08 UTC |