master
Commits on Feb 16, 2021
-
feat(forms): add `emitEvent` option for AbstractControl-based class m…
…ethods (#31031) This commit adds the `emitEvent` option to the following FormArray and FormGroup methods: * FormGroup.addControl * FormGroup.removeControl * FormGroup.setControl * FormArray.push * FormArray.insert * FormArray.removeAt * FormArray.setControl * FormArray.clear This option can be used to prevent an event from being emitted when adding or removing controls. BREAKING CHANGE: The `emitEvent` option was added to the following `FormArray` and `FormGroup` methods: * FormGroup.addControl * FormGroup.removeControl * FormGroup.setControl * FormArray.push * FormArray.insert * FormArray.removeAt * FormArray.setControl * FormArray.clear If your app has custom classes that extend `FormArray` or `FormGroup` classes and override the above-mentioned methods, you may need to update your implementation to take the new options into account and make sure that overrides are compatible from a types perspective. Closes #29662. PR Close #31031
-
fix(compiler): support multiple selectors in `:host-context()` (#40494)
The previous commits refactored the `ShadowCss` emulator to support desirable use-cases of `:host-context()`, but it dropped support for passing a comma separated list of selectors to the `:host-context()` . This commit rectifies that omission, despite the use-case not being valid according to the ShadowDOM spec, to ensure backward compatibility with the previous implementation. PR Close #40494
-
fix(compiler): handle `:host-context` and `:host` in the same selector (
#40494) In `ViewEncapsulation.Emulated` mode the compiler converts `:host` and `:host-context` pseudo classes into new CSS selectors. Previously, when there was both `:host-context` and `:host` classes in a selector, the compiler was generating incorrect selectors. There are two scenarios: * Both classes are on the same element (i.e. not separated). E.g. `:host-context(.foo):host(.bar)`. This setup should only match the host element if it has both `foo` and `bar` classes. So the generated CSS selector should be: `.foo.bar<hostmarker>`. * The `:host` class is on a descendant of the `:host-context`. E.g. `:host-context(.foo) :host(.bar)`. This setup should only match the `.foo` selector if it is a proper ancestor of the host (and not on the host itself). So the generated CSS selector should be: `.foo .bar<hostmarker>`. This commit fixes the generation to handle these scenarios. Fixes #14349 PR Close #40494
-
fix(compiler): support multiple `:host-context()` selectors (#40494)
In `ViewEncapsulation.Emulated` mode, the compiler must generate additional combinations of selectors to handle the `:host-context()` pseudo-class function. Previously, when there is was more than one `:host-context()` selector in a rule, the compiler was generating invalid selectors. This commit generates all possible combinations of selectors needed to match the same elements as the native `:host-context()` selector. Fixes #19199 PR Close #40494
-
docs: fix missing code line from tutorial example (#40789)
In #40419 we move the code that creates the `heroes` object above the code that updates the message service. But this moved that line of code outside of the docregion that is displayed in the tutorial ealier on, making it non-sensical. This commit ensures that this line of code is now rendered in the tutorial be moving it within the correct docregion. Closes #40788 PR Close #40789
-
fix(docs-infra): fix top padding of main content when a notification …
…is visible (#40802) This commit fixes the top padding of the main content on the homepage and other pages when a notification is visible at the top of the page. The problem was particularly obvious on the homepage (see images below). Before: ![homepage top-right before][1] After: ![homepage top-right after][2] [1]: https://user-images.githubusercontent.com/8604205/107394349-74e2e480-6b04-11eb-8853-71a153cdc459.png [2]: https://user-images.githubusercontent.com/8604205/107394336-71e7f400-6b04-11eb-9ef0-ff82f6f27875.png PR Close #40802
-
fix(docs-infra): fix placement of TOC hover/active markers (dots) (#4…
…0802) This commit fixes the placement of the TOC hover/active markers (dots) so that they are horizontally in the middle of the marker "rail" and vertically in the middle of the item's first line. This commit also refactors the `_toc.scss` to be more DRY (wrt styling the TOC markers/marker rail) and uses Sass variables and mixins to ensure that the styling is kept up-to-date wrt future typography changes to TOC items. Before: ![toc marker before][1] After: ![toc marker after][2] [1]: https://user-images.githubusercontent.com/8604205/107270751-03e3f400-6a54-11eb-9d77-5b0a3cfb1c2b.png [2]: https://user-images.githubusercontent.com/8604205/107270758-047c8a80-6a54-11eb-82c0-98b832c109a3.png PR Close #40802
-
fix(docs-infra): improve line-spacing between TOC items (esp. for wra…
…pped lines) (#40802) Previously, the line-spacing between different TOC items was almost the same as that between wrapped lines of the same item. This made it more diffucult to distinguish the different items. This commit fixes this by reducing the line-spacing between wrapped lines of the same item and keeping a larger line-spacing between different items. Before: ![toc line-spacing before][1] After: ![toc line-spacing after][2] [1]: https://user-images.githubusercontent.com/8604205/107255272-ccb81780-6a40-11eb-9612-4e7b2058417d.png [2]: https://user-images.githubusercontent.com/8604205/107255280-cd50ae00-6a40-11eb-8f60-9ce8fba10e12.png PR Close #40802
-
fix(docs-infra): fix sidenav top position on narrow screens (#40802)
On larger screens the top-bar has a height of 64px. On screens smaller than 600px, the top-bar has a height of 56px. As a result, the sidenav should have a top position of 56px on screens smaller than 600px and 64px on other screens. Previously, the style setting the top position to 56px was tied to the presence of the `.collapsed` class, which depends on whether the sidenav is docked or not. The change from docked to collapsed sidenav, however, happens at 992px. As a result, the sidenav had an incorrect top position (56px instead of 64px) on screens between 600px and 991px. This commit fixes this by ensuring the change of the top position for the sidenav happens at 600px. PR Close #40802
-
fix(docs-infra): improve line-spacing between search results (esp. fo…
…r wrapped lines) (#40802) Previously, the line-spacing between different search result items was the same as that between wrapped lines of the same result. This made it difficult to distinguish the different results. This commit fixes it by reducing the line-spacing between wrapped lines of the same result item and keeping a larger line-spacing between different results. Before: ![search-results before][1] After: ![search-results after][2] [1]: https://user-images.githubusercontent.com/8604205/107229685-ca48c400-6a26-11eb-8161-0c0768b10a2d.png [2]: https://user-images.githubusercontent.com/8604205/107229691-ccab1e00-6a26-11eb-9594-d4c37d0d72b2.png PR Close #40802
-
fix(docs-infra): avoid page-breaks inside an image when printing (#40802
) Previously, when printing, a page-break could be inserted inside an image (contained in a `.lightbox` element). This commit ensures no page-breaks are inserted inside `.lightbox` elements (which contain images). Before: ![print-page-break before][1] After: ![print-page-break after][2] [1]: https://user-images.githubusercontent.com/8604205/106939709-48f0e900-6729-11eb-912c-e5cd0cb40897.png [2]: https://user-images.githubusercontent.com/8604205/106939707-48585280-6729-11eb-8d5f-a12312f32056.png PR Close #40802
-
fix(docs-infra): fix search results top padding when a notification i…
…s visible (#40802) Previously, when a notification was visible at the top of the page, the search results pane had more top padding than necessary. This commit fixes it by removing the extra padding. Before: ![search-results before][1] After: ![search-results after][2] [1]: https://user-images.githubusercontent.com/8604205/106938100-3970a080-6727-11eb-8ae8-4e7a33af1daf.png [2]: https://user-images.githubusercontent.com/8604205/106938103-3aa1cd80-6727-11eb-96f5-f607bde314be.png PR Close #40802
-
fix(docs-infra): dim line-numbers in code examples (#40802)
This commit ensures that the line-numbers in code examples appear "dimmed" to make it clearer that they are not part of the actual code. Based on the CSS rules, it seems that the intention was to make it so, but the color was incorrectly set on the `<ol>` elements instead of targeting `li::marker`. Before: ![line-numbers before][1] After: ![line-numbers after][2] [1]: https://user-images.githubusercontent.com/8604205/106937191-23aeab80-6726-11eb-9178-bdc067fa3d09.png [2]: https://user-images.githubusercontent.com/8604205/106937184-227d7e80-6726-11eb-81d1-f709537b6a56.png PR Close #40802
-
fix(docs-infra): fix vertical alignment of contributor info items (#4…
…0802) This commit fixes the vertical alignment of info items (i.e. links to bio, Twitter, website) in the contributor list. Before: ![contributor alignment before][1] After: ![contributor alignment after][2] [1]: https://user-images.githubusercontent.com/8604205/106926453-ca407f80-6719-11eb-9580-8614cc4f4907.png [2]: https://user-images.githubusercontent.com/8604205/106926469-cd3b7000-6719-11eb-8ba8-c8ae01996c02.png PR Close #40802
-
fix(docs-infra): clear unneeded DOM nodes in `CodeExample/TabsCompone…
…nt` (#40802) Both `CodeExampleComponent` and `CodeTabsComponent` components receive some code via content projection, grab the projected content and pass it through to a `CodeComponent` instance for formatting and displaying. Previously, the projected content was kept in the DOM (hidden). This unnecessarily increased the number of DOM nodes. This commit fixes this by clearing the projected DOM nodes once their content has been captured. PR Close #40802
-
docs: Add documentation about the CLI failing (#35385)
The CLI seems to throw very non-descriptive errors. Adding a section to help users troubleshoot lazy-loading modules. PR Close #35385
-
-
docs: remove unnecessary `<hr />` tags in Getting Started sections (#…
…40693) After the docs UI redesign `h2` tags got a border top. `border-top: 1px solid #dbdbdb;`; In the sections of Getting Started guide in order to separate `What's next` from above content an `<hr />` tag was used, that now becomes unnecessary. This commit removes unnecessary `<hr />` tags. PR Close #40693
-
build(docs-infra): add a link to `usage notes` from `description` (#4…
…0835) The "Usage Notes" section is often at the bottom of a long page of content which can make it difficult to discover. This commit adds a link at the end of the "Description" if there is a "Usage Notes" section on the page. This link should help the reader to discover that there is more information available further down the page. This is basically a marginal fix. The longer term fix should be to consider what content goes in which sections and how they should be laid out on the page. See #40753 PR Close #40835
-
refactor(docs-infra): use CDK clipboard service (#40840)
The CDK has had a service for copying strings to the clipboard. These changes switch AIO to it, rather than having to maintain a custom solution. PR Close #40840
Commits on Feb 13, 2021
-
docs: add a style recommendation for initializing inputs (#40698)
This practice is to better align with `strictPropertyInitialization` which is coming by default with strict mode in v12. PR Close #40698
-
fix(core): address Trusted Types bug in Chrome 83 (#40815)
In Chrome 83 passing a TrustedScript to eval just returns the TrustedScript back without evaluating it, causing the newTrustedFunctionFor{Dev,JIT} functions to fail. This is a browser bug that has been fixed in Chrome 84, and only affects Angular applications running with JIT (which includes unit tests). As a temporary workaround for users still on Chrome 83, detect when this occurs in the newTrustedFunctionFor* functions and fall back to the straightforward, non-Trusted Types compatible implementation. The only combination that is left affected consists of Angular applications running with JIT, that have explicitly configured Trusted Types in enforcement mode, with users that are still on Chrome 83. Also correct docstring for newTrustedFunctionForJIT. PR Close #40815
-
docs: add ng-conf 2021 (#40783)
PR Close #40783
-
docs: clarify that support schedule is subject to change (#40770)
-
docs: Clarify new ng workspace options (#40816)
Hope this helps make the tutorial go even smoother for people after me. PR Close #40816