bug fix | a11y: avoid errors when trying to add high contrast class (#18323) (142c55e) |
bug fix | a11y: focus monitor incorrectly detecting fake mousedown… (#15214) (ac565a2) |
bug fix | autocomplete: provide horizontal fallback positions (#18906) (3488dda), closes #18854 |
bug fix | bottom-sheet: allow result to be passed when dismissing through service (#18831) (48e26b1) |
bug fix | core: ripple mutating global options when animations are… (#18983) (09f2872) |
bug fix | datepicker: add hover indication to navigation buttons (#18995) (94ab707), closes /github.com/angular/components/blob/master/src/material/button/button.scss#L13 #18958 |
bug fix | datepicker: disable calendar hover styles on touch devices (#18876) (d752cdf) |
bug fix | datepicker: error in IE/Edge for static disabled binding (#18202) (80977f6) |
bug fix | dialog: recapture focus when clicking on backdrop when cl… (#18826) (c5ddfe8), closes #18799 |
bug fix | drag-drop: allow preview z-index to be changed (#18914) (5c88e67), closes #18902 |
bug fix | drag-drop: boundary not accounting for scrolling (#18612) (0401024), closes #18597 |
bug fix | drag-drop: defer resolving scrollable parents until first drag (#18918) (ca263c3), closes #18737 |
bug fix | drag-drop: handle custom preview/placeholder with multiple root nodes (#18829) (92aed70) |
bug fix | expansion: add strong focus indication (#18552) (6feff45) |
bug fix | mat-button-toggle: mat-button-toggle element should not h… (#18746) (709ac63) |
bug fix | popover-edit: hover content not showing up if content changes after init (#18937) (d7ff7cb), closes #18934 |
bug fix | popover-edit: unable to close focus content using the keyboard (#18945) (e7a197a) |
bug fix | slider: not stopping drag when released outside of viewport (#18905) (ca3c68f), closes #18888 |
bug fix | tabs: tab nav bar not disabling pagination animation (#18886) (a6e5423) |
performance | drag-drop: avoid unnecessary change detection on pointer down events (#18821) (2f6e941), closes #18726 |
performance | focus-monitor: optimize event registration (#18667) (174e4cd) |
performance | ripple: optimize event registration (#18633) (fca0c28) |
bug fix | map circle error during server-side rendering (#18822) (7c6be0e) |
bug fix | not rendering until mapTypeId is set (#18967) (977c605), closes #18965 |
bug fix | dialog: disableClose not working for tem… (#18968) (c0d19cb), closes #18964 |
bug fix | mdc-card: not handling dark themes (#18938) (f1c0c09) |
bug fix | mdc-chips: align theming setup with… (#19000) (7957423) |
bug fix | mdc-chips: enter animation not disabled when using noop animations (#18653) (ea32d14), closes #18642 |
bug fix | mdc-chips: support custom errorStat… (#18974) (58abf23) |
bug fix | mdc-radio: add strong focus indication (#18946) (897dee4) |
bug fix | mdc-radio: no focus indication in h… (#18969) (4d22936), closes #13280 |
performance | mdc-chips: avoid checking the DOM on each change detection (#18929) (29dda54) |
This release introduces support for TypeScript 3.8.
bug fix | coercion: add the support for readonly array coercion (#18807) (cd96886), closes #18806 |
bug fix | form-field: incorrectly calculating start gap in RTL in the presence of a prefix (#18867) (6275339), closes #18857 |
bug fix | form-field: some input types taller than plain text input (#18825) (e311791), closes #18787 |
bug fix | list: no selected indication in high contrast mode while in single selection (#18585) (76e8a38) |
bug fix | table: error when nesting tables (#18832) (32aec93), closes #18768 |
feature | support setting the map type (#18578) (2a6aae1), closes #18577 |
bug fix | mdc-chips: add feature targeting to theme styles (#18830) (54bbb90) |
bug fix | radio: redefine theme variables (#18907) (cc9793f) |
bug fix | radio: remove input click handler (#18868) (7c75d6e) |
bug fix | slide-toggle: allow different densities (#18895) (4d7ffaa) |
bug fix | slide-toggle: redefine more variables (#18908) (1cca459) |
bug fix | testing: don't send unnecessary Key.chord s to protractor (#18685) (427e91f), closes mozilla/geckodriver#1502 |
feature | testing: Allow custom querySelectorAll method (#18178) (40ae1b1) |
bug fix | column-resize: don't allow dragging using the right mouse button (#18758) (c538354) |
bug fix | datepicker: prevent default dialog options from affecting touch ui calendar (#18657) (aca2533), closes #18648 |
bug fix | radio: clicks not landing correctly in some cases on Chrome (#18357) (fe29835), closes #18285 |
feature | focus-monitor: Add eventual detection mode option to focus monitor (#18684) (b3a2c56) |
feature | form-field: use injection token for providing form-field (#18777) (8ec44a1) |
feature | snackbar: add isDismissed harness method (#18766) (6e70cc7) |
bug fix | rename sass mixins to mat-mdc-* (#18615) (b91e88f) |
bug fix | form-field: avoid expression changed after check (#18741) (eae5cf8) |
bug fix | overlay: support SVG element as overlay origin (#18595) (1303d8f) |
bug fix | clipboard: not restoring focus to SVG elements (#18626) (f48ddf0) |
bug fix | document-injection: Update to use injected document (#18780) (350e598) |
bug fix | drag-drop: detect changes on custom preview/placeholder before measuring (#18698) (2201a99), closes #18622 |
bug fix | drag-drop: error on IE when document is being auto scrolled (#18757) (b0b44d2) |
bug fix | drag-drop: only return item to initial index if the new container's sorting is disabled (#18706) (14ae95f), closes #18697 |
bug fix | form-field: error when trying to lock label into position too early (#18666) (6fd3e6c), closes #18663 |
bug fix | list: incorrectly selecting items when moving focus using shift + arrow key in single selection mode (#18579) (4a809d7) |
bug fix | list: no disabled indication in high contrast mode (#18567) (5f37eb7) |
bug fix | mdc-form-field: refresh notch width when toggling appearances (#18776) (0bfa717) |
bug fix | mdc-form-field: text-field should stretch based on host element (#18778) (2555344) |
bug fix | menu: allow focus to be moved inside menuClosed event (#18756) (5499c40) |
bug fix | server-side rendering error for polygon and rectangle components (#18573) (d987807) |
bug fix | mdc-list: fix styles for normal lists (#18632) (fcef522) |
bug fix | slider: add slider mixin to main theme mixin (#18384) (3b777eb) |
bug fix | mdc-form-field: account for breaking changes in MDC (#18795) (e26670f) |
bug fix | testing: don't send unnecessary Key.chord s to protractor (#18685) (f87195b), closes mozilla/geckodriver#1502 |
bug fix | column-resize: don't allow dragging using the right mouse button (#18758) (b29308a) |
bug fix | datepicker: prevent default dialog options from affecting touch ui calendar (#18657) (913ca45), closes #18648 |
bug fix | radio: Move .mat-radio-input above .mat-focus-indicator. (#18709) (bdd9ec9) |
bug fix | typography: default to normal letter spacing (e441a8c) |
bug fix | tabs: fix event emitter type (#18664) (b486891) |
bug fix | mdc-*: rename sass mixins to mat-mdc-* (#18615) (694386a) |
bug fix | mdc-form-field: avoid expression changed after check (#18741) (65a602f) |
bug fix | mdc-progress-bar: account for breaking changes in latest canary (5d49f37) |
bug fix | mdc-slider: resolve warnings about active event listeners (#18583) (6faa30c) |
bug fix | chips: only add type attribute to button remove icons (#18477) (584cd49), closes #18095 #18464 |
bug fix | sidenav: not restoring focus to SVG elements (#18614) (ed763f5) |
bug fix | mdc-button: add base css class to all buttons (#18422) (144cb41) |
bug fix | mdc-chips: align with latest MDC markup (#18472) (7db3e3a) |
bug fix | mdc-chips: don't allow focus on checkmark icon (#18588) (8637f66) |
bug fix | mdc-radio: able to focus disabled radio button via click (#18584) (cdd3600), closes #15499 |
bug fix | mdc-radio: use consistent ripple timings (#18590) (2658d9d) |
- Column resizing for tables is now in experimental (198911)
- Selection list now supports a single selection mode. Enable it with the
multiple
input set tofalse
. FakeMatIconRegistry
has been added for unit testing.- Added a new Sass mixin,
mat-strong-focus-indicators
, that can be used to add a stronger focus indicator to Angular Material components
bug fix | text-field: fix autofill listener on Chrome 80 (#18468) (4b329f0) |
feature | testing: add isFocused method to TestElement (#18183) (e704996) |
Deprecations:
MAT_LABEL_GLOBAL_OPTIONS
exported in@angular/material/core
is deprecated. UseMAT_FORM_FIELD_DEFAULT_OPTIONS
from@angular/material/form-field
. Note that the propertyfloat
is now matching the input namefloatLabel
.FloatLabelType
exported in@angular/material/core
is deprecated. Import the symbol from@angular/material/from-field
.
bug fix | a11y: focus trap incorrectly moving focus internally if focus was already moved into it (#18541) (c704d17), closes #18538 |
bug fix | chips: unable to set custom tabindex on chip (#17699) (bbb92a7) |
bug fix | clipboard: leak if directive is destroyed while a copy is pending (#18066) (9227c7b) |
bug fix | datepicker: don't call date filter function if date is out of bounds (#18419) (5e34de2), closes #18411 |
bug fix | datepicker: memory leak in popup mode (#18102) (5fe233a), closes #17896 |
bug fix | drag-drop: auto scrolling not working if list uses scroll snapping (#18294) (9459f5b), closes #18162 |
bug fix | drag-drop: error when dragging items inside transplanted views with OnPush change detection (#18356) (f2f78a0), closes #18341 |
bug fix | drag-drop: not working correctly inside transplanted views (#18499) (d1a6ea7), closes #18482 |
bug fix | expansion-panel: Fix clipped box-shadow between expansion panel headers. (#18378) (dddbca2) |
bug fix | form-field: fix underline jank in fill variant (#18407) (52fea06) |
bug fix | icon/testing: Adds size specs to fake icon (#18306) (27ef842) |
bug fix | input: apply static class binding to host (#18196) (8f62ffe) |
bug fix | list: allow for list and list items to be disabled (#17584) (c6a9f15), closes #17574 |
bug fix | list: Selection List element should not be focusable. (#18445) (fd1593d) |
bug fix | ng-update: avoid error if project has folder ending with style extension (#18454) (411d048), closes #18434 |
bug fix | ng-update: do not throw if project does not have dependencies (#18470) (01e4fba), closes #18469 |
bug fix | overlay: incorrectly calculating using minWidth and minHeight as a string (#18540) (0d7e2f0), closes #18486 |
bug fix | overlay: restore previous host element before attaching (#17855) (ee96e05) |
bug fix | platform: RTL scrolling behavior detection not using cached value in some cases (#18389) (633e4c2) |
bug fix | selection-list: incorrectly handling A key in some cases (#18513) (ff0de11) |
bug fix | consistently use const enum (#18390) (8ae7b18) |
bug fix | popover-edit: Call markForCheck against row hover content when showing (#18258) (5c9f0d6) |
bug fix | progress-bar: changed after checked error on animation end event with noop animations (#18441) (004eeb8) |
bug fix | slide-toggle: clicks not landing correctly in some cases on Chrome (#18285) (99b27e8), closes #18269 |
bug fix | ng-add should always install matching CDK version (#18076) (fba22bc), closes #18020 #18020 |
bug fix | slider: inject document token (#18275) (3bae800) |
bug fix | tree: not allowing horizontal overflow (#18215) (c5923d6), closes #18182 |
feature | autocomplete: add event when option is activated (#18387) (4629e23), closes #17587 |
feature | chip: Add focus indicator (#18019) (78cfd3c) |
feature | drag-drop: add injection token for configuring the input defaults (#17970) (4667cd4), closes #17921 |
feature | drag-drop: add option to match size of dragged element in custom preview (#18362) (74b3441), closes #18177 |
feature | drag-drop: support scrolling parent elements apart from list and viewport (#18082) (c319431), closes #18072 #13588 |
feature | icon: New FakeMatIconRegistry for unit tests (#18151) (71955d2) |
feature | list: Add single select mode. (#18126) (3b242f0) |
feature | paginator: add provider to configure default options (#17595) (c7c6262), closes #17123 |
feature | popover-edit: Ability to disable edit on specific cells (#18273) (b163b64) |
feature | popover-edit: Adds support for using mat-selection-list for select-like interactions. (#18194) (5b8c581) |
feature | select: add injection token for configuring default options (#17543) (dbdc1a8), closes #17406 |
performance | ripple: avoid page layouts from ripple elements (#17253) (79330b7), closes #17252 #17252 |
refactor | deprecate MAT_LABEL_GLOBAL_OPTIONS in favor of form-field global defaults (#18017) (bfdf323) |
bug fix | avoid errors when accessing API too early (#18376) (591ac9c) |
bug fix | internal events run inside NgZone (#18034) (3e2e023) |
bug fix | support numbers for width/height of the map (#18105) (02c24ec) |
feature | table: experimental column resize (#16114) (198911f) |
bug fix | consolidate mixins in e2e theme file (#18385) (3af0d8a) |
bug fix | icon/fab missing states color (#18403) (9cfc66d) |
bug fix | rename theme files to match stable components (#18383) (3d35180) |
bug fix | mdc-button: some button variants not visible in high contrast mode (#18036) (a8fde4a) |
bug fix | mdc-chips: chip removal not working if animations are disabled (#18314) (bb08fa7), closes #18303 |
bug fix | mdc-chips: leading icon not hidden on init when preselected (#17997) (4c08a88), closes #17979 |
bug fix | mdc-chips: support home/end in chip grid (#18052) (847a469) |
bug fix | mdc-form-field: do not include outline structure styles in theme (7fe8381) |
bug fix | mdc-form-field: ensure validity styling is not reset by foundation (#18266) (f43e3e8) |
bug fix | mdc-form-field: fix baseline and handle custom controls better (#18161) (0c26354) |
bug fix | mdc-form-field: fix incorrect floating label shift in RTL (440ca6c) |
bug fix | mdc-form-field: fix server side rendering failures (#18191) (1ef30cb) |
bug fix | mdc-form-field: missing animation styles due to rebase conflict (99e83a6) |
bug fix | mdc-form-field: notched-outline should include prefixes and suffixes (#18381) (fc91061), closes material-components-web#5326 |
bug fix | mdc-form-field: prevent label from jumping in outline notch (60d6bd6) |
bug fix | mdc-form-field: properly render notched-outline on the server (b5f8248) |
bug fix | mdc-form-field: refresh view if prefix or suffix changes (f36f1f3) |
bug fix | mdc-form-field: scrollbar always visible on textarea in IE (#18438) (2497e50) |
bug fix | mdc-form-field: setup typography styles for form-fields (#18480) (aea79f0) |
bug fix | mdc-form-filed: missing focus and hover effect for fill (5852fcb), closes /github.com/material-components/material-components-web/commit/c541ebe157a66e8d2e881fad16cc4dbe30b2c16b#diff-fa38508bb43a471ee25b746d85527fb5 |
bug fix | mdc-input: input should not inherit parent classnames (#18180) (500d235) |
bug fix | mdc-progress-bar: changed after checked error on animation end event with noop animations (#18508) (289eecd), closes #18441 |
bug fix | mdc-tabs: not disabling all animations with noop animations module (#18446) (9c13772) |
feature | Add focus indicators to all MDC except mdc-chips. (#18175) (02db4ba) |
feature | chip: add focus indicators (#18261) (7581191) |
feature | mdc-form-field: add support for accent and warn theming (#18399) (b24b9e3) |
feature | mdc-form-field: add test harness (#18165) (944837f) |
feature | mdc-form-field: support for disabling animations (#18397) (ed77ec9) |
feature | mdc-form-field: support theming through feature targeting (#18265) (27111eb) |
feature | mdc-input: add test harness (#18224) (c07ec04) |
feature | mdc-radio: add functionality and styling (#18272) (59fce28) |
bug fix | drag-drop: error when dragging items inside transplanted views with OnPush change detection (#18356) (bd68a4f), closes #18341 |
bug fix | list: selection list element should not be focusable (#18445) (b61582c) |
bug fix | ng-update: avoid error if project has folder ending with style extension (#18454) (1cb7099), closes #18434 |
bug fix | ng-update: better detection for workspace project in v9 hammer migration (#18525) (7a2d372), closes #18504 |
bug fix | slider: inject document token in constructor (#18275) (d8b726d) |
Testing components has historically relied on using implementation details such as CSS selectors to find components and to trigger events. This meant that whenever a component library changed its implementation, all of the tests relying on those components would need to be updated.
In version 9, we are introducing component harnesses, which offer an alternative way to test components. By abstracting away the implementation details, you can make sure your unit tests are correctly scoped and less brittle.
Most of Angular Material's components can now be tested via harnesses, and we are making harnesses available to any component author as part of the Component Dev Kit (CDK).
Here's an example test before harnesses:
it('should switch to bug report template', async () => {
expect(fixture.debugElement.query('bug-report-form')).toBeNull();
const selectTrigger = fixture.debugElement.query(By.css('.mat-select-trigger'));
selectTrigger.triggerEventHandler('click', {});
fixture.detectChanges();
await fixture.whenStable();
const options = document.querySelectorAll('.mat-select-panel mat-option');
options[1].click(); // Click the second option, "Bug".
fixture.detectChanges();
await fixture.whenStable();
expect(fixture.debugElement.query('bug-report-form')).not.toBeNull();
});
And the same test with harnesses:
it('should switch to bug report template', async () => {
expect(fixture.debugElement.query('bug-report-form')).toBeNull();
const select = await loader.getHarness(MatSelect);
await select.clickOptions({text: 'Bug'});
expect(fixture.debugElement.query('bug-report-form')).not.toBeNull();
});
Learn more about Angular Material's component harnesses or building your own with the CDK.
Earlier this year, we changed the name of this repo to "angular/components" to emphasize our goal to provide more than Material Design components. The 9.0.0 release includes one of the next new features in that regard- a new package that wraps the Google Maps JavaScript API in an easy-to-use Angular component.
You can see the documentation on GitHub for the time being.
Big thanks to @mbehrlich for contributing this!
This new capability for @angular/cdk
provides some convenient helpers for dealign with
the clipboard. See the documentation for more information.
Big thanks to @xkxx for contributing this!
We no longer have a direct depedency on tslib
. Instead it is now listed a peerDependency
.
This matches Angular framework.
Users not using the Angular CLI will need to manually install tslib
via;
yarn add tslib
# or
npm install tslib --save
Deprecations:
- checkbox: MAT_CHECKBOX_CLICK_ACTION is deprecated, use MAT_CHECKBOX_DEFAULT_OPTIONS
bug fix | autocomplete: not picking up indirect descendant option g… (#17510) (f0df308) |
bug fix | drag-drop: coerce drop list autoScrollDisabled input (#17480) (e2de5e6), closes #17475 |
bug fix | grid-list: not picking up indirect descendant lines (#17530) (044a360) |
bug fix | list: Do not rely on input binding order (#17501) (4301fb0), closes #17500 |
bug fix | list: selection list option not picking up indirect desce… (#17514) (ee863b2) |
bug fix | stepper: not picking up indirect descendant elements (#17529) (5f0f2dc) |
bug fix | tree: not picking up indirect descendant node definitions (#17522) (7f1c2ca) |
feature | checkbox: add options defaults config (#17473) (3fdab10) |
bug fix | button-toggle: indirect descendant buttons not picked up… (#17451) (67b009f) |
bug fix | chips: don't set aria-required when element doesn't have… (#17425) (939c18d), closes #17397 |
bug fix | dialog: don't move focus if it was moved during close ani… (#17300) (3476f51), closes #17296 |
bug fix | drag-drop: global resize subscription not cleared (#17257) (f10b222), closes #17255 |
bug fix | drag-drop: not picking up indirect descendant items (#17226) (ef92091), closes #17047 |
bug fix | drag-drop: only call enterPredicate when pointer is inside drop list (#17310) (9fe32c0), closes #17266 |
bug fix | drag-drop: unable to drop into connected list inside shad… (#17424) (593a06c), closes #16899 #17422 |
bug fix | form-field: annotate base class with Directive for Ivy (#17457) (4663d8f), closes #17022 |
bug fix | form-field: ensure that descendants are picked up in Ivy (#17439) (1d40ec9) |
bug fix | form-field: outline gap no calculated in shadow dom (#17303) (1b94295), closes #17262 |
bug fix | menu: trigger should aria-controls panel (#17365) (405f5d0) |
bug fix | schematics: secondary entry point migration not working against v9 (#17452) (5e10833), closes #17433 |
bug fix | select: not picking up indirect descendant option groups (#17458) (d773cce) |
bug fix | sidenav: container not picking up indirect descendant sid… (#17453) (9933479) |
bug fix | snack-bar: handle large numbers passed in as duration (#17239) (86a8fee), closes #17234 |
bug fix | tabs: no longer use OnPush (#16529) (35b3226), closes #15440 |
bug fix | tabs: not picking up indirect descendant tabs in ivy (#17346) (ed0067e), closes #17336 |
bug fix | toolbar: not picking up indirect descendant rows (#17469) (646d47f) |
feature | autocomplete/testing: polish harness API (#17350) (7a748fc) |
feature | drag-drop: allow drag start delay to be configured based… (#17301) (43c7a7d), closes #17260 |
feature | drag-drop: allow for custom class to be set on preview (#17304) (34e848f), closes #17089 |
feature | menu/testing: finish implementing harness (#17379) (aa2cbf7) |
feature | ng-update: add migration for hammerjs in version 9 (#17369) (f065977) |
feature | radio/testing: polish harness API (#17414) (36d34a6) |
feature | sidenav/testing: polish harness API (#17415) (9e79940) |
feature | slide-toggle/testing: polish harness API (#17416) (db999ff) |
feature | tabs: add input to opt out of pagination (#17409) (bb9a3a8), closes #17317 |
feature | tabs/testing: polish harness API (#17417) (05600a2) |
feature | change tslib from direct dependency to peerDependency (#17393) (41166b7) |
feature | expand input types with coercion to work with ngtsc input type checking (#17528) (8da64f4) |
performance | tooltip: avoid triggering change detection for all keydown events (#17331) (493c32d) |
bug fix | chips: handle ripple color in theme using CSS variables (#17649) (1923f7f) |
bug fix | clipboard: namespace copied output name (#17598) (1a2befa) |
bug fix | overlay: maxWidth and maxHeight not applied when using exact dimensions (#17586) (969d5c2), closes #17582 |
bug fix | popover-edit: incorrect spacing for form field inside popover (#17600) (790b53e) |
bug fix | select: select active item when tabbing away (#17592) (93fdb00), closes #17442 |
bug fix | sidenav: not destroying custom QueryList (#17619) (39c0074) |
bug fix | slider: handle touchcancel event (#17520) (320f387) |
bug fix | slider: some potentially broken styles when using css variables (#17580) (584ad3f) |
bug fix | slider: track fill not rendering on ios safari when slider starts at 0 (#17583) (fa18ce1) |
bug fix | stepper: not rendering correctly in some cases when step is inside ngIf (#17555) (cd7d8c8) |
bug fix | tabs: custom QueryList not being cleaned up (#17548) (b7b7bd0) |
bug fix | tree: fix typo in CSS class name (#17538) (52918ea) |
feature | clipboard: add the ability to specify number of attempts in clipboard directive (#17547) (a67cef6) |
feature | portal: add new portal that projects DOM nodes (#16101) (d3d8859), closes #14430 |
feature | schematics: add prompt to add global typography class (#17602) (c08050d) |
bug fix | checkbox: unknown property warning with Ivy during server-side rendering (#17485) (227c490) |
bug fix | ng-update: migrations not running for release candidate versions (#17704) (bfa88fd) |
bug fix | ng-update: do not copy gesture config if only standard HammerJS events are used (#17753) (b53e092) |
bug fix | ng-update: hammer v9 migration should not unnecessarily set up gestures (#17713) (4794c60) |
bug fix | ng-update: imports to MatProgressSpinnerModule not migrated (#17717) (3acd6c1), closes #17715 |
bug fix | bottom-sheet: don't move focus if it was moved during close animation (#17725) (b622d11), closes #17300 |
bug fix | card: add missing card content selectors (#17488) (9b19e6a), closes #17487 |
bug fix | dialog: use view container from config when attaching content (#17819) (656c681), closes #17731 |
bug fix | drag-drop: disabled state not synced on data binding changes (#17330) (ec77513), closes #17325 |
bug fix | drag-drop: position reset if viewport is resized while boundary is invisible (#17777) (f800900), closes #17750 |
bug fix | expansion: accordion picking up headers from descendant accordion during keyboard navigation (#17481) (6c4122c) |
bug fix | form-field: incorrect assumptions about page direction (#17395) (a6f235d), closes #15415 #17390 #15415 #17390 |
bug fix | input: avoid multiple autosize input listeners with ivy (#17817) (fe151e6) |
bug fix | list: don't handle selection keys while using typeahead in selection list (#17826) (ad42a1b), closes #17785 |
bug fix | menu: cap maximum elevation for nested menus (#17687) (987c85d) |
bug fix | menu: internal focus state out of sync if item is focused programmatically (#17762) (af6c13f), closes #17761 |
bug fix | menu: keyboard controls not working if all items are disabled inside lazy content (#17407) (017728a), closes #16572 #17400 |
bug fix | portal: better handling when dom portal content can't be restored (#17851) (2e6045c) |
bug fix | portal: content not rendered inside outlet when view container is provided (#17731) (6d08240), closes #17650 |
bug fix | select: don't handle open key presses while the user is typing (#17785) (2f17450), closes #17774 |
bug fix | slider: stop dragging if page loses focus (#17849) (3b3c2ca) |
bug fix | tooltip: theming can affect the tooltip color (#17643) (924494d) |
feature | badge: add test harness (#17661) (f96e820) |
feature | bottom-sheet: add test harness (#17618) (a7c3ab0) |
feature | expansion: add test harness (#17691) (acfa174) |
feature | list: add test harnesses for list components (#17859) (49b6dbd) |
feature | sort: add test harness (#17802) (81294f7) |
bug fix | menu: forward aria attribute to menu panel (#17957) (3299d8c), closes #17952 |
bug fix | chips: fix ripple element opacity when using CSS variable theming (#17576) (e7508ad) |
bug fix | form-field: deprecate legacy and standard appearances (#17961) (527f1b5) |
bug fix | chips: clear user agent styles when set on button (#17871) (26e73ac) |
bug fix | sort: no focus indication for active header (#17735) (191357a), closes #17716 |
bug fix | text-field: correctly check _initialHeight (#17900) (a3e953e) |
feature | button-toggle: add test harness (#17996) (9a6be0d) |
feature | core: add test harnesses for mat-option and mat-optgroup (#17940) (0ec499d) |
feature | paginator: add test harness (#17969) (5a6cdaf) |
feature | select,input,form-field: move test harnesses out of experimental (#17874) (1c1af58) |
bug fix | chips: avoid accidental form submits when pressing remove button (#18095) (3b4e496) |
bug fix | datepicker: not respecting form control updateOn: blur for invalid values (#18063) (61029c8), closes #16461 |
bug fix | datepicker: re-render calendar when locale changes (#18094) (be17c25), closes #18087 |
bug fix | form-field: delete top border from focus animation (#17885) (09dc459), closes #17884 |
bug fix | form-field: error when focusing outline form field angular elements on IE/Edge (#18062) (f573072), closes #16095 |
bug fix | mdc-chips: Set aria-required on input instead of grid (#18049) (22d7f77) |
bug fix | scrolling: update virtual scroll viewport size on resize (#18058) (c36466c), closes #16802 |
bug fix | sidenav: move focus into sidenav in side mode if autoFocus enabled explicitly (#17995) (c9856ee), closes #17967 |
bug fix | slide-toggle: fix and simplify high contrast styles (#18104) (2fd862d) |
feature | grid-list: add test harness (#18001) (5e9ca28) |
feature | table: add test harness (#17799) (a30094b) |
bug fix | form-field: undeprecated legacy and standard appearances (#18144) (9ea5694) |
bug fix | reduce amount of generated high contrast styles (#18332) (b119472) |
bug fix | checkbox: outline not visible when checked in high contrast mode (#18048) (75a7681) |
bug fix | chips: set aria-required on chip input (#18098) (05d072a), closes #18049 |
bug fix | datepicker: able to focus disabled datepicker toggle while disabled via click (#18231) (9086a4b) |
bug fix | drag-drop: error if next sibling is removed after drag sequence has started (#18230) (7a167a2), closes #18205 |
bug fix | drag-drop: not picking up initial disabled state of handle (#16643) (3b28d33), closes #16642 |
bug fix | drag-drop: prevent dragging selected text with the mouse (#18103) (fbbac37) |
bug fix | expansion: unable to toggle disabled panel via methods (#18181) (796db4d), closes #18171 |
bug fix | input: input harness not matching matNativeControl (#18221) (f0d3a6b) |
bug fix | overlay: don't reset global overlay alignment when width is 100% and there's a maxWidth (#17842) (37d0191), closes #17841 |
bug fix | overlay: only clear duplicate containers from different platform (#17006) (67d27fd), closes #16851 |
bug fix | schematics: global typography class always being added (#18315) (2b83a0a), closes #17602 #16776 |
bug fix | tabs: better high contrast indication on supported browsers (#18160) (01b31de) |
bug fix | tabs: don't start auto-scroll when right clicking on buttons (#18033) (ca9b204) |
bug fix | form-field: fix underline jank in fill variant (#18406) (351d0c4) |
bug fix | ng-add: do not overwrite version range specified in ng add (#18365) (06b7378) |
bug fix | ng-add: support "navigation" in additon to "nav" for navigation schematic (#18364) (06b7378) |
bug fix | schematics: do not depend on external dependency for colors (#17788) (e02bb82) |
bug fix | scrolling: expand type for "cdkVirtualForOf" input to allow null (#17421) (3e5e9db), closes #17411 |
feature | testing: add method to wait for async tasks outside the angular zone (#17408) (c50aa21) |
feature | clipboard: new clipboard module (#17272) (473d4c6) |
feature | change tslib from direct dependency to peerDependency (#17393) (41166b7) |
feature | a11y: add high-contrast mode detection (#17378) (6b7f091) |
feature | testing: support querying for multiple TestHarness / ComponentHarness at once in locatorFor (#17658) (15a5171) |
bug fix | overlay: add missing transform origin directive input (#17489) (c69a727) |
bug fix | virtual-scroll: run changeDetection after computing transform (#17727) (d908c9f) |
feature | overlay: accept PositionStrategy in cdkConnectedOverlay (#16374) (73d1ceb) |
bug fix | a11y: make cdk-high-contrast work w/ emulated view encapsulation (#18152) (aff21e8) |
bug fix | avoid clobbering api loaded callback (#17850) (7defaa6) |
bug fix | clean up internal observables (#17835) (ab0f30d) |
performance | triggering change detection for unused events (#17665) (61b423a) |
bug fix | avoid setInterval change detection when player is created (#17894) (27fae29) |
bug fix | google-maps and youtube-player package missing tslib dependency (#17939) (2a2d837) |
bug fix | memory leak if player is destroyed before it is done initializing (#18046) (6b3a271) |
bug fix | not picking up static startSeconds and endSeconds (#18214) (8ea430f), closes #18212 |
bug fix | handle API interactions before API has loaded (#18368) (98fac6c), closes #18279 |
bug fix | avoid event listener leaks if inputs change (#17664) (b2ea4c8) |
bug fix | error during server-side rendering (#17744) (0b0e98c) |
bug fix | handle trying to access the map before it has been initialized (#17805) (d990243) |
bug fix | unable to subscribe to events after initialization (#17845) (22fecb3) |
feature | Add MapPolyline component (#17512) (0c10828) |
bug fix | google-maps and youtube-player package missing tslib dependency (#17939) (2a2d837) |
bug fix | incorrect event name (#18027) (f2cbc06), closes #17845 #18026 |
bug fix | sub-components throwing during server-side rendering (#18059) (a7f7e9b) |
bug fix | mdc-button: elevate z-index of content (#17349) (230403e) |
bug fix | mdc-slide-toggle: missing focus indication in high contrast mode (#17471) (3de0b08) |
bug fix | mdc-slider: remove theme import from all-theme (#17348) (40665e9) |
bug fix | mdc-tabs: add .mdc-tab__ripple container (#17498) (409e656) |
bug fix | mdc-progress-bar: server-side rendering error (#17359) (b30aedd) |
feature | mdc-tabs: add option to fit ink bar to content (#17507) (77d51ca) |
bug fix | mdc-button: rename state class (#17575) (9f9b017) |
bug fix | mdc-chips: chip set not picking up indirect descendant chips (#17568) (e7aeee4) |
feature | mdc-slider: add test harness for mdc-slider (#16978) (7cd314c) |
feature | mdc-checkbox: add default options (#17578) (4cc69d2) |
feature | mdc-tabs: add default fitInkBarToContent option (#17556) (2f84389) |
feature | mdc-snackbar: add skeleton (#17161) (6bda718) |
bug fix | mdc-chips: add checkmark container (#17694) (25c79cd) |
bug fix | mdc-chips: use ripple target for state interactions (#17681) (7aa522a) |
bug fix | mdc-tabs: markForCheck on ink bar content input setter (#17561) (71165f1) |
bug fix | mdc-menu: menu item should not inherit parent classname (#17953) (af7aa86) |
bug fix | mdc-progress-bar: update to latest canary to include adapter changes (#17938) (0753f9e) |
feature | mdc-list: Add scaffolding for MDC--based list (#17906) (45d34ad) |
feature | mdc-snackbar: Add demo. (#17895) (3ca7c5a) |
feature | mdc-table: add MDC styles/classes (#18000) (bb68c7b) |
feature | mdc-table: add skeleton (#17992) (4169c6f) |
feature | mdc-table: add tests (#18003) (8796d7c) |
bug fix | mdc-switch: updated to latest DOM structure guidance (#17905) (5da2ae1) |
bug fix | mdc-chips: avoid potential server-side rendering errors (#18044) (17a7bcb) |
bug fix | mdc-chips: checkmark not visible in high contrast black-on-white mode (#18061) (99af8e9) |
bug fix | mdc-chips: error on IE and Edge due to unsupported classList (#18074) (5fccd24) |
bug fix | mdc-chips: prevent default space and enter (#18084) (7b7e633) |
bug fix | mdc-chips: remove aria-hidden from focusable element (#18054) (55ee988) |
bug fix | mdc-chips: removed chip still focusable (#18083) (403377d) |
bug fix | mdc-slide-toggle: fix extra border in latest canary version (#18035) (b989701) |
bug fix | mdc-slide-toggle: initial checked and disabled state not reflected visually (#17991) (e746895) |
bug fix | mdc-slide-toggle: update adapter to match new interface (#18124) (636ae5c) |
bug fix | mdc-tabs: incorrect tab text color in dark theme (#18068) (86a4ba7) |
feature | mdc-form-field initial prototype of mdc-form-field (#17903) (697c3a0) |
bug fix | errors with latest MDC canary version (#18173) (5d13491) |
bug fix | mdc-theming and mdc-typography files not published (#18251) (77a25eb) |
bug fix | dialog: don't move focus if it was moved during close animation (#17320) (442ec30), closes #17300 |
bug fix | drag-drop: dragging styles not reset once dragging is… (#17150) (4d489f0), closes #17139 |
bug fix | a11y: focus monitor not identifying touch focus inside shadow root (#17167) (bacb8df) |
bug fix | datepicker: year not formatted in multi-year view button (#17202) (13363e6), closes #17187 |
bug fix | overlay: error when trying to add/remove empty string cla… (#14919) (9894ab2) |
bug fix | select: highlighted option not updated if value is reset while closed (#17213) (d996abd), closes #17212 |
bug fix | stepper: unable to skip step if completed value is overwritten (#15403) (9f497a0), closes #15310 |
bug fix | tabs: avoid Ivy template type checking errors in tab link (#17282) (cd11ae5), closes #17228 |
bug fix | tabs: avoid template type checking errors with Ivy (#17228) (1bfa1ea), closes #17121 |
bug fix | mdc-checkbox: model value not updated through toggle method (#17229) (73b086d), closes #11902 |
bug fix | mdc-button: use state container for button interaction (#17284) (070d0a5) |
bug fix | mdc-button: add ::after to reflect active styles (#17283) (4380179) |
bug fix | mdc-slider: incorrectly rendering extra background (#17207) (561c90c) |
Highlights:
- New infrastructure for creating component test harnesses is available in
@angular/cdk/testing
. Documentation for this infrastructure and for specific Angular Material harnesses is in-progress.
bug fix | drag-drop: dragging styles not reset once dragging is dragging styles not reset once dragging is completed (#17150) (e62e6bd), closes #17139 |
feature | testing: move harness code from cdk-experimental (#17026) (bacdc85) |
Breaking changes:
- Components can no longer be imported through "@angular/material".
Use the individual secondary entry-points, such as
@angular/material/button
.
bug fix | a11y: focus monitor not identifying touch focus inside shadow root (#17167) (3673f3d) |
bug fix | datepicker: year not formatted in multi-year view button (#17202) (ae28fce), closes #17187 |
bug fix | overlay: error when trying to add/remove empty string class (#14919) (5509c23) |
bug fix | schematics: support stricter TypeScript compiler flags (#17159) (f32fb68), closes #17135 |
bug fix | select: highlighted option not updated if value is reset while closed (#17213) (d453d06), closes #17212 |
bug fix | stepper: unable to skip step if completed value is overwritten (#15403) (bebb9ff), closes #15310 |
bug fix | tabs: avoid Ivy template type checking errors in tab link (#17282) (ef5d9cb), closes #17228 |
bug fix | tabs: avoid template type checking errors with Ivy (#17228) (8c98013), closes #17022 #17121 |
feature | autocomplete: move harness out of experimental (#17080) (dec116b) |
feature | button: move harness out of experimental (#17098) (3dc33f1) |
feature | checkbox: move checkbox harness out of experimental (#17067) (09ded04) |
feature | core: allow more granular control over sanity checks (#16973) (77994e9), closes #16617 |
feature | dialog: move test harness out of experimental (#17104) (8859dfc) |
feature | google-maps: Add map-info-window component (#17027) (30de283) |
feature | menu: move test harness out of experimental (#17113) (170299b) |
feature | progress: move harnesses out of experimental (#17115) (26df035) |
feature | radio: move test harness out of experimental (#17117) (ef439b4) |
feature | sidenav: move harnesses out of experimental (#17122) (aa2e0ab) |
feature | slide-toggle: move harness out of experimental (#17132) (15ba871) |
feature | slide-toggle: remove Hammer.js dependency (#17102) (534b9c2) |
feature | slider: move harness out of experimental (#17136) (8229353) |
feature | slider: remove Hammer.js dependency (#16860) (00a3e79) |
feature | snack-bar: add test harness for snack-bar (#17127) (6a732d3) |
feature | tabs: move harnesses out of experimental (#17137) (a2ccacd) |
feature | tooltip: remove Hammer.js dependency (#17003) (4126029), closes #16850 |
refactor | remove re-exports from primary entry-point (0c1d369) |
bug fix | mdc-checkbox: model value not updated through toggle method (#17229) (f178f20), closes #11902 |
bug fix | mdc-button: use state container for button interaction (#17284) (ae682d8) |
bug fix | mdc-button: add ::after to reflect active styles (#17283) (4dbf9f6) |
bug fix | mdc-radio: rename mdc-radio APIs to match existing radio APIs (#17178) (8e141ef) |
bug fix | mdc-slider: incorrectly rendering extra background (#17207) (7bee53f) |
feature | mdc-radio: Set up the MDC foundation (#17180) (67f3c0b) |
feature | mdc-radio: use MDC DOM structure and styles (#17179) (2112fac) |
bug fix | drag-drop: unable to drop into connected sibling after scrolling into view via the parent (#17162) (357d1c3), closes #17144 |
bug fix | autocomplete: top option group not scrolled into view when going up (#16343) (c0034d3) |
bug fix | button: focus method does not respect specified origin (#17183) (7355389), closes #17174 |
bug fix | datepicker: add scope to calendar headers (#17163) (cf244ff), closes #17038 |
bug fix | form-field: FormField with outline doesn't work well with dir="r… (#15415) (8158754), closes #14944 |
bug fix | list: selection list checkbox theme overwritten by parent theme (#16939) (57b2c3f), closes #16891 |
bug fix | clipboard: avoid changing layout with temporary textarea (#17227) (d4d958e) |
bug fix | mdc-slider: not usable in high contrast mode (#17164) (73a233d) |
bug fix | a11y: remove aria-describedby attribute when no descriptions are left (#17074) (0e5c82c), closes #17070 |
bug fix | icon: use ErrorHandler to log MatIcon errors (#16999) (8f54f5c), closes #16967 |
bug fix | select: fix recursive call to SelectionModel.select() (#17071) (ed96878) |
bug fix | slide-toggle: clear static aria attributes from host nodes (#17085) (8d73869), closes #16938 |
bug fix | errors during server-side rendering (#17091) (9b547b9) |
feature | expose root loader instance in testbed harness environment (#16903) (69f7693), closes #16697 #16709 |
bug fix | button: ripple color should match state color (#17066) (7e98a7e) |
bug fix | button: ripples were using mat-button styles (#17069) (6d48c4f) |
bug fix | mdc-tabs: error during server-side rendering (#17169) (57fa880) |
feature | drawer: add harness for mat-drawer (#17010) (7ad30eb), closes #16695 |
feature | form-field: add test harness (#17138) (eebf589) |
bug fix | testing: throw better error when trying to use fixture after it has been destroyed (#17058) (5e2296f) |
Earlier this year, we changed the name of this repo to "angular/components" to emphasize our goal to provide more than only Material Design components. The 8.2.0 release includes one of the next new features in that regard- a new package that wraps the YouTube Player API for iframe Embeds in an easy-to-use Angular component.
You can see the documentation on GitHub for the time being.
Big thanks to @YourDeveloperFriend for contributing this!
- autocomplete: unable to open panel via click inside shadow DOM (#15616) (6e1fe2c), closes #15606
- button: fix typo in comment (#17001) (5fb0d57)
- card: stroked buttons missing margin (#16576) (399ed29), closes #16546
- chips: allow null to be set as chip value (#16950) (57998a2), closes #16844
- chips: preselected chip not highlighted on init inside OnPush component (#16868) (aad7ff7), closes #16841
- drag-drop: connected drop zones not working inside shadow root (#16899) (6009211), closes #16898
- drag-drop: drop list ref sorting disabled by default (#16963) (306e07c), closes #16961
- drag-drop: error if custom preview or placeholder node is not an element (#16409) (8a4bed5)
- drag-drop: handle list and viewport auto scroll regions overlapping (#16675) (792e886), closes #16647
- drag-drop: handle the element going out of the boundary after a viewport resize (#16874) (44b8a47), closes #16536
- drag-drop: incorrectly constraining element position if size changes between drag sequences (#16876) (cad0102), closes #15749
- drag-drop: preview position relative to cursor thrown off if item has margin (#16180) (46cf45f), closes #16171
- drag-drop: unable to drop into connected sibling that was scrolled into view (#16681) (dd59044)
- expansion: show header focus state when expanded (#16486) (7bf5e4e)
- icon: not copying attributes from symbol nodes (#16896) (425eb7e), closes #16892
- icon: use ErrorHandler to log MatIcon errors (#16967) (dccddd9)
- icon: use ErrorLogger to log http errors (#16855) (75686e8)
- menu: keyboard controls not working if all items are disabled (#16572) (d3f63a3), closes #16565
- menu: restore focus immediately when menu is closed (#16960) (bfa1853), closes #16954
- paginator: MatPaginatorIntl will now cause MatPaginator to display an 'EN DASH' (U+2013) rather than a 'HYPHEN-MINUS' (U+002D) by default
- progress-spinner: animation node inserted into wrong style root when using ngIf with ShadowDom encapsulation (#16982) (dadb3e1)
- radio: clear aria attributes from host node (#16938) (237e030), closes #16913
- slider: displayWith function never called with "null" (#16707) (17c8983)
- snack-bar: don't stretch to fullscreen in landscape orientation (#16940) (8d12902), closes #16911
- snack-bar: too tall under some circumstances in Safari (#16679) (e9baa09), closes #16605
- tabs: tab nav bar not highlighting active tab if rendered after init (#16624) (93e9415), closes #16607
- tooltip: avoid adding same aria description as trigger's aria-label (#16870) (1006cc2), closes #16719
- dialog: allow for custom ComponentFactoryResolver to be passed in (#16437) (565bd7d), closes #16431
- dialog: expose current dialog state (#16691) (3f0268f), closes #16636
- dialog: don't override type attribute if set on mat-dialog-close (#16927) (3ee3ecb), closes #16909 #16909
- form-field: allow hideRequiredMarker default value to be configured through the
MAT_FORM_FIELD_DEFAULT_OPTIONS
(#16244) (94c3fed), closes #16243 - icon: allow viewBox to be configured when registering icons (#16320) (3638886), closes #2981 #16293
- moment-date-adapter: implement strict mode (#16462) (dd42956)
- overlay: allow width/height when using point as flexible origin (#16739) (b98a3bd), closes #16160
- select: allow for typeahead debounce interval to be customized (#16579) (f23a56a), closes #16472
- sort: remove hammer dependency (#16951) (7594ca1)
- button: fix opacity is not added to ripple when using CSS variables to define custom theme (c62330b)
- datepicker: don't set aria-haspopup if no datepicker is set (#15554) (f590dc6)
- dialog: not applying margins to new button variants (#11961) (0ad0d7a)
- expansion: not adding margin for all button types (#16806) (1d545a6)
- menu: inconsistent behavior when clicking on a disabled item (#16696) (e441a75), closes #16694
- menu: mark lazy menu content as dirty before attach (#16506) (1b54011)
- overlay: _updateElementSize should not fail if pane is disposed. (#16600) (febcaff)
- radio: show ripple on programmatic focus (#16512) (a243ef9)
- radio-button: underlying input not respecting value binding (e1760b6)
- schematics: module imports not generated for schematics (#16787) (2cfcd36)
- schematics: navigation schematic not respecting breakpoints on initial render (#16788) (621ddf7)
- sidenav: avoid CSS class name conflict (#16798) (636cb9f)
- sidenav: focus trap enabled state not updated if mode changes while open (#16602) (666e9b3), closes #16601
- slider: inconsistent cursor behavior if user's pointer moves around while dragging (d62b19e), closes #14613
- cdk/virtual-scroll: fix subpixel rounding errors on hdpi… (#16269) (5bbf9ba)
- cdk-experimental/popover-edit: prevent default escape action (#16747) (073b98c), closes #16202
- bottom-sheet: not moving focus to container if autoFocus is disabled and focus was moved while animating (#16418) (0720a41), closes #16297 #16221
- button-toggle: error when check value is set via static attribute in Ivy (#16587) (3c92c08), closes #16471
- overlay: clear duplicate overlay container coming in from the server (#11940) (ba508a6), closes #11817
- slide-toggle: invalid required validator in template-driven forms (#16547) (dc0c271)
- tabs: only use aria-current on active links (#16562) (b0937dc), closes #16557
- tree: unable to set zero as the padding of a tree node (#16345) (bf66d81), closes #16338
- typography: use
calc
to allow css variables (#16475) (6013036)
- form-field: superfluous whitespace when compiled with bazel (#13911) (fdad49d)
- ng-update: material update fails due to circular dependency (#16538) (5d731d3)
- The
MatNavTabBar
now support tab pagination, a long-requested feature. CdkDrag
now supports scrolling the viewport when an item is dragged near the edge.
- card: disable all animations when using NoopAnimationsModule (#11538) (11a4ff0), closes #10590
- drag-drop: fix drag start delay behavior to allow scrolling (#16228) (738f10c), closes #16224
- drag-drop: return up-to-date position if getFreeDragPosition is called while dragging (#16464) (1540391)
- expansion: incorrect margin for "before" indicator when expanded (#16420) (98a231d)
- menu: keyboard controls not respecting DOM order when items are added at a later point (#11720) (49e8c59), closes #11652
- overlay: incorrectly calculating position when page is scrolled horizontally and overlay is anchored to the right (#16235) (f61730a), closes #16009
- overlay: OverlayKeyboardDispatcher (used in dialog and overlay and available in the CDK) now listens on bubbling/propagation phase instead of capture phase. This means that overlay keydown handlers are now called after any applicable handlers inside of an overlay, and it respects any stopPropagation() calls from inside the overlay.
- a11y: allow for element to be used as message in AriaDescriber (#16118) (8c4f25f), closes #16099
- common: Add dev-mode sanity check for mismatched versions of cdk and material (#15395) (ffad004)
- drag-drop: add support for automatic scrolling (#16382) (207dba6), closes #13588
- expansion: allow expansion toggle indicator positioning (#16257) (c3eac17)
- radio: add provider for default color input (#15811) (5c51301)
- schematics: add font-display query (#16363) (43a01e9)
- style: allow palettes to specify a separate hue for colored text (#15149) (15038e3), closes #15148
- tabs: support pagination in nav bar (#16055) (aa22368), closes #2177
- autocomplete: alt + up arrow to close panel not working (#15364) (219ad33)
- bottom-sheet: DOM nodes not cleaned up if view container is destroyed mid-animation (#16349) (f8d32fe), closes #16309
- breakpoint-observer: fix the breakpoint observer emit count and accuracy (#15964) (43b2df6), closes #10925
- checkbox: hover indication showing when disabled (#16159) (bd52ce0), closes #16157
- chips: disable all animations when using NoopAnimationsModule (#11546) (7fc7da1), closes #10590
- datepicker: align multi-year-view based on minDate and maxDate (#16018) (400a95b), closes #10646
- dialog: DOM nodes not cleaned up if view container is destroyed mid-animation (#16309) (a9a266a), closes #16284
- dialog: don't move focus to dialog container if focus is already inside the dialog (#16297) (62447be)
- dialog: not moving focus to container if autoFocus is disabled and focus was moved from a different component (#16221) (2669b90), closes #16215
- expansion-panel: header animating on init when using non-default height (#16122) (f58840c), closes #13088 #16067
- list: matching item not preselected if added after init (#16080) (90b1d5d), closes #16062
- ng-update: do not rely on node-glob for finding rule directories (#16381) (6732be5), closes #16208
- overlay: events not being unbound from destroyed backdrop (#16268) (c0efe17)
- popover-edit: remove fallthroughs in switch statement (#16281) (14246de)
- tabs: disable all animations when using NoopAnimationsModule (#11395) (91326e9), closes #10590
- drag-drop: error if drag sequence is started while another one is finishing (#16081) (23df7aa)
- drag-n-drop: ignore consecutive touchmove events on drag item on multitouch (#15923) (208d43f)
- prevent default on escape key presses (#16202) (0871d88)
- ng-update: fix table generator schematic (#16204) (7386ea1)
- ng-update: do not report form-field breaking change from v6 (#16161) (7b78cb7), closes #16143
- ng-update: parse cli workspace config as json5 (#16218) (0fe2711)
- overlay: stop using capture phase for overlay keyboard handling (#16019) (67b3e5f), closes #9928
- popover-edit: unable to change type of popover buttons (#16058) (ba9fd14)
- progress-spinner: non-default diameter indeterminate animation not working inside Shadow DOM (#16177) (e391869)
- scrolling: virtual scroll throw off if directive injects ViewContainerRef (#16137) (af56441), closes #16130
- bottom-sheet: allow for scroll strategy to be configured (#15535) (4d0d080), closes #15533
- popover-edit (experimental): accessible row hover content (#15917) (c979484)
- popover-edit (experimental): Helper class to reduce form state preservation boilerplate (#15939) (3bc6020)
- ng-update: do not always use double quotes for generated imports (#16131) (a3856c7), closes /github.com/microsoft/TypeScript/blob/6a559e37ee0d660fcc94f086a34370e79e94b17a/src/compiler/emitter.ts#L3796-L3797 #14532
Importing directly from the root @angular/material
entry-point is deprecated. You should instead
import from specific entry-points, e.g. @angular/material/button
. This aligns with @angular/cdk
,
makes clear where symbols originate, and helps safeguard against including unused code. The
deprecated style will be removed in Angular v9.
Angular CLI users can use ng update @angular/material
to automatically migrate imports to the new
style.
- tabs:
_ngZone
and_platform
parameters inMatTabHeader
constructor are now required. - tabs:
changeDetectorRef
parameter inMatTabBody
constructor is now required. - expansion: The
_document
and_animationMode
parameters are now required. - list:
_elementRef
parameter inMatList
constructor is now required. - list:
_changeDetectorRef
parameter inMatListItem
constructor is now required. Also the order of constructor parameters has changed. - progress-spinner: The
animationMode
mode parameter is now required in theMatProgressSpinner
andMatSpinner
constructors. - progress-spinner: The
_elementRef
parameter has changed fromElementRef<any>
toElementRef<HTMLElement>
in theMatProgressSpinner
andMatSpinner
constructors. - button:
_platform
parameter has been removed from theMatButton
constructor and the_animationMode
is now required. - button:
platform
parameter has been removed from theMatAnchor
constructor and theanimationMode
is now required. - button: The
disabled
hosting binding forMatButton
has changed from a property to an attribute, which affects any tests usingDebugElement.attributes
. - badge:
_document
parameter has been removed and the_renderer
parameter is now required in theMatBadge
constructor.
- badge: throw proper error when set on a non-element node (bdc6811)
- button: ripples not being clipped to border radius on safari (#13645) (6643735)
- checkbox: incorrect ripple color when unchecked (#13569) (b4a9c62)
- chips: able to remove disabled chip via remove button (#15732) (20a0930), closes #15708
- chips: chip-list doesn't pick up wrapped chips with ivy (7f12235)
- datepicker: use narrower value for aria-haspopup (#15666) (0c62798)
- ng-update: type imports not migrated to secondary entry-points (#16108) (dc51691)
- popover-edit (experimental): rework host listeners to account for changes in Ivy (#16060) (558295b)
- popover-edit (experimental): incorrect template root note retrieved in ivy (5bf0487)
- schematics: avoid lint warning in code generated by nav schematic (#16088) (6c7fd30), closes #16085
- slide-toggle: focus ripple not hiding after click/touch (#13562) (917a52e), closes #13295
- table: better error message if text column is missing a name (254fb49)
- table: error in Ivy for coerced multiTemplateDataRows (#16047) (5259f22), closes #16044
- table: schematic generates code that throws an exception (#15800) (301371a), closes #15788
- table: text-column throws if name input is set eagerly with ivy (e774692)
- checkbox: don't show hover ripples on touch devices (#13700) (43b4fec), closes #13675
- drag-drop: allow for element in DropListRef to be changed (#15091) (e630bd6), closes #15086
- drag-drop: don't allow user to move item into container that isn't connected to current one by passing it over an intermediate one that is (#15660) (1ac9386), closes #15191
- drag-drop: error if item is removed while dragging (#15950) (a632067), closes #15827
- drag-drop: preview element not maintaining canvas data (#15808) (31e72a7), closes #15685
- list: form control cleared when list is destroyed (#16005) (40b335c), closes #15994
- menu: prevent menu from collapsing to less than one item (#15454) (941a0d9)
- overlay: add panelClass from position to the overlay (#15853) (00226f0)
- overlay: allow overlay sass variables to be overwritten (#15507) (b1c10d1), closes #15467
- popover-edit (experimental): direction not being passed to overlay (#15951) (7774ae1)
- portal: correct return type of TemplatePortal.attach (#14602) (70bc4d5), closes #14584
- scrolling: virtual scroll not disconnecting from data source on destroy (#15856) (8494f03), closes #15855
- select: optionSelectionChanges not emitting when the list of options changes (#14814) (f6cd86e)
- autocomplete: add input to control position (#15834) (5aaca54), closes #15640
- drag-drop: allow element to be passed in as the boundary (#15810) (399f25e), closes #15766
- radio: support theme color on mat-radio-group (#15741) (6c03e2f), closes #15701
- The repo name has changed from
angular/material2
toangular/components
- All files under
src/lib
have been moved undersrc/material
- autocomplete: make template ViewChild query
static: true
(#15877) (388baa2) - drag-drop: not reacting to changes in the cdkDragFreeDragPosition (#15805) (021b85a), closes #15765
- stepper: Fix visual flake in focusing stepper header (#15870) (8b5c0f1)
Imminent Important Import Deprecation:
Importing directly from the root @angular/material
entry-point is deprecated. You should instead
import from specific entry-points, e.g. @angular/material/button
. This aligns with @angular/cdk
,
makes clear where symbols originate, and helps safeguard against including unused code. The
deprecated style will be removed in Angular v9.
Angular CLI users can use ng update @angular/material
to automatically migrate imports to the new
style.
- tabs:
_ngZone
and_platform
parameters inMatTabHeader
constructor are now required. - tabs:
changeDetectorRef
parameter inMatTabBody
constructor is now required. - expansion: The
_document
and_animationMode
parameters are now required. - list:
_elementRef
parameter inMatList
constructor is now required. - list:
_changeDetectorRef
parameter inMatListItem
constructor is now required. Also the order of constructor parameters has changed. - progress-spinner: The
animationMode
mode parameter is now required in theMatProgressSpinner
andMatSpinner
constructors. - progress-spinner: The
_elementRef
parameter has changed fromElementRef<any>
toElementRef<HTMLElement>
in theMatProgressSpinner
andMatSpinner
constructors. - button:
_platform
parameter has been removed from theMatButton
constructor and the_animationMode
is now required. - button:
platform
parameter has been removed from theMatAnchor
constructor and theanimationMode
is now required. - badge:
_document
parameter has been removed and the_renderer
parameter is now required in theMatBadge
constructor.
@angular/material
now has an explicit peer dependency on@angular/forms
. It was always required, but is now correctly listed in thepackage.json
.
- a11y: don't set aria description if it's the same as the node's aria-label (#15250) (1bc8bc4), closes #15048
- autocomplete: remove old classes when classlist has changed (#15185) (413fe33), closes #15179
- badge: disable animations when using NoopAnimationsModule (#11408) (4614fb8)
- badge: increase font size of small badge (#15280) (2b14952), closes #15251
- bottom-sheet: focus trap not being attached when autoFocus is disabled (#15125) (3787695), closes #15119
- drag-drop: clear duplicate ids from descendants (#15135) (751fe8a), closes #15120
- drag-drop: disabled value not being synced to drop list ref (#15065) (1aafdbe)
- drag-drop: dragged styling not being removed when exiting component with OnPush (#15266) (9bbbb80), closes #15233
- drag-drop: handle delay coming in as a string (#15425) (8bbb116)
- drag-drop: preview not being rendered inside fullscreen element (#15066) (f1e1528), closes #15033
- examples: fix form-field-custom-control (#15147) (83135e1), closes #14810
- icon: clearing user content when svgIcon is bound to falsy value (#15290) (d646266)
- input: no focus on click in IE if clicked outside native control (#15108) (2652532), closes #15093
- layout: breakpoint observer completing unrelated subscribers when preceding subscriber unsubscribes (#14988) (0d054db), closes #14983
- list: changed after checked error with preselected values in selection list (#15388) (d6f2729), closes #15386
- list: not picking up indirect descendant lines (#15552) (a258400), closes #15466
- menu: support focus first/last item via home/end keys (#14896) (0185dd1)
- overlay: flexible position strategy throwing error for empty strings (#14935) (6e52023)
- progress-bar: clear aria-valuenow in indeterminate or query mode (#15019) (a88d053), closes #15016
- progress-spinner: clear aria-valuenow in indeterminate mode (#15052) (dd4257e), closes #15018
- radio: underlying label not expanding to width of radio button (#14895) (677db8c), closes #14894
- schematics: ensure project "style" and "skipTests" options are respected (#15513) (fe6629a), closes #15502
- select: error when navigating via keyboard to reset option on a closed select (#15160) (a115b3a), closes #14540 #15159
- select: update panel width if the viewport size changes (#14932) (78f55ea), closes #7811
- slide-toggle: thumb animation not working on mobile (#15236) (48d17af), closes #15232
- stepper: content not being rendered out initially with ivy (#15485) (876727d)
- table: use default change detection strategy on table (#15440) (f82259b)
- table: use static queries for examples (#15483) (d525f9c)
- tooltip: render style values in ngOnInit instead of the constructor (#15469) (59818d1)
- typography: move header letter spacing into typography config (#15210) (0673574), closes #15197
- add peer dependency on @angular/forms (#15133) (8fc97ac), closes #15085
- mark virtual scroll viewport queries as static (#15346) (e739e61)
- missing tag in footer-row of material table (#15711) (578790b)
- a11y: add injection token configure default politeness and duration (#15126) (e2c9873), closes #15121
- dialog: add ariaLabelledBy config option (#14943) (3e935e9)
- drag-drop: add API to get/set current position of a standalone draggable (#14696) (2f009d0), closes #14420 #14674
- drag-drop: add the ability to customize how the position is constrained (#15137) (4704653)
- drag-drop: add the ability to disable sorting in a list (#15064) (629460f), closes #14838
- drag-drop: allow for dragging sequence to be delayed (#14732) (bcf2781), closes #13908
- menu: allow focus restoration to be disabled (#15205) (dfa40fc), closes #15168
- overlay: allow for scroll strategy to be swapped out (#15067) (3308187), closes #12306
- popover-edit (experimental): experimental popover edit for tables (mvp) (#15496) (457ff28)
- selection-list: support specifying theme color (#15237) (66d38fc), closes #15234
- stepper: allow disabling ripples of headers (#14972) (a6cc98f), closes #14940
- focus-monitor: avoid triggering change detection if there are no subscribers to stream (#14964) (085bbb7)
- bottom-sheet: unable to reopen same bottom sheet after closing via back button (#15520) (aae6972), closes #15510
- chips: remove aria-selected from deselected chip in single selection mode (#15634) (ebbf97e), closes #15617
- error when attempting to access Intl API on some versions of Windows (#15693) (c02b09c), closes #15687
- dialog: remove default aria-label from mat-dialog-close (#15654) (307889e), closes #15542
- form-field: remove nonbreaking space before * for required fields (#15490) (5e7cf22)
- option: Remove aria-selected='false' in single-selection mode (#15617) (61a608b)
- schematics: use ngAfterViewInit instead of ngOnInit in table (#15446) (9c34b97)
- sidenav: some internal subjects not being completed (#15567) (073e542)
- add disabled styling for unchecked pseudo checkbox (#15405) (bd1c973)
- autofill: use static queries to read values used in ngOnInit (#15516) (cb0b025)
- form-field: select value text blending in with the background in high contrast mode (#15286) (bbd30fb)
- icon: clear user content when svgIcon is bound to falsy value (#15290) (f2f1232)
- slide-toggle: be able to receive focus while disabled on click (#15501) (479618e)
- tooltip: tooltip sample not working with keyboard navigation. (#15111) (3987b9b)
- schematics: do not run migrations multiple times (#15424) (7b77740)
- stepper: avoid breaking change in stepControl type (#15464) (f02ebe1), closes #15134 #15462
- badge: duplicate leftover badge after server-side render (#15417) (815a729)
- calendar: should markForCheck when properties are changed (#15102) (4aa5535)
- datepicker: toggle throwing an error if datepicker is not defined on init (#15256) (3c5e671)
- form-field: allow user to click through arrow on native select (#15328) (cb057d2), closes #15318
- form-field: infinite loop with zone-patch-rxjs (#15335) (8581556), closes #15331
- list: action list missing focus and hover styling (#14147) (3f876e2)
- list: override native button text align in action list (#15404) (aaec2d5)
- radio: ng-touched incorrectly being set on click (#12560) (5b04ec3)
- radio: only show focus ripple for keyboard focus (#13565) (87477c3), closes #13544
- radio: unable to distinguish disabled radio button in high contrast mode (#15375) (230b1ed)
- schematics: incorrectly throws if NgModule uses namespaced decorator (#15298) (89c48f4)
- scrolling: virtual scroll viewport error during server-side rendering (#15299) (78e7207), closes #15291
- select: Fixes width-issue of select option panel in IE (#11801) (81a73c6), closes #11609
- sort: remove arrow when sort header is disabled (#15212) (4a7fdfe), closes #14986
- stepper: unable to tab to step content (#14892) (824aad2)
- tabs: correct example title (#15325) (f1ca6ff)
- virtual-scroll: move views that are already attached instead of inserting (#15348) (8dc572d)
- theming: fix errors when building theme using CSS variables (#15140) (96f6e06), closes #15107
- bidi: handle uppercase values correctly (#14773) (0029cde)
- dialog: don't assign aria-label to close button if button has text (#11093) (9bf368d), closes #11084
- list: disableRipple on selection list not affecting list options after init (#14858) (edf4541)
- schematics: do not generate invalid stylesheet files (#15235) (e7422e4), closes #15164
- table: add missing rowgroup roles (#15131) (2c7bc1c)
- autocomplete: set aria-haspopup (#15079) (45bd5d4)
- checkbox: unable to click to select if text is marked (#15062) (4819c5b), closes #14967
- drag-drop: set class when item or list is disabled (#14769) (c543cf6), closes #14760
- drag-drop: standalone draggable drag class not being applied with OnPush change detection (#14727) (2f63195)
- icon: add notranslate class (#14889) (39fa928)
- menu: prevent removal of mat-elevation class (#15035) (8069641)
- slide-toggle: input element should use switch role (#15073) (3af7748), closes #14949
- tree: opposite direction padding not being reset on change (#14816) (ae4a5ae)
- button: not updating DOM node name if group name changes (#14963) (37732cb)
- cdk-stepper: coercing selectedIndex value to a Number (#14817) (b64c08d)
- checkbox: not marked as touched immediately on blur with OnPush change detection (#15001) (916c532), closes #14980
- chips: newly-added chips not being disabled when added to a disable list (#14976) (c23512a)
- examples: fix form-field custom control
disabled
input (#14957) (ce3926d), closes /github.com/angular/angular/blob/e2c98fbe11272295c3827b0e54f859d283cd32bf/packages/forms/src/directives/reactive_errors.ts#L64 - list: selection list not picking up indirect descendants (#15003) (6a07d0d), closes #15000
- MatPseudoCheckbox: fix checkmark pseudo-element box-sizing (#14971) (ba6b405)
- overlay: unnecessarily pushing overlay if it is exactly as wide as the viewport (#14975) (f4b4e61), closes #14968
- radio: not updating DOM node name if group name changes (#14950) (4d5c5d5)
- radio: unable to click to select button if text is marked (#14967) (81380d2), closes #14753
- slider: focus ring showing when ancestor has focus monitoring (#14960) (2ec9dff), closes #14958
- table: allow for a caption to be projected (#14965) (a8a6617), closes #14948
- table: Clarify unknown table column error (#14947) (2782273)
- tree,scrolling: don't require user DataSource to extend DataSource (#14966) (0f9926a)
- autocomplete: not updating origin if it changes after init (#14677) (4913c36)
- bottom-sheet: allow disableClose to be updated after opened (#14711) (3d3179f), closes #14708
- button: focus indication hard to see in high contrast mode (#13259) (fffbcb1)
- button-toggle: remove references to selected toggle on destroy (#14627) (98f0142)
- datepicker: update validation when switching from null to error input (#14423) (5aefe60)
- drag-drop: apply translation transform before user transforms (#14712) (349675a), closes #14699
- drag-drop: dragging styling not being reset in some cases with OnPush change detection (#14725) (1d4bb18)
- drag-drop: incorrectly preserving transform if root element changes (#14697) (3656a4e)
- drag-drop: restore initial transform when resetting (#14701) (005fb46)
- drag-drop: unable to move item into connected container by passing through another container (#14651) (0bd93dd), closes #14645
- focus-trap: apply aria-hidden to focus trap tab anchors (#14644) (f66302d)
- icon: clean up cached references in icon registry on destroy (#14801) (f6b4288)
- list: action list button outline not being reset on firefox (#14693) (73d0fb9)
- list: deselect option if value doesn't match up (#14800) (551ded5), closes #14734
- list: disableRipple on list input not taking effect after init (#14836) (463ac9e), closes #14824
- menu: not unsubscribing from close stream if trigger is destroyed (#14107) (80f510f)
- overlay: not sizing flexible overlay correctly when opening downwards on a scrollable page (#14672) (40f8b20)
- overlay: reset transform when disposing of position strategy (#14660) (86c530e), closes #14657
- overlay: update size if dimensions change in overlay directives (#14610) (c92d8c9), closes #7811
- slide-toggle: use default hue for thumb in dark theme (#14230) (7d96ed3), closes #14192
- sort: extra Firefox focus outline not being reset (#14733) (027d4f4)
- stepper: ensure step state is not minified (#14933) (e7b0e40)
- table: not re-rendering when switching to a smaller set of data than the current page (#14665) (a31a2ff), closes #12586 #14010
- tabs: better handling of animationDuration without units (#14778) (6f49813), closes #13428
- tabs: don't handle keyboard events with modifier keys (#14234) (76cb9d0)
- tabs: pagination not working correctly on chrome in rtl mode (#14690) (220e6b2), closes #14689
- tooltip: afterHidden stream not being completed (#14620) (0394d59)
- dialog: support adding and removing classes via dialogRef (#14772) (b62f3f3), closes #6206
- drag-drop: add service for attaching drag&drop to arbitrary DOM nodes (#14437) (5a18ea6)
- overlay: allow for connected overlay to be positioned relative to a point (#14616) (651549f), closes #5007
- ripples: support updating global ripple options at runtime (#14705) (4f755cf), closes #9729
- tabs: add automatic scrolling when holding down paginator (#14632) (e661317), closes #6510
- tooltip: allow for default position to be configured (#14872) (342e6f0), closes #14862
- a11y: remove listeners when focus trap anchors are removed (#14629) (17bb9c3)
- autocomplete: adding aria-activedescendant while closed if autoActiveFirstOption is enabled (#14455) (f3065cc), closes #14453
- checkbox: incorrect color for disabled indeterminate checkbox (#14478) (0398d53), closes #14415
- datepicker: native date adapter not preserving time when cloning (#14691) (9e3a77b)
- dialog: complete injectable streams on destroy (#14254) (e673608)
- drag-drop: don't disable native drag interactions if dragging is disabled (#14233) (9fa3376)
- drag-drop: update root element if selector changes (#14426) (14b90db)
- form-field: proper arrow color for native select (#14490) (3824a05)
- input: unable to reset focused state of readonly input (#14698) (98711d7)
- list: add hover and focus indication in high contrast mode (#14637) (3c71348)
- menu: hasBackdrop not being updated after first open (#14561) (268b0e8), closes #14560
- menu: scroll position jumping to top after animation is done on scrollable menu (#14190) (37a7080), closes #11859 #11790
- moment-adapter: incorrectly deserializing moment dates and not setting locale on deserialized values (#14685) (36db1c0)
- overlay: not updating hasBackdrop after first open (#14562) (61d3cf8), closes #14561
- radio: host element unable to receive focus events (#14472) (8c35917), closes #13323 #13953
- select: announce value changes with arrow keys while closed (#14540) (3f9a125)
- select: don't shift arrow if there is no label (#14607) (7188719), closes #13907
- select: form field state not updated if options are reset (#14720) (391a9fd), closes #14709
- slider: don't handle keyboard events with modifier keys (#14675) (7d2748e)
- typography: deprecation warning in latest sass version (#14673) (65ecb08), closes #14636
- expansion-panel: add missing injection token for configuring the default options (#14384) (a389704), closes #14383
- a11y: inconsistent runtime value for ListKeyManager.activeItem (#14154) (c4b3484), closes #14152
- autocomplete: update template when changing autocomplete in trigger (#13814) (904a5ea)
- badge: aria-label not being updated if description changes (#14393) (ab78183)
- bottom-sheet: bottom-sheet content not being read out by screen readers (#14534) (9485aff), closes #10591
- cdk/stepper: exported injection token referring to Material (#14339) (b584888)
- chips: don't handle separator keys while pressing modifiers (#14424) (d1cec1f)
- drag-drop: account for out of view container and stacking order (#14257) (c5be8d3), closes #14231
- drag-drop: error on touch end (#14392) (53cecbb), closes #14390
- drag-drop: handle placeholder and preview templates changing after init (#14541) (bfacbb5)
- drag-drop: prevent text selection while dragging on Safari (#14405) (220e388), closes #14403
- drag-drop: showing touch device tap highlight when using a handle (#14549) (8a3d21a)
- drag-drop: throw better error when attaching to non-element node (#14221) (31f0e6d)
- drag-drop: unable to stop dragging after quick double click (#14506) (fbb2a13)
- drawer: ensure all observables are unsubscribed (#13378) (f7dcc27)
- form-field: long labels and option values going under select arrow (#14268) (166279b)
- form-field: native select label floating incorrectly when invalid value is set (#14263) (9c65c87)
- form-field: outline gap not being calculated when element starts off invisible (#13477) (e579181), closes #13328
- form-field: outline gap not being recalculated on direction changes (#13478) (b78a750)
- grid-list: allow more units for gutter width and row height (#14341) (f176119)
- menu: accidentally tapping on sub-menu content that overlaps trigger on touch devices (#14538) (f2a06ab)
- menu: reduce specificity of icon selector (#14389) (74e945a)
- menu: unable to set icon color dynamically (#14161) (48e4f65), closes #14151
- schematics: drag-drop schematic two consecutive commas (#14446) (35fd998)
- schematics: two consecutive commas generated (#14371) (dd6065c), closes #14366
- sidenav: content margins not updated on viewport changes (#14089) (b15392d)
- snack-bar: announcing same message twice to screen readers (#13298) (3fb4b23)
- stepper: ignoring custom falsy value for hasError (#14337) (7fac915), closes #14333
- text-field: add fallback for browsers that don't support requestAnimationFrame (#14519) (c94812d)
- tree: allow tree node to have undefined child or null child (#14482) (eeda91d)
- tree: handle null children in nested tree (#14547) (364376e), closes #10886 #14545
- reference symbols for example components rather than providing a string of the component name (#13992) (d0d97c3)
- workaround for es2015 inheritance not always working (#13834) (a22a9fa)
- drag-drop: add class to indicate whether a container can receive an item (#14532) (c6dc070), closes #14439
- drag-drop: add released event (#14513) (792d536), closes #14498
- drag-drop: add the ability to constrain dragging to an element (#14242) (8432e80), closes #14211
- drag-drop: allow entire group of drop lists to be disabled (#14179) (94e76de)
- drag-drop: indicate in dropped event whether item was dropped outside of container (#14140) (42de6a2), closes #14136
- a11y: don't handle disallowed modifier keys in typeahead mode (#14301) (700f20f), closes #14274
- badge: badge instances not being cleaned up on destroy (#14265) (da3776f)
- checkbox: poor color contrast for disabled checkbox (#14044) (9c86b5f)
- chips: invert focus overlay on dark theme (#14204) (7af8d02)
- drag-drop: add support for dragging svg elements in IE11 (#14215) (81db16c), closes #14214
- drag-drop: dragged elements blurry in some browsers (#14299) (63174d2), closes #14283
- drag-drop: only add top-level drop lists to drop group (#14130) (4acecd7)
- drag-drop: remove expensive style recalculation (#14189) (f212345)
- form-field: error when native select has no options (#14102) (0ef75ea), closes #14101
- list: don't handle events when modifier key is pressed (#14313) (0c7ce7a)
- menu: allow alternate roles to be set on menu item (#14165) (3f1588f), closes #14163
- ng-add: do not throw if custom builder is used for "test" (#14203) (498a3d8), closes #14176
- scrolling: default to vertical CSS class for invalid orientation (#14145) (dbe27c4)
- scrolling: provide virtual scroll viewport as scrollable (#14168) (c552504)
- slide-toggle: label not being read out by JAWS (#14304) (754414b), closes #4610
- slide-toggle: label not being read out by screen reader on IE (#14259) (5264804)
- stepper: showing hover state after tap on touch devices (#14074) (f3031ad)
- tabs: avoid hitting change detection if text content hasn't changed (#14251) (9778af2), closes #14249
- tabs: blurry text in scrolled header on some browsers (#14303) (f7c8026)
- a11y: aria-live directive announcing the same text multiple times (#13467) (a150494)
- a11y: avoid overlapping or left over timers in live announcer (#13602) (d0f4e7b)
- a11y: key manager preventing arrow key events with modifier keys (#13503) (1ef16ac), closes #11987 #13496
- a11y: wrong order of constructor arguments in provider (#14078) (2fcf9e7), closes #14077
- autocomplete: autofill value changes not being propagated to the form control (#9887) (059864d), closes #9704
- autocomplete: not propagating same model value when reset while open (#13634) (8d98375)
- bazel: theming bundle not exposed as sass_library (#14071) (af7a3d4)
- bidi: preserve user dir attribute (#13859) (d94d176), closes #13855
- breakpoints: set max-widths for breakpoints to non-integers to handle subpixel queries (#13828) (077f68e)
- button: ripple color not correct for standard, icon and stroked buttons (#13235) (b104e75), closes #13232
- button: stroked button crops applied badges (#13912) (4b431fe), closes #13909
- button-toggle: content shifting in IE11 (#13492) (b3483a6)
- button-toggle: not forwarding focus to underlying control (#14001) (81f8fb9)
- button-toggle: remove hover state on touch devices (#13724) (a320af2)
- button-toggle: svg icon not align inside toggle (#13839) (5851c91), closes #13726
- button-toggle: webkit tap highlight conflicting with ripples (#13721) (efe53a0)
- cdk-platform: pass
{}
to@NgModule
since passing nothing breaks (#13792) (65dd75d) - checkbox: disabled property not being coerced (#13755) (e5fe34c), closes #13739
- checkbox: no focus indicator in high contrast (#13255) (caf65e5), closes #13227
- chips: disabled state not matching specs (#13272) (60e0d88)
- chips: invalid ripple color for selected chips (#13271) (df5d18f)
- chips: not updating keyboard controls if direction changes (#14080) (1ffa1fc)
- chips: remove circular dependency between chip-list and chip-input (#13994) (6c741c4)
- datepicker: don't allow clicks on disabled cells in year and multi-year views (#13448) (c15bad2)
- datepicker: toggle not forwarding focus to underlying button (#14020) (b1d4b42)
- datepicker: unable to disable ripple on datepicker toggle (#13997) (31bffb3), closes #13986
- dialog,bottom-sheet: enter animation blocking child animations (#13888) (235add9), closes #13870
- drag-drop: avoid disrupting drag sequence if event propagation is stopped (#13841) (8b2dc82)
- drag-drop: avoid generating elements with duplicate ids (#13489) (68b53f7)
- drag-drop: avoid interference from native drag&drop (#14054) (26d63ee)
- drag-drop: drop list not toggling dragging class inside component with OnPush change detection (#13703) (12c15ba), closes #13680
- drag-drop: enable drag interactions when there is a drag handle (#13780) (4ee6636), closes #13779
- drag-drop: error if drag item is destroyed zone has stabilized (#13978) (6fe84f3)
- drag-drop: events fired multiple times for short drag sequences on touch devices (#13135) (dc0b51a), closes #13125
- drag-drop: ignore enter predicate when returning item to its initial container (#13972) (fa944b7)
- drag-drop: incorrectly laying out items with different height or margins (#13849) (89701ef), closes #13483
- drag-drop: multiple parallel drag sequences when dragging nested drag items (#13820) (436809c)
- drag-drop: not picking up handle that isn't a direct descendant (#13360) (c38ebb6)
- drag-drop: preserve previous inline transform (#13529) (cae16b0)
- drag-drop: prevent mouse wheel scrolling while dragging (#13524) (cd6da93), closes #13508
- drag-drop: use passive event listeners for start events (#13526) (280b0d6)
- expansion-panel: don't handle enter/space if modifier is pressed (#13790) (04716b1), closes #13783
- expansion-panel: emitting events twice on some browsers (#13600) (fa6e46d)
- focus-trap: warn if initial element is not focusable (#13960) (27347b5), closes #13953
- form-field: native select options blending in with dropdown background on a dark theme (#13201) (3f1e960)
- form-field: users being able to select the hidden placeholder of disabled input (#13480) (8dc367c), closes #13479
- grid-list: unable to assign numeric zero as gutter size (#13652) (037a746)
- icon: account for query params when prefixing external references (#13930) (4ce5ee0), closes #13924
- list: add ripples to action list items (#13799) (76044e8), closes #13795
- list: remove disabled selection list hover feedback on mobile (#13850) (0589881)
- list: selection list moving focus when an option is destroyed (#13531) (b5a0b16)
- menu: closing parent overlay when pressing escape (#13442) (a7df1d0)
- menu: proper focus styling when opened by tap on a touch device (#13599) (e51de15)
- menu: unable to swap menu panel after first open (#13819) (1fb1c55), closes #13812
- menu: use passive touch listener (#14041) (3842c8c)
- ng-update: do not fail if @schematics/angular version is outdated (#13929) (ece6b2d)
- ng-update: do not throw if typescript version is outdated (#13927) (eb59e56)
- overlay: backdrop exit animation not working (#10145) (3816079)
- overlay: provide fullscreen overlay container in root (#14091) (c55b78e)
- portal: use portal's ComponentFactoryResolver in portal outlet directive (#13886) (99d2512), closes #12677 #9712
- progress-bar: account for query params when prefixing references (#13942) (2290063), closes #13930
- progress-bar: not taking current path after first initialization (#13628) (88c6548)
- radio: don't show hover ripples on touch devices (#13701) (f230633), closes #13675
- radio: improved alignment for native validation messages (#13570) (dd96369)
- scrolling: leaking subscription if same element is registered multiple times (#13974) (20f8924)
- select: don't prevent enter and space keys if a modifier is pressed (#14090) (cb56df9)
- sidenav: opened and closed events emitting twice on IE and Edge (#13649) (beb4739)
- slide-toggle: don't show hover ripples on touch devices (#13702) (e8f8d07), closes #13675
- slide-toggle: no focus indication in high-contrast mode (#13287) (264f306)
- slide-toggle: redirect focus to underlying input element (#13957) (ec4809f), closes #13953
- slide-toggle: showing focus ripple when clicking disabled control (#14055) (9b05c3c), closes #13957
- slide-toggle: using incorrect colors when disabled (#13444) (dd9f267)
- slider: changing value on right click (#14083) (ed857c9)
- slider: update value on mousedown instead of click (#13020) (861642c)
- snack-bar: set appropriate role based on passed in politeness (#13864) (50f999b), closes #13493
- snackbar: override min-width of snackbar on mobile (#13880) (6703605)
- snackbar: set aria role based on if announcement message is provided (#13993) (69ffd33)
- stepper: custom icons not centered inside circle (#12947) (87e1742)
- stepper: don't handle enter/space when modifier key is pressed (#13827) (a9e550e), closes #13790
- stepper: emitting the animationDone event twice on some browsers (#13608) (3ef933a), closes #13600 #13587
- stepper: fix text contrast ratio of stepper labels (#14012) (ae5b10f)
- stepper: incorrect border color in dark theme for header with label position (#13791) (bbeb5ef)
- stepper: intl provider not being picked up in lazy-loaded modules (#12934) (675aa66)
- stepper: selector assuming that there will always be a dir attribute (#13751) (d5f0f0f), closes #13741
- stroked-button: ripples and focus overlay have incorrect radius (#13745) (4cdf5ba), closes #13738
- table: delimit words when filtering (#13487) (2a3599e)
- tabs: duplicate animation events on some browsers (#13674) (28e3d36)
- tabs: mat-align-tabs not working on mat-tab-nav-bar (#13818) (8fad5d1), closes #13798
- tabs: paginated header offset incorrect on IE (#13223) (d7a8892), closes #13217
- text-field: autosize textarea not resizing on minRows decrease (#13437) (cfeab79)
- tooltip: add fallback for touch devices if Hammer isn't loaded (#13580) (5d54920), closes #13536
- virtual-scroll: not removing view from container if it's outside the template cache (#13916) (8922100), closes #13901
- bottom-sheet: allow focus restoration to be disabled (#13153) (83fc823), closes #13150
- datepicker: allow custom classes to be applied to individual dates (#13971) (4be1b06), closes #13943
- drag-drop: add directive to connect drop lists automatically (#13754) (962dbeb), closes #13750
- drag-drop: add the ability to disable dragging (#13722) (b02a72e), closes #13651
- drag-utils: add utility function for cloning array items from one array to another (#13743) (d2d8a1f), closes #13100
- keycodes: add utilities for checking modifier keys (#13933) (7899863), closes #13790
- live-announcer: add ability to clear live element (#11996) (4a1c8ed), closes #11991
- ng-add: add preview URLs for theme choices (#13723) (4fbbb9d), closes /github.com/angular/angular-cli/blob/907ce5c94c774147c4b52870b3522aed4e087c76/packages/schematics/angular/ng-new/schema.json#L121 #13708
- paginator: allow paginator to be disabled (#13146) (cb4f5a0), closes #13145
- stepper: add CdkStepHeader directive and fix CdkStepper error on init (#10614) (fbbe463), closes #10611
- tabs: add the ability to customize the animation duration (#13505) (0cd7536), closes #13428
- tabs: make the updatePagination method public (#13935) (1e4ee0c)
- focus-monitor: mark event listeners as passive (#13532) (bfc00a0)
- list: reduce css selector size (#12571) (e31e011)
- a11y: aria-live directive announcing the same text multiple times (#13467) (7c2a095)
- a11y: avoid overlapping or left over timers in live announcer (#13602) (a93d3a5)
- a11y: key manager preventing arrow key events with modifier keys (#13503) (b7ef6af), closes #11987 #13496
- bazel: theming bundle not exposed as sass_library (#14071) (71c205e)
- bidi: preserve user dir attribute (#13859) (86089fe), closes #13855
- button: ripple color not correct for standard, icon and stroked buttons (#13235) (62c6d55), closes #13232
- button-toggle: not forwarding focus to underlying control (#14001) (b7be573)
- button-toggle: svg icon not align inside toggle (#13839) (2814a99), closes #13726
- checkbox: no focus indicator in high contrast (#13255) (13d9d3a), closes #13227
- chips: invalid ripple color for selected chips (#13271) (057eee1)
- datepicker: toggle not forwarding focus to underlying button (#14020) (723d7f5)
- datepicker: unable to disable ripple on datepicker toggle (#13997) (2fb58ab), closes #13986
- drag-drop: avoid disrupting drag sequence if event propagation is stopped (#13841) (2902d0b)
- drag-drop: avoid generating elements with duplicate ids (#13489) (905f0b4)
- drag-drop: avoid interference from native drag&drop (#14054) (8dcbee2)
- drag-drop: enable drag interactions when there is a drag handle (#13780) (0d3b74a), closes #13779
- drag-drop: error if drag item is destroyed zone has stabilized (#13978) (40a63cf)
- drag-drop: ignore enter predicate when returning item to its initial container (#13972) (3fb5522)
- drag-drop: prevent mouse wheel scrolling while dragging (#13524) (718d306), closes #13508
- drag-drop: add directive to connect drop lists automatically (#13754) (e905127), closes #13750
- focus-trap: warn if initial element is not focusable (#13960) (3026138), closes #13953
- icon: account for query params when prefixing external references (#13930) (90420d6), closes #13924
- menu: use passive touch listener (#14041) (f5006d6)
- progress-bar: account for query params when prefixing references (#13942) (eb82847), closes #13930
- scrolling: leaking subscription if same element is registered multiple times (#13974) (1a7173d)
- slide-toggle: redirect focus to underlying input element (#13957) (1d4be69), closes #13953
- slide-toggle: showing focus ripple when clicking disabled control (#14055) (a2c2caf), closes #13957
- snackbar: set aria role based on if announcement message is provided (#13993) (199583b)
- stepper: fix text contrast ratio of stepper labels (#14012) (01605d0)
- breakpoints: set max-widths for breakpoints to non-integers to handle subpixel queries (#13828) (b88b79d)
- button: stroked button crops applied badges (#13912) (835dc9e), closes #13909
- button-toggle: remove hover state on touch devices (#13724) (f9d5fb4)
- chips: remove circular dependency between chip-list and chip-input (#13994) (3da858d)
- dialog,bottom-sheet: enter animation blocking child animations (#13888) (e5afa48), closes #13870
- drag-drop: drop list not toggling dragging class inside component with OnPush change detection (#13703) (4e50d4a), closes #13680
- drag-drop: incorrectly laying out items with different height or margins (#13849) (c509591), closes #13483
- drag-drop: multiple parallel drag sequences when dragging nested drag items (#13820) (cdc0c8b)
- list: add ripples to action list items (#13799) (b293655), closes #13795
- list: remove disabled selection list hover feedback on mobile (#13850) (e975223)
- menu: unable to swap menu panel after first open (#13819) (cbb76ec), closes #13812
- ng-update: do not fail if @schematics/angular version is outdated (#13929) (f10f8b9)
- ng-update: do not throw if typescript version is outdated (#13927) (d44fcf8)
- portal: use portal's ComponentFactoryResolver in portal outlet directive (#13886) (d2af80b), closes #12677 #9712
- snack-bar: set appropriate role based on passed in politeness (#13864) (33d3cb3), closes #13493
- snackbar: override min-width of snackbar on mobile (#13880) (41cb8aa)
- stepper: don't handle enter/space when modifier key is pressed (#13827) (0bd3890), closes #13790
- tabs: duplicate animation events on some browsers (#13674) (7106681)
- tabs: mat-align-tabs not working on mat-tab-nav-bar (#13818) (2289e43), closes #13798
- virtual-scroll: not removing view from container if it's outside the template cache (#13916) (7c202ec), closes #13901
- bazel support for downstream apps (#13836) (61dbd26)
- build: material not working with ES2015 (#13709) (e9103a6), closes #12760 #13695
- button-toggle: webkit tap highlight conflicting with ripples (#13721) (abd0278)
- cdk-platform: pass
{}
to@NgModule
since passing nothing breaks (#13792) (5abb644) - checkbox: disabled property not being coerced (#13755) (cee8c65), closes #13739
- expansion-panel: don't handle enter/space if modifier is pressed (#13790) (3e6cc77), closes #13783
- radio: don't show hover ripples on touch devices (#13701) (b89c139), closes #13675
- slide-toggle: don't show hover ripples on touch devices (#13702) (9d495f1), closes #13675
- stepper: incorrect border color in dark theme for header with label position (#13791) (afa5a28)
- stepper: selector assuming that there will always be a dir attribute (#13751) (576118e), closes #13741
- stroked-button: ripples and focus overlay have incorrect radius (#13745) (7877404), closes #13738
- tooltip: add fallback for touch devices if Hammer isn't loaded (#13580) (9ae6c84), closes #13536
- drag-utils: add utility function for cloning array items from one array to another (#13743) (13395c5), closes #13100
- ng-add: add preview URLs for theme choices (#13723) (f1d1fc5), closes /github.com/angular/angular-cli/blob/907ce5c94c774147c4b52870b3522aed4e087c76/packages/schematics/angular/ng-new/schema.json#L121 #13708
- autocomplete: not propagating same model value when reset while open (#13634) (2006144)
- button-toggle: content shifting in IE11 (#13492) (7f5cbe3)
- datepicker: don't allow clicks on disabled cells in year and multi-year views (#13448) (85741e0)
- drag-drop: not picking up handle that isn't a direct descendant (#13360) (0f05d99)
- drag-drop: preserve previous inline transform (#13529) (2a8da45)
- drag-drop: use passive event listeners for start events (#13526) (5d5fba5)
- expansion-panel: emitting events twice on some browsers (#13600) (85a3ae0)
- form-field: native select options blending in with dropdown background on a dark theme (#13201) (b8a6294)
- grid-list: unable to assign numeric zero as gutter size (#13652) (4ffcf74)
- list: selection list moving focus when an option is destroyed (#13531) (2c4c5ba)
- menu: closing parent overlay when pressing escape (#13442) (c3ae922)
- menu: proper focus styling when opened by tap on a touch device (#13599) (c271167)
- progress-bar: not taking current path after first initialization (#13628) (8e331a7)
- radio: improved alignment for native validation messages (#13570) (dbf5164)
- sidenav: opened and closed events emitting twice on IE and Edge (#13649) (5295e2f)
- slider: update value on mousedown instead of click (#13020) (c995db7)
- stepper: custom icons not centered inside circle (#12947) (45edf64)
- stepper: emitting the animationDone event twice on some browsers (#13608) (a11ca21), closes #13600 #13587
- stepper: intl provider not being picked up in lazy-loaded modules (#12934) (00ce69b)
- table: delimit words when filtering (#13487) (1d87b4c)
- text-field: autosize textarea not resizing on minRows decrease (#13437) (8bae5b4)
- Support for Drag and Drop in
@angular/cdk/drag-drop
. - Support for Virtual Scrolling in
@angular/cdk/scrolling
. - Support for native
<select>
element in<mat-form-field>
. - Added
<mat-action-list>
, a list where each item is a<button>
. - Updated component styles throughout the library matching the 2018 Material Design Spec refresh.
- Added more schematics, with schematics now available for table, drag and drop, tree, address form and more.
- Added CLI prompts when using
ng add
to assist in setting up HammerJS support, application theming and animations. - 250+ bug/performance fixes
Using the Angular CLI, you can use the ng update
command to automatically migrate to the new APIs in for Material and CDK.
ng update @angular/material
NOTE: If you are using only the CDK you can automatically migrate using ng update @angular/cdk
instead.
- ripple: deprecated
[matRippleSpeedFactor]
andbaseSpeedFactor
for the ripples have been removed. Use the new animation config instead. - overlay: The
flexibleDiemsions
property onCdkConnectedOverlay
has been renamed toflexibleDimensions
- sidenav: the constructor signature of the
MatDrawerContent
andMatSidenavContent
has changed. - elevation: Because
mat-elevation
usages have been moved out of component stylesheets, users who have not invoked a theme mixin will not see any elevation shadows on Material components. However, users that have created a custom theme which lacks theelevation
property will still see the default black shadows.
Additionally, users who want to use themed elevations in their custom components can create their own shorthand mixin:
@import '~@angular/material/theming';
$myTheme: ...
@mixin my-elevation($zValue) {
@include mat-theme-elevation($zValue, $myTheme);
}
and then invoke angular-material-theme
with the $myTheme
variable.
A number of items throughout the library have been deprecated and are expected to be removed in v8.
Collections
SelectionModel.onChange
has been deprecated, useSelectionModel.changed
instead.
Scrolling
ScrollDispatchModule
has been deprecated, useScrollingModule
instead.
Table
CdkTable.setFooterRowDef
has been deprecated, useCdkTable.addFooterRowDef
andCdkTable.removeFooterRowDef
instead.CdkTable.setHeaderRowDef
has been deprecated, useCdkTable.addHeaderRowDef
andCdkTable.removeHeaderRowDef
instead.
Dialog
matDialogAnimations.slideDialog
has been deprecated, usematDialogAnimations.dialogContainer
instead.MatDialogRef.afterOpen
has been deprecated, useMatDialogRef.afterOpened
instead.MatDialogRef.afterClose
has been deprecated, useMatDialogRef.afterClosed
instead.MatDialog.afterOpen
has been deprecated, useMatDialog.afterOpened
instead.
Form Field
<mat-placeholder>
has been deprecated, use<mat-label>
instead.MatPlaceholder
has been deprecated, useMatLabel
instead.
Paginator
$mat-paginator-selector-trigger-min-width
has been deprecated, use$mat-paginator-selector-trigger-width
instead.
Select
matSelectAnimations.fadeInContent
has been deprecated and will be removed without replacement.- The setter method for
MatSelect.focused
has been deprecated,MatSelect.focused
will become readonly.
Toolbar
$mat-toolbar-height-mobile-portrait
has been deprecated and will be removed without replacement.$mat-toolbar-height-mobile-landscape
has been deprecated and will be removed without replacement.
NOTE: In addition to the specific deprecations listed above, many component constructor methods contain optional parameters which are expected to become required in v8.
- icon: not taking current path after initialization (#13641) (df9ec7)
- list: action list items clickable area not stretching the full width (#13099) (f3057fa)
- drag-drop: enterPredicate being called with wrong drop container (#13578) (60b4a58)
- drag-drop: rename cdkDrop to cdkDropList (#13619) (160b688)
- ng-add: do not add theme file if existing theme is set up (#13468) (d1e59a2)
- schematics: template content exceeds max line length (#13521) (b0a1daf)
- schematics: tree folder icons do not have enough contrast (#13462) (4a0eb2b)
- virtual-scroll: fix several small bugs (#13597) (8cfaeea)
- a11y: not being able to escape disabled focus trap using arrow keys (#13133) (3c55caa), closes #13132
- autocomplete: closing parent overlay when pressing escape (Esc) (#13413) (8dfd2ee)
- bottom-sheet: dismiss bottom sheet on destroy (#13120) (ffa4a06)
- button-toggle: not setting proper border in vertical mode (#13397) (d58db5d)
- button-toggle: remove extra focus indication added by firefox (#13367) (3583913)
- checkbox: ripple not hiding after click/touch (#13295) (afb0352), closes #13291
- chips: content not centered vertically on IE in some cases (#13260) (4f43f5c)
- chips: ripple not clipping correctly in safari (#12244) (eb95e61)
- chips: selectionChange event firing when value has not changed (#13173) (e8a6ea1)
- datepicker: change overlay position strategy so the calendar is kept on-screen (#11607) (f44d6db)
- drag-drop: avoid interfering with element clicks (#13152) (38e7dd2)
- expansion-panel: correct jump in panel sizing during animation (#12509) (a706c8c)
- form-field: blue box inside focused native select on IE (#13187) (ab44d50)
- form-field: not updating outline when prefix/suffix is added or removed (#13253) (0060bd7), closes #13251
- grid-list: incorrectly laying out tiles for nested list (#13086) (3e1cff0), closes #13074
- icon: handle references for pages with base tag (#12428) (9e5fd91), closes #9276
- list: selection list not marking options as selected correctly when setting value with duplicates (#13363) (bef9a17)
- menu: incorrectly styling keyboard focus, if trigger is right clicked before opening (#13136) (730e6a3)
- ng-add: allow using noop animations (#13429) (15a1ab7)
- overlay: incorrectly calculating centered position on a scrolled page with pushing (#13185) (f5dd24a), closes #11868
- overlay: wait for panel to detach before removing panelClass (#13199) (238aef0), closes #13189
- paginator: icons and labels not centered vertically on IE (#12495) (fe3f37a), closes #12491
- schematics: @angular/material schematics not working (#13406) (3f8ee74)
- schematics: name is required when generating the drag-drop schematic (#13452) (4a9bbcb)
- schematics: proper error if name is not specified (#13379) (4a0b09a)
- scrolling: viewport ruler resize event running inside the NgZone (#12909) (707a7ee), closes #12883
- select: allow extra content to be projected after label in mat-optgroup (#13396) (cb5b15e), closes #11489
- select: handle home and end keys on closed select (#13278) (d6ba25f)
- tabs: disabled tab link not preventing router navigation (#10358) (bf66d57), closes #10354
- virtual-scroll: don't set both
right
andleft
on the content (#13412) (6ee9149), closes #13231
- bottom-sheet: add injection token for default options (#13172) (3de3851), closes #13149
- datepicker: add ng-content to datepicker header (#13236) (3fc0d36), closes #13212
- schematics: create drag-drop schematic (#13368) (72ccd8b)
- autocomplete: dividers in list throwing off keyboard navigation (#13224) (0886cef), closes #13200
- button: fix stroked button border color (#13219) (bfeb540)
- checkbox: clear tabindex from host element (#13308) (845388c)
- chips: set aria-invalid on chip input (#13249) (311d786), closes #13205
- common: account for async hammer loader when checking whether hammer is defined (#12933) (d15431b)
- drag-drop: emitting incorrect index for horizontal list in rtl (#13274) (f3bb0c7)
- drag-drop: error on IE when customizing root element (#13279) (e1071f0)
- drag-drop: unable to return item to initial container within same drag sequence, if not connected to current drag container (#13247) (0ac41a0), closes #13246
- form-field: always use native input value to determine whether control is empty (#13307) (10e6502), closes #13305
- form-field: incorrect arrow color for native select (#13046) (10b8353)
- form-field: native date/time input taller than text input (#13321) (92a5f0e), closes #13317
- form-field: native select outline not reset on firefox (#12967) (38e492f)
- grid: fix mat-grid-tile position (#12980) (966cf5f)
- grid-list: exception thrown when rowHeight is set before first change detection run (#13112) (e7007a2), closes #13102
- grid-list: throw error if invalid value is assigned for rowHeight (#13254) (210f3f9), closes #13252
- list: set aria-multiselectable on selection list (#13325) (877ef5d)
- overlay: connected overlay directive inputs not updating position strategy (#13066) (1d8e9af)
- paginator: getNumberOfPages off by one (#10724) (016ba5c), closes #10720 #10699
- radio: clear tabindex from host element (#13323) (5c0a061), closes #13311 #13308
- schematics: addressForm: fix bad Validators definition and TSLint (#13285) (267dd65)
- schematics: dashboard schematic fails parsing declaration in spec (#13269) (543cb9f)
- schematics: fix typo in table's datasource (#13283) (0ccdfc8)
- schematics: nav schematic generates TSLint errors (#13268) (8d25fd1)
- schematics: remove unnecessary semicolon in tree component (#13284) (8558878)
- schematics: sidenav toolbar should use default background (#13282) (c454f7b)
- schematics: table schematic not expanding full width (#13234) (884762f)
- schematics: toolbar in nav w/o z-index causes issues with dashboard (#13270) (d74e38c)
- select: give native select a bigger clickable area (#13228) (6da7d23)
- slide-toggle: clear tabindex from host element (#13311) (119fafd), closes #13308
- snack-bar: button not centered inside snack bar on IE11 (#13062) (4e05745)
- snackbar: move elevation style to snackbar theme (#13273) (96e670f)
- stepper: vertical step header labels not centered on IE (#13262) (40fb5cb)
- tooltip: custom gesture config not set up (#12941) (1852563), closes #12940 #12917
- tooltip: hiding and reopening for consecutive show calls (#13326) (b5001f6)
- badge: allow badge to be disabled (#13196) (bfc1286), closes #13191
- button-toggle: align with 2018 material design spec (#12443) (fd3eb6a)
- overlay: add option to automatically dispose on navigation (#12592) (d48b1ba), closes #12544
- overlay: add support for swappable position strategies (#12306) (e0f3ae7)
- schematics: support for cdk
ng add
(#13319) (ac3f8c4) - schematics: support for cdk
ng-update
. (#13303) (1afddfb) - tabs: align with 2018 material design spec (#12605) (0c5598c)
- tree: support units different than px for indentation (#12991) (590d294)
- ripple: deprecated
[matRippleSpeedFactor]
andbaseSpeedFactor
for the ripples have been removed. Use the new animation config instead.
- This release includes a number of changes to bring the components more in line with the 2018 Material Design update. If you are overriding the default styles, you may find that you need to tweak them to look right after these changes.
- card: better scaling for avatar image (#13032) (19ce1a1)
- checkbox, slide-toggle: no margin if content is projected (#12973) (4636a98), closes #4720
- chips: arrow keys resetting focus to first chip (#12987) (959c827)
- dialog: clean up open dialogs on destroy (#12835) (4e15ba9)
- expansion: MatExpansionHeader transition animations (#13088) (4a96539), closes #11990 #11990 #11990 #11990 #11990 #11990 #11990 #11990
- form-field: Make labels show while printing (#12766) (e88271a)
- table: incorrect padding and text alignment in rtl (#12280) (2b89342), closes #12276
- button: align with 2018 material design spec (#13083) (79801e0), closes #12537 #13011
- card: align with 2018 material design spec (#12731) (484dc8b)
- checkbox: align with 2018 material design spec (#12493) (95acccc)
- chips: align with 2018 material design spec (#12838) (3cc9c67)
- dialog: align with 2018 material design spec (#12705) (00b7233)
- elevation: move elevation rules into theme stylesheets (#11344) (9c075f5), closes #11343
- dialog: * The
matDialogAnimations.slideDialog
symbol has been renamed tomatDialogAnimations.dialogContainer
.
- elevation: Because
mat-elevation
usages have been moved out of component stylesheets, users who have not invoked a theme mixin will not see any elevation shadows on Material components. However, users that have created a custom theme which lacks theelevation
property will still see the default black shadows.
Additionally, users who want to use themed elevations in their custom components can create their own shorthand mixin:
@import '~@angular/material/theming';
$myTheme: ...
@mixin my-elevation($zValue) {
@include mat-theme-elevation($zValue, $myTheme);
}
and then invoke angular-material-theme
with the $myTheme
variable.
- button-toggle: underlying input not disabled when group is disabled (#11610) (bd21f21), closes #11608
- chips: default click action on chip being prevented (#12856) (ae3ce4a), closes #9032
- datepicker: allow calendar cell selection via the space key (#13098) (5c4a334)
- drag-drop: DOM element not being returned to initial container on drop (#12948) (fb7bf90), closes #12944
- drag-drop: dragging class not being applied on drop container (#12921) (ec0de52)
- drag-drop: incorrectly calculating index when sorting horizontally (#13082) (664ef4c), closes #13072
- drag-drop: incorrectly calculating pointer position inside element, in some cases (#13111) (22cd3ed), closes #13107
- drag-drop: incorrectly picking up transitions on non-transform properties (#12966) (951add9)
- drag-drop: not dropping immediately for failed drag after a successful one (#13097) (32a0010), closes #13091
- drag-drop: text selection not disabled on safari if user drags out of the viewport (#12864) (8ee5fb6)
- drawer: respect
NoopAnimationsModule
and@.disabled
binding (#12839) (23df492) - expansion: disable all animations when using NoopAnimationsModule (#12855) (3e22641), closes #10590
- form-field: don't set up mutation observer on non-outline appearances (#12976) (cbfbade)
- form-field: remove chevron from native multi-select (#13009) (b62343a)
- grid-list: better handling of negative columns (#12939) (cfb83a0)
- input: do not focus input element twice (#12851) (7d586e4), closes #12849
- ng-update: do not throw if imports without named bindings are used (#12866) (#12984) (fe64211), closes #11571
- overlay: correct misspelled flexibleDiemsions property (#12927) (5d1643a), closes #12925
- overlay: infinite loop when used together with zone-patch-rxjs (#13081) (c2e502c), closes #12686
- platform: wrap MSStream property detection as string to prevent Closure property renaming (#13117) (aef61eb), closes #12223
- portal: remove dependency on deprecated parentInjector (#12986) (f39e091)
- progress-bar: buffer background animation stuttering (#13114) (2f2e116)
- ripple: ripples not being cleared if touch sequence is canceled (#12936) (948e563)
- sidenav: not positioning correctly in rtl (#12741) (9d3d95f)
- snack-bar: dismiss snack bar on destroy (#13042) (50be24b)
- tabs: pagination state not updated when tab content changes (#12911) (a7de64a), closes #12901
- tooltip: not showing up on touch devices (#12940) (722dfb3), closes #12917
- tooltip: text fields not editable if tooltip is applied in safari (#12959) (0389d12), closes #12953
- tree: theming nested notes (#12938) (e24f24a)
- typings: update typings to support more strict typings in RxJS 6.3.2 (#12979) (0a25fca)
- list: add new
<mat-action-list>
(#12415) (69fa762) - menu: align with 2018 material design spec (#12331) (c812268)
- ng-add: add x-prompts to install schematics (#13058) (a5bc79c)
- schematics: compatibility with Angular CLI 6.2.0 (#13078) (714c205), closes #11438
- select: align panel appearance and animation with 2018 material design spec (#12975) (18d0fa8)
- stepper: Create MAT_STEPPER_GLOBAL_OPTIONS InjectionToken (#11457) (9ab2c90)
- overlay: The
flexibleDiemsions
property onCdkConnectedOverlay
has been renamed toflexibleDimensions
7.0.0-beta.0 (2018-08-30)
- Support for drag and drop in
@angular/cdk/drag-drop
! - Support for virtual scrolling in
@angular/cdk/scrolling
! - You can now use a native
<select>
element in<mat-form-field>
- Updated visuals for 2018 Material Design update (in-progress, not all components are done)
Note that schematics for v7 are still in-progress.
You can view a beta version of the docs at https://beta-angular-material-io.firebaseapp.com.
- autocomplete: remove aria-owns attribute while closed (#12333) (f0a0ab1), closes #12332
- autocomplete: reopening closed autocomplete when coming back to tab (#12372) (c2b488e), closes #12337
- autofill: avoid firing unnecessary event on initial render of input (#12116) (c2fc3f4)
- badge: apply view encapsulation attributes on badge element (#12870) (db1d51f)
- badge: hide badges with no content (#12239) (701a0dd)
- bidi: default invalid directionality values to ltr (#12396) (e644350)
- breakpoints: emit only one event for adjacent breakpoint changes. (#11007) (2830a64)
- button: allow for non-colored flat button (#12550) (8c08bb1)
- button: allow transition for the button focus overlay for all buttons (#12552) (a080a79)
- button-toggle: clickable area not stretching when custom width is set (#12642) (ecf8b0d), closes #8432
- button-toggle: forward tabindex to underlying button (#12538) (7dff5f8)
- button-toggle: set aria-disabled based on group disabled state (#12828) (5969523)
- card: images in title-group overlapping content (#12205) (89d16b2), closes #10031
- card: incorrectly inverting inset divider in rtl (#12285) (fba4a93)
- cdk-text-field: prevent keyframes from getting stripped by LibSass (#12567) (915590e)
- checkbox: prevent error when disabling while focused (#12327) (c4cacce), closes #12323
- chips: chip list removing focus from first chip when adding through the input (#12840) (c3b2d4f)
- chips: dynamic chip input placeholder changes not being propagated to form field (#12422) (e007c27), closes #11861
- chips: focus indication not visible in high contrast mode (#12431) (bcf4c9f)
- chips: focus not being restored correctly on chip removal when inside component with animations (#12416) (5fb338b), closes #12374
- chips: focus not restored properly if chip has been removed by click (#12788) (3da390e), closes #12416
- chips: form field not appearing as blurred when used without an input (#12858) (f82a94b)
- chips: improved image scaling in avatar (#12843) (f6e787a), closes #12660
- chips: incorrectly handling disabled state (#12659) (65ad6ab), closes #11089
- chips: losing focus if active chip is deleted (#11910) (e13bfe0)
- chips: support focusing first/last item using home/end (#11892) (3723191)
- collections: align SelectionModel to
changed
naming (#8286) (27e88c3) - datepicker: able to open from readonly input using keyboard control (#12880) (548d2b7)
- datepicker: add minDate and maxDate validation in demo-app (#12531) (2b29c93)
- datepicker: input not picking up changes if datepicker is assigned after init (#12546) (3299628)
- datepicker: multiple dialog open if the user holds down enter key (#12238) (8e63656)
- datepicker: screenreaders report editable grid cells (#12275) (a2dcf21)
- datepicker-toggle: forward tabindex to underlying button (#12461) (648eb4a), closes #12456
- expansion: respect parent accordion hideToggle binding (#12725) (9c184ea), closes #6529
- expansion-panel: elevation transition not working (#12860) (ac8ed31)
- expansion-panel: focus lost if focused element is inside closing panel (#12692) (baf6419)
- expansion-panel: implement keyboard controls (#12427) (32e5d72)
- form-field: allow for measuring outline gap when label is not in dom (#12782) (21095f5)
- form-field: legacy ripple underline jumps in edge (#12648) (70d1be8), closes #6351
- form-field: outline gap not calculated when appearance is provided through DI (#12767) (8e49388), closes #12765
- form-field: remove outline gap for empty labels (#12637) (3d4fc82)
- form-field: reset inputs not being reset on safari (#12413) (4884dac), closes #12408
- form-field: unable to distinguish disabled form field in high contrast mode (#12445) (df2b371)
- form-field: update label gap for outline style (#12555) (03527c6)
- grid-list: not picking up indirect descendants (#12823) (c04d2ae), closes #12809
- input: only monitor focus origin on browser platform (#11604) (625f792)
- list: disable hover styling on touch devices (#12520) (795c956)
- list: improved image scaling in avatar (#12660) (9a59c2a), closes #8131
- live-announcer: avoid triggering a reflow when reading directive content (#12638) (040f9db)
- live-announcer: duplicate live element when coming in from the server (#12378) (a10bfa4), closes #11940
- menu: changed after checked error when toggling quickly between triggers for same submenu (#12209) (b53b66a)
- menu: collapse empty menu panel (#12211) (b23cecd)
- menu: focus indication not visible in high contrast mode (#12201) (56bce47)
- menu: menu content data being cleared when lazy-loaded content is reused between nested triggers (#12476) (1e1751f), closes #12467
- menu: showing scrollbars on first open in Edge if item width is set (#12141) (275de51)
- menu: throw better error when trying to open undefined menu (#12688) (c90dcfb), closes #12649
- moment-date-adapter: not returning utc date when parsing (#12029) (d431566)
- ng-add: do not incorrectly insert custom-theme into CSS files (#12711) (51da6a6)
- ng-add: inserted dependencies should be sorted (#12847) (0760dad)
- ng-add: material version could not be determined (#12751) (a027ae5)
- ng-update: do not throw if imports without named bindings are used (#12866) (cef2e1e), closes #11571
- ng-update: form-field css name incorrectly updated (#12768) (4830be8)
- ng-update: support parenthesized directive metadata (#12314) (c5b87da)
- overlay: avoid same overlay being added to the keyboard event stack multiple times (#12222) (45d6ae4)
- overlay: flexible overlay with push not handling scroll offset and position locking (#11628) (f8b70cd)
- overlay: flexible overlay with push not handling scroll offset and position locking (#12624) (e765d8e), closes #11365
- paginator: inconsistently disabling tooltips between browsers (#12539) (73a3d4a)
- progress-bar: avoid error on SSR if pathname is undefined (#12807) (f3af763)
- progress-bar: generate correct url on server (#12813) (787f31a)
- progress-bar: incorrectly handling current path when using hash location strategy (#12713) (5727eac), closes #12710
- progress-bar: query animation not working inside routes with named outlets (#12350) (b9c0d85), closes #12014 #12338
- progress-bar: query state animation not working (#11459) (b40967f), closes #11453
- ripple: don't hide directive host in high contrast (#12168) (944caf9)
- ripple: don't launch ripple for fake mouse events (#11997) (4639a87)
- schematics: do not allow specifying native view encapsulation (#12632) (0a823dd)
- schematics: fix object iteration error in dashboard (#12216) (b589828)
- schematics: generated spec files not working (#12842) (c09da0b), closes #12778
- schematics: properly detect tsconfig files (#12434) (08e6653)
- schematics: properly indent inline files (#12317) (ed4e082)
- schematics: tree schematic not working (#12281) (ba134f4)
- select: arrow position/animation for appearance="standard" (#12045) (58f3c54)
- select: pointing to non-existent element via aria-labelledby (#12411) (3b7f0f1), closes #12405
- select: skip disabled options when using ctrl + a (#12553) (559b95e), closes #12543
- select,autocomplete: unable to set custom id on mat-option (#11573) (29d5173), closes #11572
- selection-list: do not allow toggling disabled options (#12617) (4cfdb20), closes #12608
- selection-list: proper styling not being applied when using mat-list-icon (#12879) (7bc8670)
- sidenav: content jumping in rtl and blurry text on IE (#12726) (4050002), closes #10026
- sidenav: scrollable instance not exposed when explicitly specifying content element (#11706) (441c98e), closes #11517 #10884
- slide-toggle: blended ripples do not match spec (#12735) (e148414)
- slide-toggle: fix font sizing for slide toggle to match other input methods (#10688) (58c1c95)
- slide-toggle: invert the thumb and slide gesture in rtl (#12284) (9a191b3)
- slide-toggle: prevent error when disabling while focused (#12325) (e273a7a), closes #12323
- slide-toggle: remove webkit tap highlight (#12708) (ba55d04)
- slide-toggle: respect primary palette of theme (#12698) (dad0ed0), closes #11854
- slider: thumb label blending in with background in high contrast mode (#12606) (f1b65b6)
- snack-bar: prevent content from overriding configured aria-live message (#12294) (0958cbb)
- snackbar: wrap simple snackbar text in span (#12599) (ef0b84b)
- stepper: focus lost if focus is inside stepper while changing step (#12761) (8a7ca7f)
- stepper: handle removing a step before the current one (#11813) (82b35d0), closes #11791
- stepper: improved alignment for step icons (#12703) (37a7056), closes #12696
- tab-group: focus change event not firing for keyboard navigation (#12192) (1b7b8ab)
- table: error if row definition is on an ng-container (#12462) (ef57919), closes #12460
- table: errors when rendering table with sticky elements on the server (#12095) (7e67fe9), closes #12094
- table: extra elements throwing off table alignment (#12645) (3b70d20), closes #11165
- table: unable to sort large numbers in strings (#12052) (adda21f)
- tabs: animation running after initialization (#12549) (4c2f619)
- tabs: changed after checked error when using isActive in view (#12206) (499458c), closes #12197
- tabs: content animation in RTL not working (chrome) (#12215) (c6c68a6)
- tabs: disable focus overlay for touch focus (#12249) (1b19b93), closes #12247
- tabs: enable keyboard wrapping and mark disabled tabs (#12218) (7f8fd9f)
- tabs: only target direct descendants with mat-stretch-tabs (#12198) (592af48), closes #12196
- tabs: reposition tab body on direction change (#12229) (49ec9ca)
- tabs: ripple overflow in internet explorer (#12036) (f35a314)
- tabs: selectedIndex being overwritten if tabs are being added / removed (#12245) (569c221)
- tooltip: interfering with native drag&drop (#12200) (19f64ad)
- tooltip: opening after click on android (#12250) (2a49532), closes #12223
- tree: include constructors on MatTree classes to allow es6 builds (#12556) (5623c5b)
- ensure components work with ES2015 in jit mode. (#12759) (2adced1), closes /github.com/angular/angular/pull/22356#issuecomment-387756794 #9329
- explictly declare types for mixin base classes (#12876) (515912b)
- autocomplete: add updatePosition() method to MatAutocompleteTrigger (#11495) (3ce5b1f)
- autocomplete: align with 2018 material design (#12570) (b9651df)
- bottom-sheet: align with 2018 material design spec (#12625) (ceb2051)
- bottom-sheet: allow autofocusing to be disabled (#12193) (d6ca3ec)
- breakpoint-observer: Emit matching state of each query provided (#12506) (5a560b2)
- cdk-scrollable: add methods to normalize scrolling in RTL (#12607) (028746a)
- chips: allow set in separatorKeyCodes (#12477) (170665a)
- datepicker: align with 2018 material design spec (#12693) (32456e3)
- dialog: allow focus restoration to be disabled (#12519) (d5c5f31)
- drag-drop: new feature! Too many commits to list.
- expansion: add animation events for expansion panels (#12412) (f6b1002)
- expansion-panel: align with 2018 material design spec (#12670) (ccbae0b)
- focus-monitor: support monitoring ElementRef (#12712) (932211e)
- form-field: support native select element (#12707) (4e41985)
- ng-add: respect project default inlineStyle, inlineTemplate and spec option value (#12888) (8831a7a), closes #11874
- ng-add: respect project default style extension (#12618) (5144aa7)
- ng-add: set up gestures in CLI projects (#12734) (b919a48)
- overlay: add the ability to set a panelClass based on the current connected position (#12631) (765990e)
- overlay: support setting panelClass on cdkConnectedOverlay (#12380) (d7c734c)
- paginator: allow form field color to be customized (#12834) (e18a99f)
- portal: allow for custom ComponentFactoryResolver to be associated with portal (#12677) (136f5dd), closes #9712
- progress-bar: add transitionend output for value animation (#12409) (6a1a707)
- progress-bar: align with 2018 material design spec (#12394) (b2247f8)
- radio: align with 2018 material design spec (#12299) (dda8122)
- ripple: no longer require additional setup when using MatRipple directive (#11913) (d796776)
- ripple: support multi-touch (#12643) (8fdc2cf)
- schematics: new tree schematic (#11739) (1540e2f)
- select: allow for option sorting logic to be customized (#11890) (d54a75a)
- sidenav: align with 2018 material design spec (#12569) (1f88bd7)
- slide-toggle: align with 2018 material design spec (#12419) (5f2e077)
- snack-bar: align with 2018 material design spec (#12634) (1e754a0)
- tooltip: align with 2018 material design spec (#12310) (4e358c3)
- virtual-scroll: new feature! Too many commits to list.
- overlay: remove detached overlays from the DOM (#12414) (71886f8), closes #12341
- table: leaking reference through mostRecentCellOutlet (#12269) (34a7e38), closes #12259
- tree: leaking reference through mostRecentTreeNode (#12334) (60b9928), closes #12269
- virtual-scroll: improve scrolling performance (#12490) (4a9fe87)
- sidenav: the constructor signature of the
MatDrawerContent
andMatSidenavContent
has changed.
To view changes that occurred prior to 7.0.0, see CHANGELOG_ARCHIVE.md.