Commit Graph

3283 Commits

Author SHA1 Message Date
Kara Erickson 7526ef77b7 docs(ivy): add docs for styling priority order (#35066)
PR Close #35066
2020-02-06 09:33:28 -08:00
Kara Erickson 4e9d62ff81 docs(ivy): update style binding docs to v9 behavior (#35066)
PR Close #35066
2020-02-06 09:33:28 -08:00
Kara Erickson a08f6d9795 docs(ivy): clean up class binding docs and update to v9 behavior (#35066)
PR Close #35066
2020-02-06 09:33:28 -08:00
Kara Erickson 4fc2678438 docs(ivy): document breaking change with host attribute priority (#35175)
PR Close #35175
2020-02-05 18:22:16 -08:00
Filipe Silva c73d7181ae build: update @angular/cli to rc 14 (#35162)
PR Close #35162
2020-02-05 17:20:31 -08:00
Sasha Rudan 1f6da8c7d5 docs: fix typo in router animation (#35100)
`output directive` should be written: `outlet directive`

PR Close #35100
2020-02-04 15:58:26 -08:00
ajitsinghkaler 491654d882 fix(docs-infra): fix CSS issues on home page and search results (#35098)
On home page, image size set to 400px, which make the page not render
properly on devices below the size of 400px width.

Also, when search results were scrolled, they interfered with the top
nav items. Added border at the top of the search results container so
that the results are not visible under the nav items during scrolling.

PR Close #35098
2020-02-04 15:57:58 -08:00
ajitsinghkaler 12b49167b8 fix(docs-infra): size footer links to appropriate size for SEO (#35098)
Footer links did not have enough space between them, so lighthouse was
reporting that tap targets are not appropriately sized. Added the
required 8px space between links.

Also updated the margin of group headers accordingly.

Fixes #34901

PR Close #35098
2020-02-04 15:57:58 -08:00
Joey Perrott 960e5e25e5 docs(animations): increase wait time for status-slider animation (#35089)
Because the animation completes in 2000ms, and browser.wait checks
every 100ms, there can be a race condition of if the final state has
actually been reached to read the color. By moving to 2101ms, we ensure
that we cheack after the 2000ms of the animation has completed.

PR Close #35089
2020-02-04 15:57:37 -08:00
ajitsinghkaler aed5c7caad feat(docs-infra): add stable to the list of api statuses (#34981)
Earlier api can be filtered based on security risk and deprecated now added stable as a status for better user experience

Fixes #30396

PR Close #34981
2020-02-04 15:57:14 -08:00
Sonu Kapoor 7fb66eca25 docs: changes AoT to AOT for consistency (#35112)
PR Close #35112
2020-02-04 10:43:33 -08:00
Stephen Fluin e6cb60ee22 docs: update typescript version reference (#35120)
PR Close #35120
2020-02-04 10:22:48 -08:00
Kapunahele Wong 7369dd6f24 docs: fix animations example/remove 1st person (#35046)
Fixes #34940 and removes first person from transitions-triggers.md

PR Close #35046
2020-02-04 08:58:04 -08:00
Judy Bogart 0e3eeb4e71 docs: restructure nav for beginner concepts (#34681)
PR Close #34681
2020-02-04 08:57:31 -08:00
ajitsinghkaler e672b1f2ac feat(docs-infra): change navigation in resources page (#34756)
https://angular.io/resources needs to be sturctured to be able to navigate to all resources with improved user experience. A lone scroll bar in this page will not help the reader a great deal in exploring the resources

Fixes #33526

PR Close #34756
2020-01-31 11:27:09 -08:00
ajitsinghkaler 7431206247 refactor(docs-infra): remove unused functions in resources component page (#34756)
In resources component there were unused functions removed unused funtions

PR Close #34756
2020-01-31 11:27:09 -08:00
陈旭 6b710f7ae1 docs: update awade jigsaw's web site url of the resources (#35025)
PR Close #35025
2020-01-31 11:25:57 -08:00
crisbeto 471375adbe docs(ivy): document global debugging utilities and clean up API (#34453)
Cleans up the public API of the global debugging utilities, documents them and exposes them in the API docs.

PR Close #34453
2020-01-30 11:30:32 -08:00
Kapunahele Wong d72cfc9d57 docs: remove deployment section on golang because of errors (#34099)
The golang section was recently added to the deployment guide
but has been reported as returning errors, where it had previously
worked. After discussion and testing with
Stephen Fluin, we are removing this section because of
inconsistency in functionality.

PR Close #34099
2020-01-30 10:20:19 -08:00
Misko Hevery ee8b8f52aa feat(ivy): Change static priority resolution to be same level as directive it belongs to (#34938)
This change changes the priority order of static styling.

Current priority:
```
(least priority)
- Static
  - Component
  - Directives
  - Template
- Dynamic Binding
  - Component
    - Map/Interpolation
    - Property
  - Directives
    - Map/Interpolation
    - Property
  - Template
    - Map/Interpolation
    - Property
(highest priority)
```

The issue with the above priority is this use case:

```
<div style="color: red;" directive-which-sets-color-blue>
```
In the above case the directive will win and the resulting color will be `blue`. However a small change of adding interpolation to the example like so. (Style interpolation is coming in https://github.com/angular/angular/pull/34202)
```
<div style="color: red; width: {{exp}}px" directive-which-sets-color-blue>
```
Changes the priority from static binding to interpolated binding which means now the resulting color is `red`. It is very surprising that adding an unrelated interpolation and style can change the `color` which was not changed. To fix that we need to make sure that the static values are associated with priority of the source (directive or template) where they were declared. The new resulting priority is:

```
(least priority)
- Component
  - Static
  - Map/Interpolation
  - Property
- Directives
  - Static
  - Map/Interpolation
  - Property
- Template
  - Static
  - Map/Interpolation
  - Property
(highest priority)
```

PR Close #34938
2020-01-29 15:41:47 -08:00
Igor Minar a3de110b52 build(docs-infra): update aio to @angular/cli@9.0.0-rc.11 (#35043)
PR Close #35043
2020-01-29 14:12:15 -08:00
Stephen Fluin a892054448 docs: remove named node version (#35014)
PR Close #35014
2020-01-29 13:10:26 -08:00
Judy Bogart 3822455928 docs: modify toh titles and intro (#34758)
PR Close #34758
2020-01-29 12:11:07 -08:00
frosty 8fd2a97c44 docs: ng-conf 2020 date change (#35019)
Update the range of dates where ng-conf will appear on angular.io.

PR Close #35019
2020-01-29 10:52:38 -08:00
George Kalpakas d43187f7ef ci(docs-infra): ignore node version in `aio_monitoring_stable` CI job (for real) (#35033)
In #35004, we started ignoring yarn's engines check for `yarn install`
in AIO's `test-production.sh` script to fix a failure in the
`aio_monitoring_stable` CI job. (See #35004 for details.)

It turns out that the version of yarn used on the stable branch (1.17.3)
`--ignore-engines` is needed on all yarn commands (including `yarn
run`). Thus, #35004 is not enough to fix the failures.
New example failure: https://circleci.com/gh/angular/angular/604341

This commit turns of the engines check for the whole
`aio_monitoring_stable` CI job to fix the failure and make the job more
robust.

PR Close #35033
2020-01-29 09:25:46 -08:00
George Kalpakas 669df70da5 fix(ivy): ensure `DebugNode`/`DebugElement` are tree-shakeable in Ivy (#35003)
There are different `DebugNode`/`DebugElement` implementations (and
associated helper functions) for ViewEngine and Ivy. Additionally, these
classes/functions, which are defined inside the `core` package, are
imported by the `platform-browser` package.

Previously, this code was not tree-shaken as expected in Ivy. #30130
partially addressed the issue, but only for the case where `core` and
`platform-browser` end up in the same closure after webpack's scope
hoisting. In cases where this is not the case, our webpack/terser based
tooling is not capable of tree-shaking it.

This commit fixes the problem, by ensuring that the code retained in Ivy
mode (due to the cross-package import) does not unnecessarily reference
`DebugNode`/`DebugElement`, allowing the code to be tree-shaken away.
This results in a 7.6KB reduction in the size of the main angular.io
bundle.

Jira issue: [FW-1802](https://angular-team.atlassian.net/browse/FW-1802)

PR Close #35003
2020-01-28 15:57:57 -08:00
George Kalpakas c8eb164f01 ci(docs-infra): update payload size limits (#35003)
PR Close #35003
2020-01-28 15:57:57 -08:00
George Kalpakas 98a6fb9192 ci(docs-infra): ignore node version in `aio_monitoring_stable` CI job (#35004)
In #34955, we switched to Node.js v12 on master and 9.0.x. This causes
the `aio_monitoring_job` CI job (which checks out files from the stable
branch; currently 8.2.x) to start failing yarn's engines check (since
the 8.2.x branch expects Node.js version <11).
Example failure: https://circleci.com/gh/angular/angular/602499

Since the job is expected to run with files from both the stable and the
master branches (and since the version of Node.js is not important
here), this commit uses the `--ignore-engines` option to prevent
failures due to Node.js version mismatch.

NOTE:
Typically, the stable and master branch are on the same Node.js version,
because related PRs land on both master and the patch branch. One
exception is during RC periods, when the stable branch is different than
the patch branch. These periods are usually short, but in the case of
9.0.0 the period has lasted several months causing the CI environments
between master and the stable branch to get significantly out-of-sync.

PR Close #35004
2020-01-28 13:50:31 -08:00
ajitsinghkaler a5a598104f docs: change p to pointer for better understanding (#34927)
earlier p sigly was used to define a paragraph element which was not clear what we want to refer changed it to paragrapg element for better understanding

Fixes #34922

PR Close #34927
2020-01-28 13:04:25 -08:00
Alan Agius 36ff0dba1c docs: add link to publish a library in ivy guide (#34986)
PR Close #34986
2020-01-27 10:50:52 -08:00
Turtuvshin Byambaa c485c8a8c0 docs(core): fix typo in hierarchical injectors doc (#34968)
Fixes #34953

PR Close #34968
2020-01-27 10:50:07 -08:00
Judy Bogart 549ab2ecc3 build(docs-infra): add words to ignore in snippets (#34915)
PR Close #34915
2020-01-27 10:49:03 -08:00
Igor Minar 0a1af2ff36 docs: drop support for Android Marshmallow and older Android versions (#34540)
We no longer test against these.

PR Close #34540
2020-01-27 10:46:26 -08:00
philonor 53b7bbf3ff docs: update Android versions (#34540)
Include Android versions 8, 9 and 10 in supported browsers.

PR Close #34540
2020-01-27 10:46:26 -08:00
Igor Minar 724ce8c22b build(docs-infra): update to @angular/material 9.0.0-rc.8 (#34966)
This update increases the main bundle by ~0.6KB

payload size snapshot:

456581 Jan 24 22:07 dist/main-es2015.38c39f92eab2fcc8c835.js
541321 Jan 24 22:06 dist/main-es5.38c39f92eab2fcc8c835.js
 52487 Jan 24 22:05 dist/polyfills-es2015.b374ef3555a700a97add.js
146193 Jan 24 22:05 dist/polyfills-es5.c7dc569e6c646e42fade.js
  2987 Jan 24 22:05 dist/runtime-es2015.29be4028399ae41ba25e.js
  2981 Jan 24 22:05 dist/runtime-es5.29be4028399ae41ba25e.js

PR Close #34966
2020-01-27 09:24:48 -08:00
Igor Minar 2f36f17fc0 build(docs-infra): update fw to 9.0.0-rc.11 (#34966)
payload size snapshot:
455991 Jan 24 21:55 dist/main-es2015.2bcbba5871038ad608cd.js
540529 Jan 24 21:55 dist/main-es5.2bcbba5871038ad608cd.js
 52487 Jan 24 21:53 dist/polyfills-es2015.b374ef3555a700a97add.js
146193 Jan 24 21:53 dist/polyfills-es5.c7dc569e6c646e42fade.js
  2987 Jan 24 21:53 dist/runtime-es2015.3f56366a23f559d1feff.js
  2981 Jan 24 21:53 dist/runtime-es5.3f56366a23f559d1feff.js

PR Close #34966
2020-01-27 09:24:48 -08:00
Igor Minar be8d06c6ea build(docs-infra): update CLI to 9.0.0-rc.10
payloadsizes:

464800 Jan 24 21:44 dist/main-es2015.082aa200328274a7d604.js
549547 Jan 24 21:44 dist/main-es5.082aa200328274a7d604.js
 52487 Jan 24 21:42 dist/polyfills-es2015.b374ef3555a700a97add.js
146193 Jan 24 21:43 dist/polyfills-es5.c7dc569e6c646e42fade.js
  2987 Jan 24 21:42 dist/runtime-es2015.b7e0148b707ec640c171.js
  2981 Jan 24 21:42 dist/runtime-es5.b7e0148b707ec640c171.js
2020-01-24 21:46:31 -08:00
Miško Hevery 9bd9590767 refactor(ivy): change styling to use programmatic API on updates (#34804)
Previously we would write to class/style as strings `element.className` and `element.style.cssText`. Turns out that approach is good for initial render but not good for updates. Updates using this approach are problematic because we have to check to see if there was an out of bound write to style and than perform reconciliation. This also requires the browser to bring up CSS parser which is expensive.

Another problem with old approach is that we had to queue the DOM writes and flush them twice. Once on element advance instruction and once in `hostBindings`. The double flushing is expensive but it also means that a directive can observe that styles are not yet written (they are written after directive executes.)

The new approach uses `element.classList.add/remove` and `element.style.setProperty/removeProperty` API for updates only (it continues to use `element.className` and `element.style.cssText` for initial render as it is cheaper.) The other change is that the styling changes are applied immediately (no queueing). This means that it is the instruction which computes priority. In some circumstances it may result in intermediate writes which are than overwritten with new value. (This should be rare)

Overall this change deletes most of the previous code and replaces it with new simplified implement. The simplification results in code savings.

PR Close #34804
2020-01-24 12:23:19 -08:00
Miško Hevery 5aabe93abe refactor(ivy): Switch styling to new reconcile algorithm (#34616)
NOTE: This change must be reverted with previous deletes so that it code remains in build-able state.

This change deletes old styling code and replaces it with a simplified styling algorithm.

The mental model for the new algorithm is:
- Create a linked list of styling bindings in the order of priority. All styling bindings ere executed in compiled order and than a linked list of bindings is created in priority order.
- Flush the style bindings at the end of `advance()` instruction. This implies that there are two flush events. One at the end of template `advance` instruction in the template. Second one at the end of `hostBindings` `advance` instruction when processing host bindings (if any).
- Each binding instructions effectively updates the string to represent the string at that location. Because most of the bindings are additive, this is a cheap strategy in most cases. In rare cases the strategy requires removing tokens from the styling up to this point. (We expect that to be rare case)S Because, the bindings are presorted in the order of priority, it is safe to resume the processing of the concatenated string from the last change binding.

PR Close #34616
2020-01-24 12:23:00 -08:00
Miško Hevery 2961bf06c6 refactor(ivy): move `hostVars`/`hostAttrs` from instruction to `DirectiveDef` (#34683)
This change moves information from instructions to declarative position:
- `ɵɵallocHostVars(vars)` => `DirectiveDef.hostVars`
- `ɵɵelementHostAttrs(attrs)` => `DirectiveDef.hostAttrs`

When merging directives it is necessary to know about `hostVars` and `hostAttrs`. Before this change the information was stored in the `hostBindings` function. This was problematic, because in order to get to the information the `hostBindings` would have to be executed. In order for `hostBindings` to be executed the directives would have to be instantiated. This means that the directive instantiation would happen before we had knowledge about the `hostAttrs` and as a result the directive could observe in the constructor that not all of the `hostAttrs` have been applied. This further complicates the runtime as we have to apply `hostAttrs` in parts over many invocations.

`ɵɵallocHostVars` was unnecessarily complicated because it would have to update the `LView` (and Blueprint) while existing directives are already executing. By moving it out of `hostBindings` function we can access it statically and we can create correct `LView` (and Blueprint) in a single pass.

This change only changes how the instructions are generated, but does not change the runtime much. (We cheat by emulating the old behavior by calling `ɵɵallocHostVars` and `ɵɵelementHostAttrs`) Subsequent change will refactor the runtime to take advantage of the static information.

PR Close #34683
2020-01-24 12:22:10 -08:00
Alex Rickabaugh 0c8d085666 fix(ivy): use any for generic context checks when !strictTemplates (#34649)
Previously, the template type-checker would always construct a generic
template context type with correct bounds, even when strictTemplates was
disabled. This meant that type-checking of expressions involving that type
was stricter than View Engine.

This commit introduces a 'strictContextGenerics' flag which behaves
similarly to other 'strictTemplates' flags, and switches the inference of
generic type parameters on the component context based on the value of this
flag.

PR Close #34649
2020-01-23 10:31:48 -08:00
Andrew Kushnir 92c411f86d docs: update payload size limits for angular.io application (#34913)
This commit increases payload size limits for angular.io application that triggered an error after merging another commit (00f13cc074). The goal of this commit is to bring master back to a "green" state and separate investigation is required to identify the root cause for size increase.

PR Close #34913
2020-01-22 15:01:01 -08:00
Aravind 1be5b69174 docs: fix typo on router guide (#34911)
closes #34907
PR Close #34911
2020-01-22 14:32:56 -08:00
Sonu Kapoor f49b45832c build(docs-infra): always specify a landing file for StackBlitz projects (#34553)
The StackBlitz API (which we use to generate StackBlitz projects on the
fly, when a user clicks on a live example link in the docs) allows
specifying the file to open in the editor by passing a query param. If
no file is specified, StackBlitz opens a default one. In the past, it
used to be `main.ts` and nowadays it seems to be `app.component.ts`.

StackBlitz builder, the tool that we use to generate the StackBlitz
projects, allows specifying the primary file by setting the `file`
property in the corresponding `stackblitz.json`.

Previously, if the `file` property was not set, StackBlitz builder would
not specify a file, thus falling back on StackBlitz's default behavior.
This was not great, because the default behavior may change unexpectedly
is the future to something that is less useful for our users.

This commit change StackBlitz builder to always specify a primary file.
If no file is specified in `stackblitz.json`, the builder will look
for the first file that exists in the example from a list of predefined
files.

Partially addresses #22357.

PR Close #34553
2020-01-22 13:45:23 -08:00
Sonu Kapoor 77c53559d0 build(docs-infra): specify more relevant landing files for StackBlitz projects (#34553)
The StackBlitz API (which we use to generate StackBlitz projects on the
fly, when a user clicks on a live example link in the docs) allows
specifying the file to open in the editor by passing a query param. If
no file is specified, StackBlitz opens a default one.

This commit specifies relevant landing files for some of the examples to
make it easier to engage with the examples more quickly, and to see what
the example is attempting to demonstrate.

Fixes #22357.

PR Close #34553
2020-01-22 13:45:23 -08:00
Judy Bogart 13ce3756c2 docs: add differential loading term to glossary (#34884)
PR Close #34884
2020-01-22 13:37:35 -08:00
ajitsinghkaler 61ad50d40a docs: add message on click of hero in toh-4 (#34496)
First we used a messages array to display messages toh-4 but it dsplayed only one message added additional messages on click of a hero

Fixes #28739

PR Close #34496
2020-01-22 14:42:55 -05:00
Sonu Kapoor e7cf37d99f docs: clarify where the `async` utility function is coming from (#34876)
inside the `beforeEach` for out testing guide.

Fixes #34833

PR Close #34876
2020-01-22 14:40:17 -05:00
George Kalpakas 2954a14c3d ci(docs-infra): do not output build progress for e2e tests on CI (#34840)
When running the e2e tests on CI, it is desirable that the build
progress is not logged, because that clutters the logs and makes it
difficult to get to the useful info in case of failures.

The previous config to achieve that doesn't work any more.

This commit update the `ci` configuration for e2e tests to suppress
build progress logging.

PR Close #34840
2020-01-22 14:37:32 -05:00
Kapunahele Wong a3b2d6735a build(docs-infra): add auto-link-filter for generic words (#34835)
Fixes #34794

PR Close #34835
2020-01-21 15:08:01 -05:00