Releases: angular/components
twine-tornado
cdk
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) |
material
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) |
material-experimental
bug fix | rename sass mixins to mat-mdc-* (#18615) (b91e88f) |
bug fix | form-field: avoid expression changed after check (#18741) (eae5cf8) |
plastic-juice
cdk
bug fix | overlay: support SVG element as overlay origin (#18595) (1303d8f) |
material
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) |
google-maps
bug fix | server-side rendering error for polygon and rectangle components (#18573) (d987807) |
material-experimental
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) |
milk-blade
cdk
bug fix | testing: don't send unnecessary Key.chord s to protractor (#18685) (f87195b), closes mozilla/geckodriver#1502 |
material
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) |
material-experimental
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) |
tartan-tonsure
material
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) |
material-experimental
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) |
adamantium-mannequin
Highlights
- 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
cdk
bug fix | text-field: fix autofill listener on Chrome 80 (#18468) (4b329f0) |
feature | testing: add isFocused method to TestElement (#18183) (e704996) |
material
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](https://github.com/angular/components/issues... |
copper-canoe
material
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) |
tungsten-hombre
Highlights
New @angular/cdk/testing
infrastructure and Angular Material test harnesses
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.
New @angular/google-maps
package!
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!
New cdk/clipboard
subpackage containing helpers for working with the clipboard.
This new capability for @angular/cdk
provides some convenient helpers for dealing with
the clipboard. See the documentation for more information.
Big thanks to @xkxx for contributing this!
Breaking changes
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
material
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](7a748... |
brocade-arcade
material
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) |
youtube-player
bug fix | handle API interactions before API has loaded (#18368) (98fac6c), closes #18279 |
uranium-surfboard
cdk
bug fix | a11y: make cdk-high-contrast work w/ emulated view encapsulation (#18152) (aff21e8) |
material
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) |
youtube-player
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 |
material-experimental
bug fix | errors with latest MDC canary version (#18173) (5d13491) |
bug fix | mdc-theming and mdc-typography files not published (#18251) (77a25eb) |