Since a lot of functionality depends on the animation completing, these changes add a fallback for the case where there's a transition on the preview, but it doesn't complete for some reason (e.g. it being too short). Currently clicking rapidly on the drag handle can cause it to get stuck and not complete the drop sequence correctly.
* Depending on the timing for building the assets and building the ESM output (kind of randomly), building the Material package will result in NGC failures. This happens when running the `material:build-no-bundles` task (e.g. unit testing; serving the dev-app) because the assets are built in parallel with the ESM output.
* Removes a duplicated function in the package-tools.
Reworks the demo to make the `body` the scrollable element. Currently we have the `mat-sidenav-content` be scrollable which doesn't reflect the setup in most apps and makes it harder to test some cases, because of some things like the overlay backdrop blocking scrolling.
* No longer just runs the tests against the first browser of a test platform (travis, saucelabs, browserstack)
* Stability is more valuable than speed (runs sequentially on CI now)
* Update Saucelabs Connect
* Remove unused spec reporter
* Update from Edge 14 to Edge 17
* Fix pixel deviations in Edge 17
Currently we support having a two-way binding via `ngModel`, but not through the `value` binding. These changes add support for a two-way binding on the `value`.
Currently the datepicker in touch UI mode has `role="dialog"` which is inherited from `MatDialog`, however it doesn't have a role in popup mode. These changes add the proper role for the popup element, in addition to `aria-haspopup` which was missing from the datepicker toggle button.
Fixes the query animation not working on Safari. The issue comes from the fact that Safari won't resolve references correctly when the page has a `base` tag (which is required by `@angular/router`).
* Deprecates the unused landscape row-height variable. The logic for this has been removed a long time ago, and the SCSS variable should be removed at some point.
* Makes the host bindings more clear by expanding the truthy and falsy check.
Fixes the sidenav going into an infinite change detection loop when using the `autosize` option. Initially this was fixed in #11231, but it got reintroduced in #11986 where we started comparing `0` against `null` which always evaluates to true.
Fixes#11215.
If developers use `-webkit-text-fill-color` to change the color of the placeholder and label, the actual "native" placeholder won't be invisible because `-webkit-text-fill-color` overwrites `color: transparent`.
Fixes#12074
When mat-icon element has more than one child node (like when mat-badge is used) then child nodes should be removed in the reversed order otherwise you will attempt to get node by index which is not correct any more since you've deleted some nodes already in the previous iterations and it will cause an error.
Disables the expansion panel header's hover if the device doesn't support hovering. This prevents the header from appearing as stuck if the user taps it on a touch device.
Relates to #12030.
Since the ripples are feedback enough that the element was touched, we should disable the native feedback on touch devices so it doesn't overlap with the ripples. These changes go through the various clickable ripple triggers and remove the Webkit highlighting.
Fixes the tab group firing its `selectedTabChange` event when the amount of tabs changes, which might throw the consumer into an infinite loop if they're adding new tabs inside the callback.
Fixes#12084.
Fixes the datepicker's popup showing a 1x1 pixel dot in high contrast mode, after the calendar has been closed. The dot comes from the outline that we add to the popup which collapses after we detach the overlay.
Sometimes the focus origin is not valid because Firefox seems to focus a tick after the keyboard/interaction event fired a tick before. To ensure the focus origin is always correct, the focus origin will be added to the next tick event loop
Fixes#6984
Since the consumer doesn't have direct access to the overlay that is being opened, there's no way for them to listen for keyboard events. These changes expose the `OverlayRef.keydownEvents` via an output.
Along the same lines as #11898. In our stepper docs we recommend for people to add a meaningful label via `aria-label` or `aria-labelledby`, however even if they do, the attributes don't get forwarded to the underlying element that has the proper role. These changes add inputs for `aria-label` and `aria-labelledby` and correctly forward the attributes.
Angular 6.1 adds the HAMMER_LOADER token that can be used to lazy-load
HammerJS. This commit updates Angular Material's gesture config to be
compatible with lazy-loading HammerJS by:
* Only reading `window.Hammer` after Angular knows that HammerJS has
been loaded.
* Always registering the set of gesture events used in the Angular
Material components (instead of registering no events when Hammer is
absent).
Once we are able to depend on HAMMER_LOADER itself (in v7.0), this can
be simplified a bit.
* Fixes that the radio group JSdoc descriptions mention the state of the radio button while the `selected` property is actually about the `MatRadioGroup`
* A `index.ts` file for the Material package has been added at some point. To be consistent, we switch away from `public-api.ts` to `index.ts` for the output of the individual packages.