Skip to content

Sync with @angular/material #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 130 commits into from
Mar 19, 2019
Merged

Sync with @angular/material #3

merged 130 commits into from
Mar 19, 2019

Conversation

FirstVertex
Copy link
Owner

No description provided.

mmalerba and others added 30 commits February 8, 2019 16:00
Adds the missing labels to a couple of the radio button live examples.

Fixes #15026.
* Button icons aria labels changes #14998

* Button icons aria labels changes Fixes #14998
…sabled (#15125)

Fixes the bottom sheet container not creating a focus trap, if `autoFocus` is set to `false`.

Fixes #15119.
Currently when the consumer passes in an array of items to `withItems`, we clone the array which means that the indices won't update if the consumer shuffles them around. The original rationale behind it was to avoid accidentally mutating the array, however this makes it less convenient to use since the consumer would have to remember to move the item in the array __and__ call `withItems` in order to keep everything in sync when an item is dropped.

These changes remove the cloning and use `ReadonlyArray` to prevent us from accidentally making changes.

Fixes #15089.
…n preceding subscriber unsubscribes (#14988)

Fixes the `BreakpointObserver` completing subscribers that come after the current one, if one of the preceding subscribers unsubscribes. The issue seems to come from the way we store the listener in order to remove it later on. These changes switch to creating the `Observable` ourselves, rather than going through `fromEventPattern` so that we have more control over the event handler.

Fixes #14983.
…xt (#11093)

No longer adds the `aria-label` to the `mat-dialog-close` directive, if the element that it's being applied to has text. This prevents the label from being read instead of the button text.

Fixes #11084.
* Adds an extra theme to the build that will allow us to verify that everything still works if somebody passes in the palette colors as CSS variables.
* Fixes a handful of places where Sass would either throw an error or would produce invalid CSS.

Fixes #15107.
Previously, the docs said editable can be set to true, but that is the default, so it makes more sense to say they can be set to false to change the default behavior.
We currently face a lot of flakiness with our Saucelabs job. These randomly exceed the 2min establish timeout because something throws
off `sauce-connect` in a long-lasting loop where it tries to connect to some of their Saucelabs servers. The initial assumption from the Saucelabs
team was that we might have some invalid firewall rules, but this does not answer why this happens _randomly_, so the latest update from the support
is that there have been some changes in the latest version of `sauce-connect` version that cause this flakiness.
The native cdk-table adds thead, tbody, and tfoot elements but was
omitting the "rowgroup" role from these. This is necessary since we also
specifically add roles to all of the other table elements.
This also marks thead and tfoot as `display: none` when there are no
corresponding rows.
…tion (#15126)

Adds an injection token that allows consumers to configure the default `politeness` and `duration` for the live announcer.

Fixes #15121.
… after init (#14858)

Along the same lines as #14836. Fixes changes to `disableRipple` not being propagated immediately the list options.
The native `dir` attribute is case-insensitive, however our `dir` directive will normalize something like `RTL` to `ltr`. These changes account for different cases of the values.
…cess. (#15206)

This is a strictness check that we are going to enforce in g3 internal
typescript, to aid with optimization. Generally it is also syntactically
a good idea to have visual indication when a type is accessed through an
index signature vs not.
Adds `@angular/forms` to the list of peer dependencies, because there are around 10 Material components that are importing symbols from it.

Fixes #15085.
* Fixes a few examples that didn't have labels for the native select.
* Switches all of the examples to use the `mat-label`, instead of a `placeholder`.

Fixes #15022.
Currently whenever someone specified Stylus or Sass as the
default style extension for their Angular CLI project, the CDK/
Material schematics incorrectly generate files with that given
extension. This is problematic because the schematic style
templates are written in CSS and therefore are not compatible
with Stylus or Sass (which are not supersets of CSS unlike less, scss)

Fixes #15164
…5218)

Currently we still cannot cut the Github release automatically because
the publish script does not have API access. Though it's sometimes
not quite clear for the caretaker what he needs to do manually. In
the meanwhile we make this _slighty_ more clear by adding a
note that indicates where the release notes should be copy-pasted
to.
crisbeto and others added 29 commits March 7, 2019 10:08
* Fixes one unit test that was depending on static queries.
* Fixes the remaining 16 failures that were due to some code that was commented out while waiting for a task which was resolved.
Fixes some tests that will fail under Ivy, because they depend on static queries.
This happens to work when the content is just text; however, content gets center
aligned when there are matLine elements nested in a <button mat-list-item>.
Fixes badges being left over if the current page was rendered via Angular Universal. This can cause issues, because the ids on the badges can clash.
Currently when someone runs the update schematic within a CLI project,
the migration could be executed multiple times for the same `tsconfig` path
This can happen because the `getProjectTsConfigPaths` function _can_
incorrectly return the same tsconfig multiple times. The paths are not properly
deduped as we don't normalize the determined project tsconfig paths.

e.g. `/tsconfig.json` exists and the common tsconfig path is detected. At the same time the
workspace configuration specifies `tsconfig.json` in the project options. Both paths refer
to the same tsconfig project, but are different strings and therefore aren't filtered out
by the `Set` which contains all possible tsconfig locations --> migrations are executed
for both paths.
Documents the functionality from #15064 and adds a live example.
Equivalent of #15427 for master. Fixes the chip list tests that are failing under Ivy due to a known breaking change.
Throws a proper error message if one of the examples is missing a title, in order to avoid a more cryptic error down the line.
* use `FocusKeyManager`'s `updateActiveItem` method instead of
  deprecated `updateActiveItemIndex`
* fix description of `MatSelectionList`'s `focus` method
* remove `MatSelectionList`'s redundant `(focus)` event listener
In Ivy inheriting `host` bindings works correctly by merging the two declarations, whereas in ViewEngine the bindings aren't inherited at all. This means that with our current setup the `click` listener on the buttons will be invoked twice with Ivy.

These changes rework the buttons so that they work both with Ivy and ViewEngine.
This resolves an issue with Ivy where change detection was not reflecting binding changes made to the row and cell templates in the component declaring the table.

In View Engine, change detection for a dynamically created view runs in two cases:
        1) When the view in which it was inserted is checked
        2) When the view in which it was declared is checked

As a result, if a dynamic view is inserted into an OnPush component, that view is not actually checked only "on push". It is also checked as often as its declaration view is checked (even if the insertion view is explicitly detached from change detection).

For this reason, marking `MatTable` as "OnPush" doesn't have much of an effect. It is built almost entirely of views that are declared elsewhere, so its change detection frequency is dependent on those declaration views. It also doesn't have any bindings inside its own view that would be protected by "OnPush", so marking it this way is effectively a noop and can be removed without performance regressions.

In Ivy, this change detection loophole has been closed, so  declaration views can no longer de-optimize OnPush components. This means bindings inherited from declaration views aren't updated by default if `MatTable` is OnPush (the embedded view would need to be marked dirty explicitly).

To avoid breaking changes when we transition to Ivy, it makes more sense to perpetuate the current behavior by removing the "OnPush" marker. As delineated earlier, this has no impact on View Engine. For Ivy, it would ensure bindings inherited from the declaration view are still checked by default.
In #15134 we reworked the stepper not to depend on `@angular/forms` under the assumption that our limited `FormControl` interface would be enough to avoid a breaking change. Some people ended up being broken by the change so this PR reworks the `stepControl` type to avoid the breaking change.

Fixes #15462.
…tor (#15469)

Due to changes in Angular it's not logical to change style values
directly within a constructor. This should be done instead within
the ngOnInit lifecycle hook.

This patch changes this behavior for the `ToolTip` component.
Fixes the API golden check failing against master.
Fixes the stepper's content not being shown on the first render with Ivy, because we assume that the template with be present on init.
Adds a sentence to the docs about the `align` attribute of the dialog content. We can't document it through doc strings, because it isn't defined in TS.

Fixes #15482.
Reworks the `MatTree` and `CdkTree` components to account for some of the changes in Ivy. This includes:

* Changing the padding directive to account for a different time at which static inputs are initialized.
* Changing the toggle directive to account for inheritance of host listeners working differently.
* Switching to `Default` change detection, because the way embedded views are checked is slightly different.
* Using `descendants: true` to find the nested node outlet in order to handle a slight difference in how indirect content children are matched.
@FirstVertex FirstVertex merged commit 661eaa0 into FirstVertex:master Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.