This project is mirrored from https://github.com/angular/angular.git.
Pull mirroring updated .
- Aug 27, 2020
-
-
Misko Hevery authored
-
- Aug 26, 2020
-
-
Aristeidis Bampakos authored
Apply minor fixes to various guides of the NgModules section PR Close #36177
-
Aristeidis Bampakos authored
In the latest Angular CLI versions, the `karma.conf.js` file resides in the root folder of the Angular CLI project. PR Close #38571
-
Aristeidis Bampakos authored
The guide ends with a sentence that implies there are more tests following the end of the guide. PR Close #38573
-
Dmitrii Kanatnikov authored
Close #38361 zone.js monkey patch toString, and check the instance is `Promise` or not by using `instanceof Promise`, sometimes when Promise is not available, the `instanceof` operation fails and throw `TypeError: Right-hand side of 'instanceof' is not an object` this PR check `typeof Promise` equals to function or not to prevent the error. PR Close #38350
-
- Aug 25, 2020
-
-
Misko Hevery authored
-
windmichael authored
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
-
Keen Yee Liau authored
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
-
Keen Yee Liau authored
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
-
- Aug 22, 2020
-
-
crisbeto authored
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
-
George Kalpakas authored
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
-
- Aug 21, 2020
-
-
Aristeidis Bampakos authored
PR Close #38522
-
Ajit Singh authored
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
-
Santosh Yadav authored
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
-
Leon Yu authored
PR Close #38541
-
- Aug 20, 2020
-
-
Misko Hevery authored
This reverts commit 87bbf69c.
-
Misko Hevery authored
This reverts commit 55285364.
-
Bjarki authored
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
-
Pete Bacon Darwin authored
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
-
Pete Bacon Darwin authored
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
-
Alex Rickabaugh authored
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
-
Aristeidis Bampakos authored
PR Close #38519
-
- Aug 19, 2020
-
-
Aristeidis Bampakos authored
PR Close #38524
-
Joey Perrott authored
Creates a wizard to walk through creating a commit message in the correct template for commit messages in Angular repositories. PR Close #38457
-
Joey Perrott authored
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
-
Andrew Scott authored
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
-
Andrew Scott authored
Revert "fix(router): ensure routerLinkActive updates when associated routerLinks change (#38349)" (#38511) This reverts commit e0e5c9f1. Failures in Google tests were detected. PR Close #38511
-
Andrea Balducci authored
Track By Function receive the T[index] data, not the node id. TrackByFunction reference description has the same issue. PR Close #38495
-
Joey Perrott authored
Updating yargs and typings for the updated yargs module. PR Close #38502
-
Joey Perrott authored
Updating yargs and typings for the updated yargs module. PR Close #38502
-
Joey Perrott authored
Updating yargs and typings for the updated yargs module. PR Close #38502
-
- Aug 18, 2020
-
-
Paul Gschwendtner authored
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
-
Paul Gschwendtner authored
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
-
Andrew Scott authored
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
-
Keen Yee Liau authored
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
- Aug 15, 2020
-
-
Andrew Scott authored
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 bb88c9fa, 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
-
- Aug 14, 2020
-
-
waterplea authored
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
-
Ahn authored
Remove unused constant allDiagnostics PR Close #38441
-