* Introduces support for `ng add @angular/cdk`. Note that this currently just sets up the `package.json` but is necessary because otherwise the CLI will complain about the `ng-add` schematic not being available.
* Upgrades Bazel workspace rules in favor of removing Bazel manual-copying workarounds for the schematics. This also allows us to switch over to fine-grained dependencies in a follow-up (making it consistent with angular/angular).
* Use fine grained dependencies in schematics bazel rules
Currently if an invalid value is set to the grid list's `rowHeight`, we pass it on to the browser which may or may not handle it. These changes will throw an error if an invalid value is passed in, in order to make debugging these kinds of issues easier.
Fixes#13252.
Currently we use the input value accessor to figure out whether an input has a value. This doesn't handle the case with `matDatepicker` where we have a custom accessor whose model value may not change, even though the value in the input has changed. These changes switch to always using the value from the input element.
Fixes#13305.
Currently we forward the tabindex from the host element to the underlying input, however we leave behind the tabindex on the host, which means that consumers can end up with two layers of focusable elements.
The `mat-selection-list` is set up as a listbox, however we never set `aria-multiselectable`, which means that the element is assumed to be single selection. These changes add `aria-multiselectable="true"` since selection lists are always multi-selection.
If the tooltip's `show` method is called twice in a row (e.g. if the user hovered over the trigger and then focused it), it'll be closed and quickly reopened which is a little wasteful and looks glitchy. These changes switch it up so nothing is done, if the tooltip is open and there are no in-progress timeouts.
Currently if the TS compilation (either through `ngc` or `tsc`) fails, the gulp tasks won't report the error properly because the `reject()` call of the Promise does not have any error message. This causes compilation failures to be ignored. See: #13310
Adds the opt-in `disposeOnNavigation` option which will dispose of an overlay when the user goes back/forward in history. This is something that we had in `MatDialog` and `MatBottomSheet` already, but it's a common-enough case, especially for global overlays, that it makes sense to have it in the CDK.
Fixes#12544.
Currently the arrow for the form field's native select is done through a URL-encoded SVG set as a background image. This is inflexible, because it doesn't allow us to easily change its color, which means that we're locked into one color that doesn't account for dark themes, disabled state or whether the form field has validation errors. These changes rework the approach to use a pseudo element to render the arrow instead and to use the proper colors for the other states.
Currently we recreate the `TileCoordinator` and throw out the old one on every change detection run. These changes reuse a single `TileCoordinator` and update it instead, which ends up shaving off a couple of milliseconds off each layout and reduces the amount of objects that need to be garbage collected.
**Note:** this is a breaking API change for the `TileCoordinator`, however it isn't exported through `material/grid-list`.
Handles the case where the consumer has two drop containers where only one is connected to the other. Currently once the user drags an element outside the first one, they won't be able to return it. With these changes we allow the element to be returned, as long as it hasn't been dropped into the new container.
Fixes#13246.
Fixes an error being thrown on IE when the root element is customized. The error comes from the fact that IE doesn't support `Element.prototype.matches`, but it does support `msMatchesSelector`.
* Since people often click on the ripple container of the example, we need to disable the user selection because otherwise the text will be accidentally selected.
* Disables the `no-prefixes` rule for example style files. The examples are not auto-prefixed and we don't want to show the `/** stylelint-disable` comments in the examples.
remove space between <% to make parsing work
remove space after %> to fix Dashboard Component to DashboardComponent
add blank lines at ends of html/css files
Currently, if someone runs `gulp stylelint` and has the dashboard node modules installed, stylelint will lint the `tools/dashboard/node_modules/`. This causes stylelint to report thousands of failures due to some minified CSS files in the `node_modules/`.
Since most of the SCSS files inside of `core/theming` are not suffixed with `-theme.scss`, the livereload will rebuild the Material bundles, but not the theme SCSS files. This causes undesired slow-down and a non-working livereload.
* Since TSLint is technically not supporting failures for source files which don't belong to the given rule walker, we need to create the `RuleFailure` objects ourself. Currently this results in using an inconsistent and unclear way of adding failures. With this change, the `ComponentWalker` includes utility functions which allow adding external rule failures consistently and easy.
* Fixes that the external resource `ts.SourceFile`'s have incorrect offsets for `getEnd()`, `.end`. This might cause unexpected results in the future.
* Fixes that `externalResource.getText()` is returning content that does not match with the original source file content.
Instead of running the whole migration transformations for *each* test-case, we should just run the schematic once per target version. This speeds up the case testing of the schematics, and makes it easier to develop more.
Currently the `table` schematic generates a `<table>` element that does not expand to the available width. By default, we should expand to the full width. Similarly to every table example on our docs. This makes it easier to play with the table and also gives people a better first glance of a table. Also currently it doesn't look that good (in perspective of layout) because the paginator expands to full width, but the table not.
* Currently if the `MatTooltip` directive is being used without any other modules that set up our "Material" hammer gesture config, the tooltip will use the default `platform-browser` gesture config and **never** fire the `(longpress)` event.
This could have been probably added to #12940, but I figured that out later and should be fine that way too.
Related to #12917
Based off of #10720 (adding the demo page)
Changes the paginator's `getNumberOfPages` such that it returns the actual number of pages that are on the paginator rather than the max page index. This better matches the method name and description.
E.g. right now if you have one page, the function returns `0` rather than `1`, which is unexpected.
Fixes#10699
* Removes the `skipPackageJson` option from the `ng-add` schematic. The option does not work properly because `ng add` by default saves the dependency to the `package.json` file. Also we have no way to disable saving when installing the CDK through the `NodePackageInstallTask`. See for reference: https://github.com/angular/angular-cli/commit/729d407fa1877d60d1e44efa3d657dc3ab4279e1
Adds the ability for the consumer to swap out one position strategy for another, even while an overlay is open. This allows us to handle cases like having a menu that is a dropdown on desktop, but becomes a full-screen overlay on a mobile device.
* update(ripple): remove deprecated speed factor option.
* Removes the deprecated `[matRippleSpeedFactor]` and global `baseSpeedFactor` option.
* Adds update rules that can automatically switch to the new API (as much as possible) and even calculate the new durations based on the previously specified speed factor.
BREAKING CHANGE: deprecated `[matRippleSpeedFactor]` and `baseSpeedFactor` for the ripples have been removed. Use the new animation config instead.
* Add test case; fix NodeJS version target circular dependency; Support for rule version constraints
Added the "alternative label" version, as by [(old) spec](https://material.io/archive/guidelines/components/steppers.html#steppers-types-of-steppers).
Tryed on Chrome, Firefox, Edge and IE11 and everything seems fine.
Added a paragraph in the stepper documentation and an example.
I'm not sure the code style is ok so if you have suggestions I'll be happy to clean it up a bit, just tell me how :)
Currently we reset the focus outline for the `select` inside a form field for all browsers, however Firefox adds its own outline on top of it. These changes remove the extra Firefox outline since we have other focus indication already.
For reference:

Currently the tree assumes that the indentation level will always be in pixels, however this makes it hard to work with on responsive layouts. These changes add support for different CSS units.
Fixes the snack bar's button appearing off-center on IE11. The flex styling that has been removed isn't necessary anymore after the recent design changes.
Ensures that all of the `@Input` changes get propagated to the underlying position strategy. Up until now we did it on a case-by-case basis which meant that a lot of them weren't, because we never added an extra call inside the `ngOnChanges`.