Fixes Angular throwing an `ExpressionChangedAfterItHasBeenCheckedError` when disabling the slide-toggle while the component has been focused.
Fixes#12323
* Fixes that Angular throws an ExpressionChangedAfterItHasBeenCheckedError when disabling the checkbox while the component has been focused.
* Adds missing test for `NgModel` states after value change through view.
Related #12323
Fixes the case where the user might get multiple live announcer elements, if they're coming in from a server-side-rendered page. Along the same lines as #11940.
Fixes invalid directionality values being accepted as they are, rather than defaulting to ltr. Browsers fall back to ltr anyway, however having an invalid value can break some of our component that could be checking for one of the correct values explicitly.
Removes the detached overlays from the DOM, rather than keeping their host element. Previously we kept the elements in the DOM, because they don't interfere with user interactions and it made it easier to handle animations, however doing so can cause scroll jank, because the host still has dimensions and is being rendered by the browser.
Fixes#12341.
Fixes changes to the placeholder of a chip input not being propagated to its parent form field. Also un-deprecates the input for `placeholder`, because we need to know when it has changed.
Fixes#11861.
Currently we have some functionality that waits for the preview's animation to finish and falls back to a timeout, based on the computed `transition-duration`, however that fallback doesn't account for the case where the element has a `transition-delay`. These changes account for the delay.
Removes type checking from the `switchIdentifiersRule` because we don't want to depend on types for older versions when running the schematics. The rule still maintains the explicit checks that ensure that only identifiers from Material or the CDK are being updated,
* Switches back from `dart-sass` to `node-sass` due to a pretty huge slow-down we noticed (can be revisited)
* No longer copies all SCSS files to the temporary `package` output just in favor of the demo-app (slows down unnecessarily). This now allows us to live-reload theme changes within a second.
* No longer rebuilds all package SCSS files twice for the ES5 output (rel: https://github.com/angular/material2/pull/7403)
As discussed, renames the `@deletion-target` tag to `@breaking-change` to make the intentions of the tag clearer. Also adds an extra check to the tslint rule to catch any leftover `@deletion-target` tags.
* Switches to dart-sass in order to be consistent with the Bazel output. That way we can identify potential issues with the SASS output (e.g. demo-app) before we at some point make the full-switch.
* Also speeds-up the project installs because libsass bindings are no longer needed (trade-off with compilation time though; but pretty minimal due to our amount of Sass files)
* build(schematics): test schematics properly
* Previously, the spec files that have been pushed to the repository, didn't run at all, or were outdated. This PR updates the tests and also enables most of them (as much as possible).
* Sets up the Bazel test rules (with a few needed workarounds) in order to test the schematics
* Removed devkit utils that can be used from `@schematics/angular` which is **always present** (we can assume that)
* Moved data `.json` files into TypeScript files (in order to workaround a bazel typescript issue; and to allow separation for v6 and v7 data at some point)
* Updates and fixes schematics to properly work within the latest Angular CLI version
* Address feedback
* Remove unnecessary diff
Reworks the drag&drop not to move the element around in the DOM anymore once it's dropped. Moving the element while it's inside an `NgFor` can be dangerous, because Angular may decide to move the element itself, rather than recreate it, in which case the DOM order will be wrong.
Fixes#12388.
Fixes the table leaking out a reference to a cell outlet via the `CdkCellOutlet.mostRecentCellOutlet` after all tables have been destroyed.
Fixes#12259.
This is a resubmit of #11517 which got in by accident.
* Fixes the `MatSidenavContainer.scrollable` being undefined if the consumer has set the `mat-sidenav-content` themselves. The issue comes from the fact that we only query for scrollables inside the drawer's own view, but not inside the projected content.
* Fixes the example in the sidenav docs accessing the scrollable too early.
Fixes#10884.
BREAKING CHANGE: the constructor signature of the `MatDrawerContent` and `MatSidenavContent` has changed.
This is something that was introduced by #12014. Because we didn't have quotes around the URL in the `fill` value, the reference could become invalid if the user is on a route with a named outlet, which contains parentheses in its URL.
Fixes#12338.
* Adds the ability to pass in strings to `connectedTo` when connecting multiple containers together. Previously we only accepted `CdkDrop` instances which can be inconvenient to pass while inside an `ngFor`.
* Adds the ability to attach extra data to a `CdkDrag`, similarly to `CdkDrop`. This is mostly for consistency and convenience.
* Introduces the `CdkDragDropRegistry` which is used to keep track of the active `CdkDrag` and `CdkDrop` instances. It also manages all of the events on the `document` in order to ensure that we only have one of each event at a given time. This will allow us to handle dragging multiple items at the same time, eventually.
* Adds a unique class to the live announcer element that is automatically created by the `LiveAnnouncer`. Similarly to the overlay container, the live announcer should be also distinguishable (e.g. for testing)
Note: `scrollToIndex` currently does not work with the `AutoSizeVirtualScrollStrategy`. Support for this will be added in a future PR.
This PR is based off #11498 by @amcdnl. I removed the `lazy` option from #11498 to avoid bloating the API. I'm not sure how common the use case is, and its relatively simple to implement on top using the current APIs.
* Currently if the directive metadata is parenthesized, the upgrade tool will fail due to a runtime exception. We should properly handle that edge-case since the `ComponentWalker` is one of major parts for the upgrade tool and will persist in future releases.
* No longer fails if a `@Component` is being created without any metadata or a wrong number of arguments (rel: https://github.com/angular/angular/commit/9a6f27c34ce32af346e20f9cae8ebaacff89cd56)
* Shows method overloads in the documentation instead of showing the overload-base method that has most likely no `JSDoc` nor good-explaining parameter names (parameters have multiple purposes and types)
* Fixes the scrollable dialog content demo not scrolling properly. Also fixes up some of typography and alignment.
* Fixes the spacing and alignment on the `button-types` demo.