22986 Commits

Author SHA1 Message Date
Charles Lyding db5392f383 refactor(migrations): remove most template AST deep imports (#43627)
Most of the deep imports into the `@angular/compiler` package in the `@angular/core` migrations are for template AST types that are available as exports from the main entry point of the package (albeit under slightly different names). For the available main entry point exports, the deep imports have been transitioned to no longer use the deep import.

PR Close #43627
2021-09-29 08:46:51 -07:00
Raj Sekhar 4555d8a316 docs: fix broken link to measure performance (#43628)
* "Chrome DevTools Network Performance page" was pointing to a broken link, that was giving 404 error
* The new link points to the right article where it explains the resource timing & network analysis
PR Close #43628
2021-09-28 14:43:46 -07:00
Bobby Galli cb0d8d214e docs: fix typos in .vscode/README.md (#43621)
PR Close #43621
2021-09-28 14:28:14 -07:00
Kristiyan Kostadinov 8f7fdc59af fix(compiler-cli): not evaluating new signature for __spreadArray (#43618)
In TypeScript 4.4 the `__spreadArray` function has three parameters, however we only allowed two which can result in an error.

PR Close #43618
2021-09-28 14:27:31 -07:00
Andrew Kushnir 8d34f86edb docs: deprecate PlatformRef.bootstrapModuleFactory and factory-based signature of ApplicationRef.bootstrap (#43560)
DEPRECATION:

Ivy made it possible to avoid the need to resolve Component and NgModule factories. Framework APIs allow to use Component and NgModule Types directly. As a result, the `PlatformRef.bootstrapModuleFactory` and a factory-based signature of the `ApplicationRef.bootstrap` method are now obsolete and are now deprecated.

The `PlatformRef.bootstrapModuleFactory` calls can be replaced with `PlatformRef.bootstrapModule` ones. The `ApplicationRef.bootstrap` method allows to provide Component Type, so this can be used a replacement for the factory-based calls.

PR Close #43560
2021-09-28 14:17:08 -07:00
Dmitrij Kuba 4f3beffdbf feat(router): emit activate/deactivate events when an outlet gets attached/detached (#43333)
Previously the events of `RouterOutlet` (activate/deactivate) were not fired
when an outlet got attached/detached with `RouteReuseStrategy`. The changes configure
`RouterOutlet` to emit events when an outlet gets attached/detached.

Fixes #25521, #20501

PR Close #43333
2021-09-28 14:16:39 -07:00
wszgrcy 8d2b6affcd fix(compiler-cli): correctly interpret token arrays in @Injectable deps (#43226)
When specifying the `deps` array in the `@Injectable` decorator to
inject dependencies into the injectable's factory function, it should
be possible to use an array literal to configure how the dependency
should be resolved by the DI system.

For example, the following example is allowed:

```ts
@Injectable({
  providedIn: 'root',
  useFactory: a => new AppService(a),
  deps: [[new Optional(), 'a']],
})
export class AppService {
  constructor(a) {}
}
```

Here, the `'a'` string token should be injected as optional. However,
the AOT compiler incorrectly used the array literal itself as injection
token, resulting in a failure at runtime. Only if the token were to be
provided using `[new Optional(), new Inject('a')]` would it work
correctly.

This commit fixes the issue by using the last non-decorator in the
array literal as the token value, instead of the array literal itself.

Note that this is a loose interpretation of array literals: if a token
is omitted from the array literal then the array literal itself is used
as token, but any decorator such as `new Optional()` would still have
been applied. When there's multiple tokens in the list then only the
last one will be used as actual token, any prior tokens are silently
ignored. This behavior mirrors the JIT interpretation so is kept as is
for now, but may benefit from some stricter checking and better error
reporting in the future.

Fixes #42987

PR Close #43226
2021-09-28 14:15:48 -07:00
dario-piotrowicz 38daf7a36e build(docs-infra): bump @angular-eslint packages to 12.5.0 (#43574)
update the four @angular-eslint packages from 12.4.1 to 12.5.0,
also add the caret to allow minor version updates

PR Close #43574
2021-09-27 14:27:49 -07:00
Ricardo Chavarria de662da8e2 docs: Add Ricardo Chavarria to GDE resources (#43571)
update size image
update preview
docs: replace an avatar with smaller size
Change order


PR Close #43571
2021-09-27 14:25:56 -07:00
JoostK 988cca7ef5 fix(ngcc): do not fail for packages which correspond with Object members (#43589)
Prior to this commit ngcc stored its package configuration in JavaScript
objects, which caused the builtin `Object` members to be found as
package configuration. This would subsequently crash as their shape was
not as expected.

This commit moves away from using raw JavaScript objects in favor of a
Map. To code was refactored such that `PartiallyProcessedConfig` is
now a class.

Fixes #43570

PR Close #43589
2021-09-27 14:21:53 -07:00
Kristiyan Kostadinov 66fb311d20 fix(core): incorrect signature for initTestEnvironment (#43615)
Fixes that one of the signatures of `initTestEnvironment` wasn't using the correct type.

PR Close #43615
2021-09-27 14:21:32 -07:00
Adrien Crivelli bdf5887077 docs(router): params or queryParams are not advised against (#43562)
According to @atscott:

> We no longer speculate about future deprecations. There are no current plans to remove
> `params` or `queryParams` and there's no benefit to advising against their use.

PR Close #43562
2021-09-27 14:21:10 -07:00
Kristiyan Kostadinov f055a886f3 build: remove api-extractor workaround (#43563)
In #43281 I had to add a `resolutions`for `typescript` due to the `api-extractor` being locked down to an older version. Now that it has been updated, we don't need the workaround anymore.

PR Close #43563
2021-09-27 10:57:04 -07:00
Rafael Santana 10c7ace6ca docs: close tags properly (#43610)
PR Close #43610
2021-09-27 10:54:55 -07:00
enisfr 49e0b17e56 docs: links added for each builder schema (#43564)
closes #43542

Signed-off-by: enisfr <enisfurkane@gmail.com>

docs: links pointed to the schema files.

closes angular#43542

docs: tslint removed.

closes angular#43542

docs: typo.

closes angular#43542

PR Close #43564
2021-09-27 10:51:48 -07:00
Renovate Bot 6cac36acaf build: update dependency typescript to v4.4.3 (#43557)
PR Close #43557
2021-09-27 10:47:08 -07:00
JoostK 81d09d14dc docs: deprecate input setter coercion fields (#43506)
Since the `strictTemplates` flag has been introduced in Angular the
compiler has been able to type-check input bindings to the declared
input type of the corresponding directive. When a getter/setter pair is
being used for the input it may be desirable to let the setter accept a
broader set of types than what is returned by the getter, for example
when the setter first converts the input value. However, until
TypeScript 4.3 a getter/setter pair was required to have identical types
so this pattern could not be accurately declared.

To mitigate this limitation, it was made possible to declare
input setter coercion fields in directives that are used when
type-checking input bindings. However, since TypeScript 4.3 the
limitation has been removed; setters can now accept a wider type than
what is returned by the getter. This means that input coercion fields
are no longer needed, as their effects can be achieved by widening the
type of the setter.

PR Close #43506
2021-09-27 10:46:43 -07:00
Andrew Scott 3e37e8979d fix(language-service): provide dom event completions (#43299)
Native DOM events were previously not included in the completions
because the dom schema registry would filter out events completely. This
change updates the registry to include events in the private
element->property map and excludes events from lookups outside of the
new `allKnownEventsOfElement` function.

fixes https://github.com/angular/vscode-ng-language-service/issues/1479

PR Close #43299
2021-09-27 10:45:58 -07:00
Teri Glover 353cad283d docs: Edits to remove jargon (#43000)
PR Close #43000
2021-09-27 10:44:21 -07:00
Alex Rickabaugh 22eebbafbc release: cut the v13.0.0-next.8 release (#43613)
PR Close #43613
13.0.0-next.8
2021-09-27 10:27:54 -07:00
George Kalpakas 9d290bd012 ci: correctly handle commit message with carriage returns in payload-size.sh (#43569)
Previously, if a commit message contained a carriage return in its
header, the `payload-size.sh` script would fail to upload the payload
size data to Firebase, because the JSON payload would be messed up when
trying to concatenate the commit message headers. See an example
[here][1].

This commit avoids this problem by replacing carriage returns before
concatenating the commit message headers with the JSON payload string.

[1]: https://app.circleci.com/pipelines/github/angular/angular/37437/workflows/d0fa4adf-43bb-464e-a2fd-d87da15226dd

PR Close #43569
2021-09-24 10:56:41 -07:00
George Kalpakas d02c8da7bd fix(docs-infra): display deprecation notes for properties (#43566)
Previously, deprecation notes for deprecated class/interface properties
were not shown in the API docs. This commit fixes it by ensuring that
deprecation notes are shown for properites (similar to how it works for
methods).

PR Close #43566
2021-09-24 10:56:05 -07:00
George Kalpakas e131540f71 fix(service-worker): do not unassign clients from a broken version (#43518)
Previously, when a version was found to be broken, any clients assigned
to that version were unassigned (and either assigned to the latest
version or to none if the latest version was the broken one). A version
could be considered broken for several reasons, but most often it is a
response for a hashed asset that eiher does not exist or contains
different content than the SW expects. See
https://github.com/angular/angular/issues/28114#issuecomment-923122967
for more details.

However, assigning a client to a different version (or the network) in
the middle of a session, turned out to be more risky than keeping it on
the same version. For angular.io, for example, it has led to #28114.

This commit avoids making things worse when identifying a broken version
by keeping existing clients to their assigned version (but ensuring that
no new clients are assigned to the broken version).

NOTE:
Reloading the page generates a new client ID, so it is like a new client
for the SW, even if the tab and URL are the same.

PR Close #43518
2021-09-24 10:54:21 -07:00
George Kalpakas f1497245fb test(service-worker): use correct assertion in tests (#43518)
Previously, a ServiceWorker test was using the
`MockServerState#sawRequestFor()` method. This method, however, only
returns a boolean indicating whether a request had been seen, but would
not throw an error in either case.

Since the intention was to assert that a specific request was made, this
commit switches to the correct `MockServerState#assertSawRequestFor()`
method.

PR Close #43518
2021-09-24 10:54:21 -07:00
Virginia Dooley 67ff93d33a docs: reviewed tag added (#43472)
PR Close #43472
2021-09-24 10:51:39 -07:00
Virginia Dooley 28a3c0c0ec docs: review tag added (#43469)
PR Close #43469
2021-09-24 10:50:20 -07:00
Alan Agius c231849f72 test: update localize-extract source paths (#43417)
As a result of dropping differential loading, In version 13 the Angular CLI no longer generates files prefixed with the ECMA version.

PR Close #43417
2021-09-24 10:49:39 -07:00
Alan Agius 6f30ebbefd test: update integration payload size checks golden file (#43417)
With this change we update the integration payload size checks golden file to reflect the file names in version 13.

Some considering about the increased in file sizes
- The increase in runtime is caused by inrtroduction of Trusted Types in CLI 12.1 which causes addition bytes to be included in the file
- Other increase/decreases are caused by changes of the minifier. Since the CLI now uses ESbuild as primary minifier instead of terser.

PR Close #43417
2021-09-24 10:49:39 -07:00
Alan Agius dcacf3a09b test: update remove deprecated builder options from Angular workspace (#43417)
`extractCss` option has been removed without replacement.

PR Close #43417
2021-09-24 10:49:39 -07:00
Alan Agius eb50266b3a test: update browserslist configuration to replace Angular CLI projects (#43417)
With this change we update various browserslist configuration file to match newly generated projects. https://github.com/angular/angular-cli/blob/master/packages/schematics/angular/application/files/.browserslistrc.template

PR Close #43417
2021-09-24 10:49:39 -07:00
Alan Agius 880f021d96 build: update Angular tooling packages to 13.0.0-next.6 (#43417)
This is a followup on #43343

PR Close #43417
2021-09-24 10:49:39 -07:00
iRealNirmal d9d8f950e9 feat(forms): allow disabling min/max validators dynamically (by setting the value to null) (#42978)
This commit updates the logic of the `min` and `max` validators to allow
disabling them dynamically in case `null` is provided as a value. For example: `<input
type="number" [min]="minValue">`, when `minValue` might be set to `null` in a
component class. This should allow `min` and `max` validators to be used for dynamic forms.

Note: similar support was added to the `minLength` and `maxLength`
validators earlier (see #42565).

PR Close #42978
2021-09-24 10:35:31 -07:00
Joe Martin (Crowdstaffing) fe69193509 docs: update review date (#43245)
docs: Update review date for last content update.

PR Close #43245
2021-09-23 15:40:34 -07:00
Joe Martin (Crowdstaffing) 3497f48ed0 docs: add subtopics for internationalization (#43245)
Add subtopics for internationalization guide.

PR Close #43245
2021-09-23 15:40:34 -07:00
Joe Martin (Crowdstaffing) 617bf1cf0f docs: update content (#43245)
Update content per review.

PR Close #43245
2021-09-23 15:40:34 -07:00
Joe Martin (Crowdstaffing) 29790d6f8a docs: update punctuation (#43245)
Update punctuation per review.

Co-authored-by: TeriGlover <teriglover@google.com>
PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 46cabfb0c9 docs: update content (#43245)
Update content per review.

Co-authored-by: TeriGlover <teriglover@google.com>
PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) a0eeffd6d2 docs: update link (#43245)
Update link per review.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 8ac8b47388 docs: update content (#43245)
Update content per review.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) a879d9fbd1 docs: update punctuation (#43245)
Update punctuation per review.

Co-authored-by: TeriGlover <teriglover@google.com>
PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 407490adc7 docs: update grammar (#43245)
Update grammar per review.

Co-authored-by: TeriGlover <teriglover@google.com>
PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) be1f686531 docs: update content (#43245)
Update content per review.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 0b3d6a1188 docs: update spelling (#43245)
Update spelling per review.

Co-authored-by: TeriGlover <teriglover@google.com>
PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 0cf515e332 docs: add new internationalization links (#43245)
Update link for subtopics of internationalization guide.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 3f3adc7ae2 docs: add new internationalization links (#43245)
Update link for subtopics of internationalization guide. Clean up markdown.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) a5a8697e16 docs: add subtopics for internationalization to PR (#43245)
Add subtopics for internationalization guide to PR.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 644e3d2765 docs: add redirect for internationalization (#43245)
Add redirect for internationalization guide. Add test for redirect.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) d0d4a86f8d docs: add subtopics for internationalization to toc (#43245)
Add subtopics for internationalization guide to toc.

PR Close #43245
2021-09-23 15:40:33 -07:00
Joe Martin (Crowdstaffing) 9a83c436bf docs: add subtopics for internationalization (#43245)
Add subtopics for internationalization guide.

PR Close #43245
2021-09-23 15:40:32 -07:00
Kristiyan Kostadinov ea61ec2562 feat(core): support TypeScript 4.4 (#43281)
Adds support for TypeScript 4.4. High-level overview of the changes made in this PR:

* Bumps the various packages to `typescript@4.4.2` and `tslib@2.3.0`.
* The `useUnknownInCatchVariables` compiler option has been disabled so that we don't have to cast error objects explicitly everywhere.
* TS now passes in a third argument to the `__spreadArray` call inside child class constructors. I had to update a couple of places in the runtime and ngcc to be able to pick up the calls correctly.
* TS now generates code like `(0, foo)(arg1, arg2)` for imported function calls. I had to update a few of our tests to account for it. See https://github.com/microsoft/TypeScript/pull/44624.
* Our `ngtsc` test setup calls the private `matchFiles` function from TS. I had to update our usage, because a new parameter was added.
* There was one place where we were setting the readonly `hasTrailingComma` property. I updated the usage to pass in the value when constructing the object instead.
* Some browser types were updated which meant that I had to resolve some trivial type errors.
* The downlevel decorators tranform was running into an issue where the Closure synthetic comments were being emitted twice. I've worked around it by recreating the class declaration node instead of cloning it.

PR Close #43281
2021-09-23 14:49:19 -07:00