Commit Graph

19400 Commits

Author SHA1 Message Date
Basheer Ahmed e95cd2a17a fix(animations): replace copy of query selector node-list from "spread" to "for" (#39646)
For element queries that return sufficiently large NodeList
objects, using spread syntax to populate the results array
causes a RangeError due to the call stack limit being reached.
This commit updates the code to use regular "for" loop instead.

Fixes #38551.

PR Close #39646
2020-11-25 11:01:59 -08:00
Krzysztof Grzybek 6dc74fd5de fix(compiler): report better error on interpolation in an expression (#30300)
Compiler results in weird error message when encounters interpolation inside
existing expression context, e.g. *ngIf="name {{ name }}"

PR Close #30300
2020-11-25 10:53:20 -08:00
George Kalpakas 9dc0a4edf6 test(docs-infra): disable the Selenium Promise Manager in docs examples e2e tests (#39818)
This commit disables the Selenium Promise Manager when running e2e tests
for docs examples in order to more closely align them with new apps
created with CLI v11. This change requires that any async operations in
tests are handled explicitly (e.g. using `async/await` or
`Promise#then()`).

PR Close #39818
2020-11-24 14:56:23 -08:00
George Kalpakas f5fa8b8606 test(docs-infra): remove redundant code from upgrade-module e2e tests (#39818)
This commit removes some code that is no longer necessary for the
`upgrade-module` docs example e2e tests to run. It used to be necessary
in earlier version of Protractor but not any more.

PR Close #39818
2020-11-24 14:56:21 -08:00
George Kalpakas 0163881c3b test(docs-infra): fix the dependency-injection-in-action e2e tests (#39818)
Previously, the tests made no meaningful assertions. It seems that the
intention was to ensure that some elements were present on the page, but
all the assertions did was verify that the corresponding
`ElementFinder`s were defined. The `ElementFinder`s would always be
defined, even if there were no corresponding elements on the page. In
fact, some of the `ElementFinder` selectors were incorrect, so they did
not match any actual elements.

This commit fixes the tests by fixing the `ElementFinder` selectors and
asserting that the elements are actually present on the page.

PR Close #39818
2020-11-24 14:56:20 -08:00
George Kalpakas 93dfab9b2a test(docs-infra): fix the dynamic-component-loader e2e tests (#39818)
Previously, the test made no meaningful assertion. It seems that the
intention was to ensure that some elements were present on the page, but
all the assertions did was verify that the corresponding
`ElementFinder`s were defined. The `ElementFinder`s would always be
defined, even if there were no corresponding elements on the page. In
fact, some of the `ElementFinder` selectors were incorrect, so they did
not match any actual elements.

This commit fixes the tests by fixing the `ElementFinder` selectors and
asserting that the elements are actually present on the page.

PR Close #39818
2020-11-24 14:56:19 -08:00
George Kalpakas 6730493b46 build(docs-infra): update docs examples to Angular v11.0.1 (#39818)
This commit updates the docs examples to Angular v11.0.1. In addition to
updating the dependencies versions, it also updates the project's
structure and config to more closely match what a new v11 CLI app would
look like. See, also, the [diff][1] between a basic v10.1.3 CLI app and a
v11.0.2 one.

NOTE:
I refrained from disabling the Selenium Promise Manager (as seen
[here][2]) and switching all e2e tests to `async/await`, because that is
a big change and should be done in a separate commit/PR.

[1]: https://github.com/cexbrayat/angular-cli-diff/compare/10.1.3..11.0.2
[2]:
https://github.com/cexbrayat/angular-cli-diff/compare/10.1.3...11.0.2#diff-dbd675d74087d57cd084d6dd6ae24ae2eeff2ff0122680e12916052f8a843a29

PR Close #39818
2020-11-24 14:56:17 -08:00
JoostK 75b53690f6 docs: explain foreign function/value constraints in Ivy compatibility examples (#36092)
Addresses documentation gaps as reported in #35078. The documentation only
contained a single statement on foreign function/value compatibility
without going into detail on what this means. This commit adds several
examples to the Ivy compatibility guide and explains why Ivy behaves differently
compared to VE.

PR Close #36092
2020-11-24 13:09:41 -08:00
Srashti Jain 25d7823022 docs: added Srashti Jain to GDE resources (#39150)
PR Close #39150
2020-11-24 13:04:07 -08:00
Michael Gerullis 9cb12ca62c docs(core): update links to schema.json of @schematics/angular (#39827)
closes #39796

PR Close #39827
2020-11-24 10:50:33 -08:00
JoostK 8634611e37 fix(compiler-cli): report error when a reference target is missing instead of crashing (#39805)
If a template declares a reference to a missing target then referring to
that reference from elsewhere in the template would crash the template
type checker, due to a regression introduced in #38618. This commit
fixes the crash by ensuring that the invalid reference will resolve to
a variable of type any.

Fixes #39744

PR Close #39805
2020-11-24 08:46:39 -08:00
mchl18 dc486c97ea docs(core): fix typo (#39825)
PR Close #39825
2020-11-24 08:42:19 -08:00
Kapunahele Wong 5cb711244f docs: archive template expression operators doc, move pipes precedence section (#39170)
Archives most of the content in the template expression operators doc.
The pipes precedence section that was originally in
template expression operators moves into the pipes doc
with some editing and an addition of a ternary example.

PR Close #39170
2020-11-24 08:41:20 -08:00
mgechev f5d7ca6e90 docs: add an exception for accepting contributions (#39611)
PR Close #39611
2020-11-24 08:40:25 -08:00
zuckjet 9f197611e2 docs(core): fix typo for getting component definition function (#39823)
PR Close #39823
2020-11-24 08:39:07 -08:00
George Kalpakas 7bf73d7442 fix(service-worker): correctly handle failed cache-busted request (#39786)
Since 5be4edfa17, a failing cache-busted
network request (such as requests for fetching uncached assets) will
cause the ServiceWorker to incorrectly enter a degraded
`EXISTING_CLIENTS_ONLY` mode. A failing network request could be caused
by many reasons, including the client or server being offline, and does
not necessarily signify a broken ServiceWorker state.

This commit fixes the logic in `cacheBustedFetchFromNetwork()` to
correctly handle errors in network requests.
For more details on the problem and the implemented fix see #39775.

Fixes #39775

PR Close #39786
2020-11-23 14:59:58 -08:00
Joey Perrott 7e52be372a fix(dev-infra): verify the version of generated build artifacts (#39789)
Verify the version of the generated build artifacts to ensure that
the version published to NPM is the version we expect.

PR Close #39789
2020-11-23 12:08:24 -08:00
Joey Perrott b980bf9649 build: define the package building function for ng-dev release tooling (#39711)
The packages are built during the release process on demand via a function
defined locally in the ng-dev config.

PR Close #39711
2020-11-23 12:07:42 -08:00
Joey Perrott 6ed1576eb8 ci: migrate rebase-pr CI script to the circleci directory (#39592)
Migrate the rebase-pr script used on CI out of tools and into the circleci
directory.  Additionally removes its support for running in the local
repository as this is now better handled by `ng-dev pr rebase <pr-number>`.

PR Close #39592
2020-11-23 12:07:06 -08:00
Gautier Pelloux-Prayer 7c9b84f528 docs(http): Add mention to default value 'OK' for statusText. #23334 (#23494)
PR Close #23494
2020-11-23 08:31:26 -08:00
Kapunahele Wong ed4acb93e9 docs: edit start-data.md (#39628)
PR Close #39628
2020-11-23 08:26:26 -08:00
Krivokhizhin Anton 4b89f8de31 test(forms): verify that an object is not a boxed value if only disabled field is present (#39801)
The value of a `FormControl` is treated in a special way (called boxed values) when it's an object with exactly
2 fields: `value` and `disabled`. This commit adds a test which verifies that an object is not treated as a boxed
value when `disabled` field is present, but `value` is missing.

PR Close #39801
2020-11-23 08:25:11 -08:00
Marcono1234 e32fe1aa0a docs: update links to use HTTPS as protocol (#39718)
PR Close #39718
2020-11-20 12:52:18 -08:00
Kristiyan Kostadinov 7dcc212170 fix(core): migration error if program contains files outside of the project (#39790)
Currently all of our migrations are set up to find the tsconfig paths within a project,
create a `Program` out of each and migrate the files inside of the `Program`. The
problem is that the `Program` can include files outside of the project and the CLI
APIs that we use to interact with the file system assume that all files are within
the project.

These changes consolidate the logic, that determines whether a file can be migrated,
in a single place and add an extra check to exclude files outside of the root.

Fixes #39778.

PR Close #39790
2020-11-20 12:51:21 -08:00
Joey Perrott acdacd5883 feat(dev-infra): support squashing fixups in the ng-dev pr rebase command (#39747)
Adding support for squashing fixup commits during when rebasing can allow
for rebasing to better unblock things like merging.

PR Close #39747
2020-11-20 12:49:47 -08:00
Joey Perrott 3e6456c76c refactor(dev-infra): move parseCommitMessagesForRange into the parse file (#39747)
When attempting to actually rely on `parseCommitMessagesForRange`, it became apparent
that the function really belongs in the parse file, rather than utils.

PR Close #39747
2020-11-20 12:49:45 -08:00
andyg3 3f13d95edd docs: update /deep/ to ::ng-deep in component styles example (#32398)
Update example because ::ng-deep is the preferred syntax.

PR Close #32398
2020-11-20 12:48:16 -08:00
Kara Erickson 3114b0aa12 fix(core): meta addTag() adds incorrect attribute for httpEquiv (#32531)
Meta::addTag() adds a meta tag with httpEquiv attribute instead of http-equiv when
MetaDefinition contains httpEquiv property.

PR Close #32531
2020-11-20 09:26:11 -08:00
Kapunahele Wong 93a2347348 docs: edit di providers doc (#39403)
Edits copy and removes tokens and treeshaking
sections to reduce content duplication and keep
info focused. Moves provideParent() from di-navtree
to di providers.

PR Close #39403
2020-11-20 09:24:56 -08:00
Keen Yee Liau e25d66173e build(language-service): include sources for Ivy LS (#39748)
We need to expose the declaration files for Ivy sources so that they can
be consumed by the Angular language server (`@angular/language-server`).

PR Close #39748
2020-11-20 09:23:49 -08:00
Andrew Scott 50c19a2dde fix(router): correctly handle string command in outlets (#39728)
There are many places where examples use just a string for the command
in outlets. When using nested outlets, we do not correctly handle
this case, as the types and algorithm always expect an array.
This PR updates the `createUrlTree` algorithm to account for the
possibility of a string literal as the command for an outlet.

Fixes #18928

PR Close #39728
2020-11-20 08:38:33 -08:00
Pete Bacon Darwin 989d4d4aac refactor(compiler): tidy up interpolation splitting (#39717)
When parsing for i18n messages, interpolated strings are
split into `Text` and `Placeholder` pieces.  The method that
does this `_visitTextWithInterpolation()` was becoming too
complex. This commit refactors that method along with some
associated functions that it uses.

PR Close #39717
2020-11-20 08:36:01 -08:00
Pete Bacon Darwin 8ec71565b2 fix(compiler): ensure that placeholders have the correct sourceSpan (#39717)
When the `preserveWhitespaces` is not true, the template parser will
process the parsed AST nodes to remove excess whitespace. Since the
generated `goog.getMsg()` statements rely upon the AST nodes after
this whitespace is removed, the i18n extraction must make a second pass.

Previously this resulted in innacurrate source-spans for the i18n text and
placeholder nodes that were extracted in the second pass.

This commit fixes this by reusing the source-spans from the first pass
when extracting the nodes in the second pass.

Fixes #39671

PR Close #39717
2020-11-20 08:35:59 -08:00
Pete Bacon Darwin d172882474 test(compiler-cli): add source-mapping test helper (#39717)
This helper improves the message given when an expectation
fails in a source-mapping test.

PR Close #39717
2020-11-20 08:35:58 -08:00
JiaLiPassion f57911589f refactor(core): remove unused fakeAsyncFallback and asyncFallback (#37879)
`zone.js` 0.8.25 introduces `zone-testing` bundle and move all `fakeAsync/async` logic
from `@angular/core/testing` to `zone.js` package. But in case some user still using the old
version of `zone.js`, an old version of `fakeAsync/async` logic were still kept inside `@angular/core/testing`
package as `fallback` logic. Since now `Angular8+` already use `zone.js 0.9+`, so
those fallback logic is removed.

PR Close #37879
2020-11-20 08:35:02 -08:00
Serginho cb1d77a9e3 fix(animations): getAnimationStyle causes exceptions in older browsers (#29709)
PR #29709 getAnimationStyle causes exceptions in older browsers

PR Close #29709
2020-11-20 08:33:21 -08:00
cexbrayat df231ad572 fix(router): remove duplicated getOutlet function (#39764)
The codebase currently contains two `getOutlet` functions,
and they can end up in the bundle of an application.
A recent commit 6fbe21941d tipped us off
as it introduced several `noop` occurrences in the golden symbol files.
After investigating with @petebacondarwin,
we decided to remove the duplicated functions.

This probably shaves only a few bytes,
but this commit removes the duplicated functions,
by always using the one in `router/src/utils/config`.

PR Close #39764
2020-11-20 08:31:17 -08:00
Jacob Foshee babbf8a626 docs: add missing return to example storage.service.ts (#31434)
While JavaScript does support implicit returns, it seems TypeScript will not infer the function return type from
the implicit return of the last statement (at least not in TS 3.4.3). So, when the `return` is missing from the
`get` function the implicit type of the function is `void`. So for the `get` function to be usable it needs to an
explicit return.

PR Close #31434
2020-11-20 08:28:58 -08:00
George Kalpakas 2b2d572a46 fix(docs-infra): support recovering from unrecoverable SW states (#39651) (#39777)
Occasionally, the SW would end up in a broken state where some of the
eagerly cached resources of an older version were available in the local
cache, but others (such as lazy-loaded bundles) were not. This would
leave the app in a broken state and a blank screen would be displayed.
See #28114 for a more detailed discussion.

This commit takes advantage of the newly introduced (in v11)
[SwUpdate#unrecoverable][1] API to detect these bad states and recover
by doing a full page reload whenever an [UnrecoverableStateEvent][2] is
emitted.

Partially addresses #28114.

NOTE:
Currently, `SwUpdate.unrecoverable` only works if the app has already
bootstrapped; i.e. if only lazy-loaded bundles have been purged from the
cache.
That should be fine in practice, since the cache entries are removed in
least-recently-used order. Thus the eagerly loaded bundles will be the
last to be removed from the cache (which rarely happens in practice).

[1]: https://v11.angular.io/api/service-worker/SwUpdate#unrecoverable
[2]: https://v11.angular.io/api/service-worker/UnrecoverableStateEvent

PR Close #39651

PR Close #39777
2020-11-20 08:27:36 -08:00
George Kalpakas 9db12994f2 refactor(docs-infra): make SwUpdatesService depend on LocationService (#39651) (#39777)
Previously, the `LocationService` depended on the `SwUpdatesService`.
This felt backwards, since `LocationService` is a more low-level and
basic service and should not be depending on a service for a
higher-level, specific feature (ServiceWorkers).

This commit inverses the relation, making `SwUpdatesService` depend on
`LocationService` instead.

PR Close #39651

PR Close #39777
2020-11-20 08:27:35 -08:00
George Kalpakas 93c706f814 test(docs-infra): use existing MockLogger class in SwUpdatesService tests (#39651) (#39777)
Since we have a `MockLogger` class in `src/testing/`, there is no need
to create a new `MockLogger` class for the `SwUpdatesService` unit
tests.

This commit switches to using the `MockLogger` class from
`src/testing/`.

PR Close #39651

PR Close #39777
2020-11-20 08:27:34 -08:00
Andrew Kushnir 27152e2a22 Revert "test(core): create ivy-trusted-types integration test (#39614)" (#39767)
This reverts commit 123656a727.

PR Close #39767
2020-11-19 13:49:38 -08:00
Andrew Kushnir d909b44eaf Revert "test(core): make ivy-trusted-types similar to other integration tests (#39614)" (#39767)
This reverts commit a0a0179819.

PR Close #39767
2020-11-19 13:49:37 -08:00
Andrew Kushnir 77416103be Revert "test(core): enable ivy-trusted-types integration test (#39614)" (#39767)
This reverts commit 7d3831c59b.

PR Close #39767
2020-11-19 13:49:36 -08:00
Andrew Kushnir 7a814eb941 Revert "test(core): enforce Trusted Types in ivy-trusted-types integration test (#39614)" (#39767)
This reverts commit afe1768b39.

PR Close #39767
2020-11-19 13:49:35 -08:00
Andrew Kushnir d884c227b6 Revert "test(core): add e2e tests to ivy-trusted-types integration test (#39614)" (#39767)
This reverts commit a8ac287f00.

PR Close #39767
2020-11-19 13:49:34 -08:00
Andrew Kushnir 2d8b4f2244 Revert "test(core): rename ivy-trusted-types integration test to trusted-types (#39614)" (#39767)
This reverts commit 29fdbf250b.

PR Close #39767
2020-11-19 13:49:32 -08:00
Will Mendes cff286c645 docs: add ngx-skeleton-loader module into resources page (#39352)
PR Close #39352
2020-11-19 12:27:40 -08:00
WilliamKoza 56926072c4 fix(common): Prefer to use pageXOffset / pageYOffset instance of scrollX / scrollY (#28262)
This fix ensures a better cross-browser compatibility.
This fix has been used for angular.io.

PR Close #28262
2020-11-19 12:22:05 -08:00
Sonu Kapoor 2506c024ca refactor(core): move injectAttributeImpl to avoid cycles (#37085)
This commit moves the `injectAttributeImpl` and other dependent code
to avoid circular dependencies.

PR Close #37085
2020-11-19 12:19:46 -08:00