Skip to content

Releases: angular/components

cesium-cephalopod

06 Nov 20:25
c13848e
Compare
Choose a tag to compare

Highlights

  • First release candidate for Angular Material and CDK! The team now believes that APIs and
    behaviors are stable and mature enough to exit beta. Please continue to file issues that
    help us eliminate more bugs from the forthcoming 5.0.0 release. Moving forward, the major
    version number of Angular Material and CDK will update alongside Angular itself.
  • Based on Angular 5.0
  • More consistent naming conventions across the board
  • 60+ bug fixes

BREAKING CHANGES

  • Angular Material now requires Angular 5, which itself requires TypeScript 2.4+ and RxJS 5.5.2+
  • mat-icon now uses HttpClient from @angular/common/http instead of Http from
    @angular/http. Any unit tests that faked icon responses should be changed to use an
    HttpInterceptor.
  • @angular/cdk/rxjs has been removed in favor of RxJS 5.5's lettable operators.
  • toolbar: in previous versions, any content of mat-toolbar not wrapped in a
    mat-toolbar-row would be rendered inside of an implicitly created mat-toolbar-row. As of rc0,
    this implicit row will no longer be created. This means that any custom application CSS that
    targeted this implicitly created mat-toolbar-row will no longer apply. Users can re-add the
    mat-toolbar-row in their own templates to match the original output structure. This
    resolves a longstanding issue where display: flex styles were difficult to use on mat-toolbar.
  • accordion: move CdkAccordion to @angular/cdk/accordion
    • CdkAccordion and associated classes live in @angular/cdk/accordion
    • AccordionChild is renamed to CdkAccordionChild
    • CdkAccordion no longer has displayMode and hideToggle @Inputs
    • CdkAccordionItem is now a @Directive
  • table:
    • The argument order for the when property of matRowDef and cdkRowDef has been changed
      from (rowData, index) to (index, rowData) in order to match trackBy.
  • datepicker:
    • fromIso8601 method on DateAdapter removed in favor of deserialize
    • DateAdapter will return an invalid date instead of throwing an error
    • The userSelection @Output of mat-calendar has been made internal-only
  • cdk/scrolling:
    • ScrollDispatcher.getScrollContainers has been renamed to getAncestorScrollContainers to
      better match its behavior.
    • The ScrollDispatcher.scrollableReferences property has been renamed to scrollContainers.
    • The ScrollDispatcher.scrollableContainsElement method has been removed.
    • The Scrollable class has been renamed to CdkScrollable for consistency.
  • unique-selection: move UniqueSelectionDispatcher to @angular/cdk/collections
    (UniqueSelectionDispatcher, UniqueSelectionDispatcherListener, and
    UNIQUE_SELECTION_DISPATCHER_PROVIDER)
  • MATERIAL_COMPATIBILITY_MODE, CompatibilityModule, NoConflictStyleCompatibilityMode,
    MatPrefixRejector, MdPrefixRejector symbols have been removed.
  • MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY is renamed to CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY

Deprecations

  • The following classes have been renamed. The old names are still available as deprecated:
    OverlayOrigin -> CdkOverlayOrigin
    ConnectedOverlayDirective -> CdkConnectedOverlay
    PortalDirective -> CdkPortal
    PortalHostDirective -> CdkPortalOutlet
    ObserveContent -> CdkObserveContent
  • The following @Output names have been renamed. The old names are still available as deprecated:
  • mat-select
    • onOpen -> opened
    • onClose -> closed
    • change -> selectionChange
  • mat-sidenav / mat-drawer
  • open -> opened
  • close -> closed
  • mat-menu
    • close -> closed
  • matMenuTriggerFor
    • onMenuOpen -> menuOpened
    • onMenuClose -> menuClosed
  • mat-chip
    • onSelectionChange -> selectionChange
    • remove -> removed
    • destroy -> destroyed
  • mat-tab-group
    • selectChange -> selectedTabChange

Features

  • table: add MatTableDataSource (#6747) (a9600e7)
  • dialog: support minWidth, minHeight, maxWidth and maxHeight (#7488) (57f19cd)
  • overlay: new keyboard dispatcher for targeting correct overlay (#6682) (a2ca4d6)
  • snack-bar: set snack bar to be responsive. (#7485) (5b7982f)
  • sort: use existing intl provider if one exists (#7988) (c8df2c1)
  • dialog: add optional generic param for config data (#7447) (b29ac45), closes #4398
  • Most directives / components now define an exportAs name (#7554) (fa441bc)

Bug Fixes

  • block-scroll-strategy: disable smooth scrolling before restoring scroll position (#8132) (75bccde), closes #7139
  • button: focus styles not applied to programmatically focused buttons (#5966) (a0bb1a3), closes #7510
  • button-toggle: support two-way binding of value (#7911) (ee4915c)
  • card: change image path to https in example (#7800) (65d3630)
  • chip-list: use role = listbox only if chip list is not empty (#7664) (dc76c09)
  • chips: programmatically selected chip stealing focus (#7978) (8168667)
  • datepicker: allow DateAdapter authors to have more control ove… (#7346) (9fa075e)
  • datepicker: use disabled state from FormControl (#7514) (66e71c8)
  • dialog: don't block other dialogs from opening while animating (#8051) (cc4fc11), closes #6560
  • drawer: not restoring focus on close (#7668) (3041124)
  • drawer: unable to toggle while drawer is animating (#6810) (085827f), closes #6376
  • expansion-panel: prevent content from being clipped (#7617) (aa77aa1)
  • focus-trap: server-side rendering error (#7635) (f7a12b6), closes #7633
  • focus-trap: update focus trap attrs to camel case #6799 (#6960) (c663fad)
  • form-field: fix underline at different zoom levels (#7567) (5cffd7c)
  • form-field: remove 200px width since it messes up flex layouts (#7083) (160a511)
  • form-field: remove specific mention of matInput in error (#7727) (f17cb99)
  • icon: use SafeResourceUrl in getSvgIconFromUrl (#7535) (291a87c)
  • input: remove IE clear icon (#8095) (2fa679b), closes #8076
  • menu: add typography mat-font-weight (7fe1b81)
  • menu: make @output names consistent #6677 (#8053) (b2dd17a)
  • menu: not handling keyboard events when opened by mouse (#4843) (d822a39), closes [#4991](https://github...
Read more

marble-mustache

05 Oct 23:44
Compare
Choose a tag to compare

Highlights

  • Progress spinner is now entirely css-based.
  • Fixed sidenav: the sidenav can now be configured to use fixed positioning. This resolves a longstanding issue where sidenav-container would always introduce a scrolling region.
  • mat-select is now used inside mat-form-field. This makes all of the existing form-field features available with mat-select, including hints, errors, prefixes, and suffixes. This also ensures that mat-select and matInput have a consistent presentation.
<mat-form-field>
  <mat-select placeholder="State">
    <mat-option *ngFor="let state of states" [value]="state">{{ state }}</mat-option>
  </mat-select>
</mat-form-field>

Breaking Changes

  • Previously the ScrollDispatcher.scrolled subscription would react both on scroll events and on window resize events. Now it only reacts to scroll events. To react to resize events, subscribe to the ViewportRuler.change() stream.
  • UniqueSelectionDispatcher, UniqueSelectionDispatcherListener and UNIQUE_SELECTION_DISPATCHER_PROVIDER are no longer
    available from @angular/material and instead must be imported from @angular/cdk/collections
  • isFocusTrapEnabled is now properly marked internal.
  • The OverlayRef.getState method has been renamed to OverlayRef.getConfig.
  • defaultErrorStateMatcher has been replaced by ErrorStateMatcher. For more info, see the input docs.

Features

  • autocomplete: add md-autocomplete classes to overlay panel (#7176) (f8cd790), closes #4196
  • dialog: add datepicker dialog and popup classes for easy styling (#7013) (0ff8d5d)
  • menu: support typeahead focus (#7385) (f0d20ca)
  • nav-tabs: add mat-tab-label-active class to active nav tab labels (#7508) (00e9338)
  • progress-spinner: switch to css-based animation (#6551) (630dfad)
  • select: add support for custom error state matcher (#7443) (a774688), closes #7419
  • select: make select work inside form-field (#6488) (d914cc4)
  • selection-model: de/select multiple values at the same time (#7001) (e52beeb)
  • sidenav: Add support for fixed sidenavs (#6712) (61579bc)
  • sort: add enter and leave arrow animations (#7180) (2d350a0)
  • table: add row when predicate (#6795) (0875b85)
  • viewport-ruler: add common window resize handler (#7113) (3b0915a)

Bug Fixes

  • add exportAs to missing components (#7392) (31e9775), closes #7361
  • remove all md prefixes (#7241) (20a23f1)
  • slide-toggle: report change to model before firing a change event (#7076) (c82fca8), closes #7074
  • remove cdk re-exports from @angular/material (#7112) (f9b5ccd)
  • autocomplete: don't open panel for readonly inputs (#7271) (5f8615f), closes #7269
  • autocomplete: emit closing action for escape keydown event (#6250) (f4673a5)
  • autocomplete: empty not cleaning up on tab (#7270) (6be0462), closes #7268
  • autocomplete: error if panel is added asynchronously (#7078) (504ba70), closes #7069
  • autocomplete: remove invalid aria markup (#7107) (6bd6b9f), closes #7100
  • button: allow for elevation to be overwritten (#7305) (92a868e), closes #7264
  • calendar: not reacting to min/max boundary changes (#7234) (eb012cc), closes #7202
  • checkbox: defaulting to invalid name and value attributes (#7130) (26788f1)
  • checkbox: support native tabindex attribute (#6793) (0270cf5)
  • chips: do not set chips value if there's no ngControl or value (#7285) (d9ba13f)
  • chips: fix chip list focus and keyboard behaviors (#7319) (f166468)
  • common: don't log doctype warning when rendering server-side (#6833) (f8ed442)
  • common-module: check if computed styles are available (#7003) (5da9e64), closes #7000
  • datepicker: make sure _datepickerInput exists before accessing its (#7033) (2129b7a)
  • dialog: directionality not injected into child components (#7111) (daa3880)
  • drawer: backdrop not transitioning on close (#6651) (80310a5)
  • drawer: drawer container animating when open by default (#7129) (4d278dd), closes #7007
  • drawer: drawer container not reacting to drawer removal (#7060) (b0b91f4), closes #6271
  • drawer: open event not firing on init (#7214) (ba5653d), closes #7208
  • input: apply readonly attribute when readonly (#7439) (01622b1)
  • input: don't highlight container when readonly input is focused (#7273) (f076390)
  • input: make autosize work inside tabs & stepper (#7341) (c6824d5)
  • list-key-manager: align matching logic with native listbox (#7212) (846cc13)
  • list-key-manager: don't focus disabled items in typeahead mode (#7382) (1823b2f)
  • menu: multiple close events for a single close (#7037) (2dcb76c)
  • **m...
Read more

carapace-parapet

21 Sep 22:19
Compare
Choose a tag to compare

Highlights

  • Each @angular/material component is now bundled into its own javascript file. This will allow
    tools like webpack to more easily load only the components being used in an application.
  • New stepper component! The base behavior lives in @angular/cdk with Material Design flavors in
    @angular/material.

Breaking changes

  • Angular Material now requires Angular 4.4.3 or greater
  • MaterialModule has been removed. (cf1ece0) (#6803)
    See the deprecation notice from beta.3 for more information.
  • MdCoreModule has been removed. Most of its functionality has been moved to @angular/cdk over
    the last few releases.
  • FocusOriginMonitor has been renamed to FocusMonitor and moved to @angular/cdk.
  • chip-list: The outputs select and deselect have been removed in favor of a single
    onSelectionChange output.
  • overlay: OverlayState has been renamed to OverlayConfig
  • overlay: Now that the Overlay is part of the cdk rather than Angular Material directly,
    the themeClass property has been removed. To add a class to the
    overlay for theming, you can do
overlayContainer.getContainerElement().classList.add('my-theme-class');
  • DateAdapter method getISODateString has been renamed to toIso8601 and a new method
    fromIso8601 has been added.

Deprecation of "md" prefix.

In earlier betas, we've had a compatibility mode that allowed people to use either "md" or "mat"
as the selector for Angular Material components. This was created so that these components could
live side-by-side with AngularJS Material without CSS from
the two libraries colliding.

For beta.11, we've made the decision to deprecate the "md" prefix completely and use "mat" moving
forward. This affects all class names, properties, inputs, outputs, and selectors (CSS classes were
changed back in February). The "md" prefixes will be removed in the next beta release.

You can automatically update your projects with the angular-material-prefix-updater tool.
Check out the tool's page for instructions on how to run.

Why are we doing this?

We like the "md" prefix too! We added compatibility mode in order to keep "md" around, but over
time we found that there were too many downsides to continue supporting both prefixes at the same
time:

  • Many users found the fact that the CSS used "mat" while templates used "md" confusing.
  • Users in compatibility mode found that having "mat" in their templates while TypeScript class
    names remained "Md" to be unfriendly.
  • Making both prefixes available consistently through templates required adding many
    getters/setters that aliased the "true" property
    .
    This ends up increasing payload size and complexity of the source code.
  • Compatiblity mode itself used broad directive selectors
    to enforce that only one prefix was used at a time. This causes a problem where this broad selector
    prevents Angular from throwing an error if an application uses a component without importing its
    NgModule.

Why not change the styles in AngularJS Material?

We explored this option early on (before creating compatibility mode). We found that changing the
library's styles such that they wouldn't affect the Angular Material components would increase
the specificity. This would have been a significant breaking change, as it would have potentially
broken countless custom styles that relied on a particular specificity working.

Bug Fixes

  • autocomplete,select: inconsistent disabled option coloring (#6640) (454781d), closes #6638
  • autosize: not resizing on programmatic changes (#6654) (89fea50), closes #5247
  • button-toggle: border radius ignored if option is selected (#6699) (82e14f8), closes #6689
  • checkbox: label content should not wrap (#6674) (9acab86), closes #6671
  • chips: set appropriate aria-orientation (#6464) (a37aa6a)
  • datepicker: allow date or datetime strings in fromIso8601 (#7220) (8436f8c)
  • datepicker: allow ISO 8601 strings as inputs (#7091) (d2ceb2c)
  • datepicker: backdrop class should be mat- (#7056) (2b61eb6)
  • datepicker: Create a new injection token to avoid overriding LOCALE_ID (#6708) (2635cad)
  • datepicker: fix wrong datepicker-input value for non MM/DD/YYYY locales (#6798) (29399b8)
  • datepicker: makes sure the datepickerInput is registered (#7049) (e4d48d7)
  • datepicker: toggle not reacting to disabled state changes in datepicker or input (#6964) (85993d3)
  • expansion-panel: dark theme header hover color (#6616) (21c68ad)
  • form-field: add aria-owns to label element (#6683) (4191b4d)
  • form-field: placeholder not floating if autofilled (#6839) (602a861), closes #6837
  • grid-list: avoid unnecessary calc declarations (#6745) (255611b)
  • grid-list: styles not cleared when switching to a different styling mode (#6660) (87d607e), closes #4047
  • input: remove resize handle from non-textarea inputs (#6768) (1272f03), closes #6757
  • list: subheader margin being overwritten by typography (#6735) (efe483a)
  • menu: multiple close events for a single close (#6961) (1cccd4b)
  • menu: nested menu hover not working when trigger is added lazily (#6807) (6b5100b), closes #6731
  • menu: nested trigger staying highlighted after click (#6853) (04bf3d1), closes #6838
  • overlay: rename OverlayState to OverlayConfig (#6972) (1cfce8d)
  • progress-bar: query mode not reversing direction in rtl (#6922) (8a21881)
  • select: extra whitespace around placeholder (#6955) (9fe6386), closes #6923
  • selection-list: do not coerece option value to boolean (#6983) (dfe01f2)
  • selection-list: proper style for disabled options (#6829) (547d11f)
  • slide-toggle: remove side-margin if slide-toggle label is empty (#6881) (a1ec81a), closes #6868
  • slide-toggle: support native tabindex attribute ([#66...
Read more

découpage-panjandrum

30 Aug 00:01
Compare
Choose a tag to compare

Highlights

  • Over 140 bug fixes
  • Nested menus
    • Nested menus
      • Nested menus!
  • Autocomplete supports md-optgroup
  • Overlay moved to @angular/cdk
  • New component MdSelectionList
  • md-input-container renamed to md-form-field (while still being backwards compatible)
  • Almost all components now use OnPush change detection (dialog being the exception)
  • You can now get back the EmbeddedViewRef when attaching a TemplatePortal
  • MdSidenav has been split into MdSidenav and MdDrawer. The MdSidenav is now meant to be
    used for top-level application navigation, while the drawer is meant to be used for more local
    split views. While there are no differences introduced between the two in this release, future
    releases will see different features added to each

Breaking changes

  • Imports from @angular/cdk are now scoped to a specific sub-package. For example, if you
    previously had:
import {LiveAnnouncer, Overlay, Directionality} from '@angular/cdk';

You will now need to write:

import {LiveAnnouncer} from '@angular/cdk/a11y';
import {Directionality} from '@angular/cdk/bidi';
import {Overlay} from '@angular/cdk/overlay';

This helps ensure you're only pulling in the pieces of the cdk being used as well as providing more
context about what an imported symbol is being used for.

The current set of public @angular/cdk subpackages are:
a11y, bidi, coercion, collections, keycodes, observers, overlay, platform, portal, rxjs,
scrolling, table.

If you are using SystemJS, each package you use must be added to the SystemJS configuration.

  • All Overlay code has been moved from @angular/material to @angular/cdk. The symbols are
    still re-exported through @angular/material, but these re-exports will be removed in a
    subsequent release.
  • cdkScrollable, ScrollDispatcher, and ViewportRuler have been moved from overlay into its
    own scrolling subpackage in @angular/cdk.
  • input: Inputs have a width of 200px by default (similar to native input elements). The
    width can be overridden by via the mat-form-field css class.
  • input: CSS classes have changed from mat-input-container- to mat-form-field-.
  • input: md-prefix and md-suffix are now mdPrefix and mdSuffix.
  • portal: TemplatePortal now requires a generic type (C) to align with TemplateRef.
    This will usually be any.
  • portal: Attaching a template portal will now return an EmbeddedViewRef<C> instead of an
    empty Map.
  • observe-content: ObserveContentModule has been renamed to ObserversModule
  • overlay: PositionStrategy now has an attach method and no longer passes the overlay
    DOM element to apply.
  • datepicker: You must now use a date object (of whatever type your DateAdapter uses) rather
    than a string when setting the value of the datepicker programmatically (through value, ngModel,
    or formControl).
  • datepicker: mdDatepickerToggle is now an element <md-datepicker-toggle> with a for
    property that points to the MdDatepicker instance
  • datepicker: NativeDateAdapter will now use Angular's LOCALE_ID instead of the browser's
    locale.
  • sidenav: CSS classes have changed from mat-sidenav- to mat-drawer-
  • theming: The nonstandard 0 and 1000 hues have been removed from the mat-gray palette
  • chips: The selectable property of the md-chip-list has
    now been moved to md-chip to maintain consistency with the new
    removable option.

If you used the following code,

<md-chip-list [selectable]="selectable">
  <md-chip>My Chip</md-chip>
</md-chip-list>

you should switch it to

<md-chip-list>
  <md-chip [selectable]="selectable">My Chip</md-chip>
</md-chip-list>

Deprecations

  • All dash-case @Directive selectors are deprecated in favor of the camelCase equivalent. The
    dash-case selectors will be removed in a subsequent release. Some examples include:
Old New
md-line mdLine
md-tab-link mdTabLink
md-tab-label mdTabLabel
md-card-avatar mdCardAvatar
  • md-input-container has been renamed to md-form-field. The old selector will be removed in a
    subsequent release. This is in preparation to making md-select a child of md-form-field
    such that both select and input share the same features and appearance.
  • For camelCased directives, each corresponding @Input() is now also prefixed. For example,
    cdkConnectedOverlay now has inputs for
    cdkConnectedOverlayOrigin, cdkConnectedOverlayPositions, etc. The class members themselves are
    unchanged. The unprefixed inputs will be removed in a subsequent release. Affected directives are
    cdkPortalHost, cdkConnectedOverlay, mdTooltip, mdTextareaAutosize, and mdMenuTriggerFor.
  • MdCoreModule is deprecated and will be removed in a subsequent release now that most of its
    functionality has been moved to @angular/cdk
  • Reminder that MaterialModule is deprecated and will be removed in a subsequent release (see
    changelog from beta.3 for more information).

Features

  • autocomplete: emit event when an option is selected (#4187) (2dd5c7c), closes #4094 #3645
  • autocomplete: support for md-optgroup (#5604) (e41d0f3), closes #5581
  • cdk: move cdkScrollable, ScrollDispatcher, and ViewportRuler out of overlay (#6547) (0f6a2ec)
  • cdk: move overlay into cdk (#6100) (4d82f83)
  • chip: add aria-selected to chip (#5920) (281de25)
  • chips: Add removal functionality/styling. (#4912) (c82aca9), closes #3143
  • chips: add user defined tab index to chip list (#6073) (9eb9ddf)
  • datepicker: close calendar after choose the same date again (#6323) (9ba5d84)
  • datepicker: export unexported components for potential extension (#6314) (7bc648b)
  • dialog: add beforeClose method (#6377) (cdbf305)
  • dialog: expose backdrop clicks (#6511) (df28c3d)
  • dialog: open dialog API improvements (#6289) (8b54715), closes #6272
  • expansion-panel: add the ability to disable an expansion panel (#6529) (921432a), closes #6521
  • focus-trap: return whether shifting focus was successful (#6279) (7626c51)
  • menu: add indicator to menu items that trigger a sub-menu (#5995) (a51f82f)
  • menu: add injection token for overriding the default options (#5483) (3cb3945), closes #5479
  • menu: add nested menu functionality (#5493) (1e0c1fc)
  • menu: increase nested menu elevation based on depth (#5937) (91f7bf7)
  • native-date-adapter: use default locale from LOCALE_ID (#5419) (c09e8a7), closes #5393
  • option: support for disableRipple binding (#5915) (addf1ce)
  • overlay: add maxWidth and maxHeight (#6508) (9904e56)
  • overlay: add providers for overriding the scroll strategies per component (#5134) (184a6e4), closes #4093
  • overlay: support setting multiple panel classes (#6326) ([a190de7](a...
Read more

plasma-abacus

06 Jul 17:10
Compare
Choose a tag to compare

Highlights

  • This version marks the release of @angular/cdk (component dev kit)! This package contains
    general building blocks for UI components decoupled from the visuals of Material Design. In the
    initial release, code from Angular Material's core/ have been moved for a11y/, bidi/,
    coercion/, observe-content/, platform/, portal/. The @angular/material package now
    re-exports these symbols, marked as deprecated. The re-exports will be removed in a subsequent
    release.
  • Initial version of data-table component. There is both a <cdk-table> (the core) and the
    <md-table> (with Material Design styles). See the documentation on material.angular.io for more
    information.
  • Initial version of <md-paginator> and <md-sort-header> components, which can be used either
    with <md-table> or any other table.
  • Both @angular/material and @angular/cdk are now strict null compliant.

Breaking changes

  • @angular/material now depends on @angular/cdk as a peer dependency.
  • Some types have expanded to include | null or | undefined for strict null compatibility. If
    your application uses strict null checks, you may have to update the types in your app to match up
    with the more accurate types coming from Angular Material.
  • Angular Material no longer adds RxJS operators to the prototype of Observable. If your app
    depended on these operators being added by Angular Material, you will need to import them
    explicitly.

Bug Fixes

  • autocomplete: allow number zero as value (#5364) (9137fd9), closes #5363
  • autocomplete: don't scroll panel when option is visible (#4905) (d3af57d)
  • autocomplete: not closing when tapping away on mobile (#5260) (1dcaca7)
  • autocomplete: reopening when clicking an option in IE (#5172) (fe31210), closes #5165
  • autosize: resize when form value changes. Fixes #4657 (#5315) (8c9c11a)
  • button-toggle: fix standalone button toggle style (#5121) (3d8c833)
  • datepicker: pass layout direction to touchUi dialog (#5052) (8b6efb1)
  • datepicker: use theme foreground color (#5290) (51bf26e)
  • dialog: set aria-labelledby based on the md-dialog-title (#5178) (aee984a)
  • directionality: error on platform-server (#5234) (49dfe60)
  • input: theming mixin error (#5254) (37efb54), closes #5232
  • input: underline showing at end if text-align is set (#5280) (5c9391d), closes #5272
  • memory: Unsubscribe event listeners when using Observable.fromEvent (#5325) (1b351cd)
  • menu: role being set on the wrong element (#5191) (2239668)
  • overlay: remove webkit tap highlight from backdrop (#5258) (8feddd4)
  • select: align first option to trigger when it is inside a group (#5153) (d39cb12)
  • select: expose focus method (#5255) (7b2d4ae), closes #5251
  • select: md-optgroup not using typography styles (#5193) (b5bf6f5)
  • select: page scrolling down when selecting option with space (#5192) (2361385)
  • snackbar: clear timeout upon dismiss (#4860) (146160c)
  • tabs: server-side rendering error (#5348) (0174377)
  • unique-selection-dispatcher: remove listeners on destroy (#5164) (f9bbbe7)

Features

  • data-table: initial version. Too many commits to list.
  • directionality: a provider to get directionality (#4044) (61d979e), closes #3600
  • input: add custom error state matcher (#4750) (f73cc97)
  • pagination: initial pagination component (#5156) (85fb00a)
  • sort: add ability to manage and display sorting (#5307) (b328d36)
  • tab-nav-bar: support disabling tab links (#5257) (fc809ed), closes #5208
  • add support for strict null checks (#5094) (2bf7024)
  • remove uses of rxjs patch operators (#5314) (e488e3f), closes #2622
  • move a11y, bidi, platform, rxjs, and portal to cdk (#5386) (fde35e4)
  • move observe-content to cdk (#5438) (b00f838)

glass-delicatessen

19 Jun 21:45
Compare
Choose a tag to compare
glass-delicatessen Pre-release
Pre-release

Highlights

  • New md-expansion-panel and md-accordion components! Documentation for these will be coming soon.
  • New typography extension to the theming API!
  • Angular Material should generally work much better with @angular/platform-server. There are still
    a few bugs, but things should mostly work.

Bug Fixes

  • autocomplete: handle escape key (#4703) (9e2a66c)
  • autocomplete: show hover style on selected options (#4724) (b3b6fda)
  • autocomplete: throw better error when autocomplete doesn't have a panel (#4851) (70b31f1), closes #4844
  • button: remove webkit tap highlight (#4953) (3ad80e4)
  • button-toggle: remove redundant blocking touchstart listener (#4947) (1e92545), closes #4221
  • button, tabs: potential clash with typography styles (#4915) (615fa2a)
  • checkbox: margin for empty checkboxes incorrectly added (#4730) (8d9bbbf), closes #4720
  • checkbox, radio: fix checkbox label not read in JAWS (#4610) (5c48949)
  • datepicker: focus trap not working inside popup (#4839) (157bda1)
  • datepicker: generate api docs (#4756) (be8d3b2)
  • datepicker: inert calendar arrow direction in rtl (#4960) (22f0ea0)
  • datepicker: minValidator & maxValidation false errors (#4649) (b2c3ed0)
  • datepicker: restore focus to trigger element (#4804) (8860090)
  • datepicker: switch to typography api (#4950) (7f298f7)
  • dialog: add flex wrap to style (#4846) (9d4a34a)
  • dialog: blurry content and slow animation in IE (#4809) (c8b1e20)
  • dialog: componentInstance unavailable in afterClose (#4827) (cedf219), closes #4815
  • dialog: invalid text color in dark themes (#4849) (3e993b6)
  • dialog: partial keyframes animation error (#5020) (9c45865), closes #5019
  • focus-trap: focus initial element when zone stabilizes (#4867) (ce9d253), closes #4864
  • icon: remove automatic aria labelling and add a11y guidance (#4665) (657f0e8)
  • input: correct invalid colors (#4771) (2103907)
  • input: IE always adding scrollbar to textarea (#4917) (6aaddbf)
  • input: make input spacing match spec (#4788) (16b65e8)
  • input: set aria-invalid on mdInput element (#4757) (0c03946)
  • input: remove align input binding (#5141) (0aaeb69), closes #5140
  • input, cdk: a couple of server-side rendering errors (#5066) (97e35df)
  • list: set aria attributes to md-divider (#4925) (a240c9c)
  • menu: remove classes from inert element (#4800) (93a21c7), closes #4484
  • navbar: update ink bar when links change (#4897) (41c43cc)
  • overlay: emit attach and detach at appropriate times (#4880) (e98372e), closes #4871
  • portal: detect changes for portal hostview while before attaching. (#4370) (28d2ddd)
  • radio: label vertical alignment (#5120) (d3d6d26)
  • radio: make MdRadioButton change detection strategy OnPush (#2526) (97a9bdc)
  • select: consider value changes via arrow keys on closed select as user actions (#5112) (73aa43e), closes #5084
  • select: panel in multiple mode not overlapping trigger (#4952) (638a34a), closes #4943
  • select: unable to programmatically select falsy values (#4868) (2e3910c), closes #4854
  • sidenav: don't restore focus if focus isn't inside sidenav (#4578) (3bc82f6)
  • slide-toggle: switch typography level to body-1 (#5000) (436858e)
  • snack-bar: test error in IE (#5048) (79092bd)
  • tabs: fix tab translation animation in IE 11 (#4982) (#4986) (40f92c5)
  • tooltip: not rendering in IE and Edge without web animations polyfill (#4937) (22746ce), closes #4935
  • make material work with noUnusedParameters (#4946) (4b98f21), closes #4443

Features

Read more

amber-ansible

25 May 21:37
Compare
Choose a tag to compare
amber-ansible Pre-release
Pre-release

2.0.0-beta.6 amber-ansible (2017-05-25)

Bug Fixes

  • autocomplete: error when clicking outside instance without mdInput (#4573) (e6f7ace), closes #4555
  • autocomplete: restore focus to input when click on option (#4702) (eecf897), closes #4645
  • block-scroll-strategy: collapsing root node when enabled (#4638) (f11d46e)
  • button: complete ripple when button becomes disabled (#4372) (fce2868)
  • button: ripples blocking mouse events on user content (#4526) (9c4d601)
  • checkbox, radio: make disabled label disabled match spec color (#4507) (8159fcc)
  • chips: unable to tab out of chip list (#4605) (07a82ed), closes #4593
  • datepicker: calendar toggle submitting parent form (#4531) (84ea8b2), closes #4530
  • datepicker: export MD_DATE_FORMATS and MD_NATIVE_DATE_FORMATS (#4541) (58c252f), closes #4534
  • datepicker: make datepicker work in compatibility mode (#4686) (b5b762a)
  • datepicker: set cursor on clickable elements (#4542) (d2d67f5), closes #4533
  • datepicker: use default cursor on toggle when disabled (#4604) (1319355)
  • dialog: enable smooth scrolling on md-dialog-content (#4608) (3ae0dc6)
  • focus-origin: missing rxjs of operator (#4497) (05dbb90)
  • icon: handle icons as nodes (#4699) (3212411), closes #4680
  • input: continue checking for input child after initialization (#4569) (73d6814), closes #4551
  • input: thicken underline in error state, add underline animation (#4506) (0666207)
  • list-key-manager: remove handling for home and end keys (#4544) (2d16345), closes #3496
  • menu: close menu panel on escape (#4666) (210e57c), closes #3601
  • overlay: overlays potentially being rendered behind browser UI (#4664) (96549e8), closes #4650
  • platform: don't shadow window (#4622) (e8ab0da)
  • progress-bar: buffer animation not working on user-generated themes (#4525) (61f3987)
  • select: allow option with undefined or null value to clear selection (#3141) (13524c1), closes #3110 #2634
  • select: deselect old options when programmatically setting value (#4658) (db72b06)
  • select: option text color blending in with background on dark theme (#4568) (43e207c), closes #4560
  • slider: add aria-orientation (#4602) (0b5b624)
  • slider: make slider work with dark themes (#4489) (af48bb0)
  • snack-bar: remove text-transform uppercase (#4567) (82e53c5)
  • tabs: dynamic tab scrollbar showing while animating (#4524) (2a15cd7)
  • tooltip: not using trigger's text direction (#4413) (d8aeeaa), closes #4411
  • universal: gate platform checks on being on browser (#4635) (e4c7601)

Features

taffeta-admiral

13 May 00:22
Compare
Choose a tag to compare

Bug Fixes

  • list, option: fix ripples blocking mouse events on user content (#4503) (c4b3625), closes #4480

unobtainium-sunglasses

12 May 20:27
Compare
Choose a tag to compare
Pre-release

Breaking Changes

  • MdIconModule no longer imports HttpModule. If your application depended on Http being provided through MdIconModule, you should now directly import HttpModule into your application.
  • The forRoot method on all Angular Material modules has been removed. It was previously deprecated and a no-op. Importing the modules directly will have the same effect.
  • Angular Material now requires TypeScript 2.2, which adds support for mixins.

Highlights

  • New datepicker component! This is still very new, so please try it out and file any issues you encounter on Github.
  • You can now disable Material's global sanity checks (at your own risk). These checks include whether your theme file is included, that you have a doctype, and more. See the PR here.
  • Our support for Angular Universal should be much improved! Expect further improvements in subsequent releases.

Bug Fixes

  • autocomplete: not scrolling to active option when pressing home/end (#3709) (8d0cd04)
  • autocomplete: not updating the size while the panel is open (#4346) (bfeb515)
  • autocomplete: panel not being shown with delay and OnPush change detection (#3977) (efd3485), closes #3955
  • autocomplete: reposition panel on scroll (#3745) (81a6f8d)
  • autocomplete: unable to click to select items in IE (#3188) (78985b7), closes #3351
  • button: ripple color for raised buttons (#3829) (7f65f31), closes #2901
  • card: update color property to use theme's text color. (#3952) (5e7af26)
  • cdk: add camelCase selectors for cdk directives (#4054) (cb98270)
  • checkbox: do not set indeterminate when set checked programmatically (#4024) (de8b97f)
  • checkbox: no side margin if label has no content (#2121) (4e8d806), closes #2011
  • checkbox: set pointer cursor for checkbox (#4473) (b2f93b5), closes #4185
  • checkbox: support OnPush for disabled with forms module (#4087) (efb39da)
  • checkbox, radio: ripple error on focus event (#3869) (e22b55e), closes #3856
  • chips: wrong margin on single chip (#4366) (5d03c1a), closes #4359
  • compatibility: error in theme check with angular universal (#3872) (a65d2f4), closes #3870
  • compatibility: throw better error when wrong prefix is used (#3871) (2d50044)
  • connected-overlay: better handling of dynamic content (#4250) (525ce1e), closes #4155
  • core: remove deprecated forRoot functions (#3539) (c94f471)
  • core: export MdOptionSelectionChange (#4285) (af978cd)
  • dialog: capture previously focused element immediately (#3875) (29968b8)
  • dialog: close all dialogs on popstate/hashchange (#2742) (85bc3a6), closes #2601
  • dialog: fire afterClosed callback after all dialog actions are done (#3892) (ee1a5a7)
  • dialog: provide default value for MD_DIALOG_DATA token (#4120) (d1128fe), closes #4086
  • dialog: restoring focus too early (#4329) (afaa2dc), closes #4287
  • dialog: unable to press escape to close in lazy-loaded module (#3788) (3796f69), closes #3737
  • focus-trap: import rxjs first operator (#4400) (2c8faf6)
  • grid-list: export MdGridTile. Fixes #2408 (#4000) (9d719c5)
  • input: add back pointer-events none removed in #3878 (#4206) (fb1fabc)
  • input: allow pointer events on placeholder (#3878) (32b7426)
  • input: incorrect height with autosize (#4084) (21f8899), closes #4070
  • input: input placeholder not being hidden in IE under certain conditions (#4478) (fc73a4b), closes #4464
  • input: make start and end hints interact well when their text needs to wrap (#3979) (21cbf34)
  • input: placeholder not rendering in Chrome under certain conditions (#4405) (5e349d9)
  • input: single-line hints overflowing the parent (#4107) (0b9b582), closes #4051
  • input-container: new attribute hideRequiredMarker (#4237) (6c31adb), closes #3681
  • list: fix padding for list items (#4486) (d1d2e18)
  • list: icon size in dense mode (#3913) (f412499), closes #3886
  • list: remove overflow hidden from content (#4426) (078aa19)
  • list: set explicit box-sizing on icon (#3876) (e263fb7), closes #3863
  • menu: incorrect panel max height (#4214) (d3210e7)
  • menu: unable to bind to xPosition and yPosition (#4213) (1fd50aa), closes #4169
  • menu: wrong icon margin in rtl (#4225) ([ba6b9bb](htt...
Read more

cesium-cephalopod

07 Apr 21:13
Compare
Choose a tag to compare
cesium-cephalopod Pre-release
Pre-release

Breaking changes

Package structure

The package structure for Angular Material has changed to match that of Angular itself. This has
a few ramifications on applications consuming Angular Material:

  • Deep imports will no longer work, e.g., @angular/material/core/a11y. All public symbols
    should be imported directly from @angular/material. Deep imports have always been an anti-pattern,
    but our previous package structure inadvertently allowed them.
  • The imports for theming have changed.
    ** For prebuilt themes, you can now find the CSS files in the prebuilt-themes/ directory in the
    package root. For angular-cli projects, this will look something like
@import '~@angular/material/prebuilt-themes/deeppurple-amber.css';

** For custom themes, you can now import theming.scss directly from the package root. Again, with
angular-cli, this will look something like:

@import '~@angular/material/theming';

Removal of deprecated symbols

  • The deprecated, Md-prefixed aliases for LiveAnnouncer, Platform, and
    UniqueSelectionDispacther have been removed.

MaterialModule

  • MaterialModule (and MaterialRootModule) have been marked as deprecated.

We've found that, with the current state of tree-shaking in the world,
that using an aggregate NgModule like MaterialModule leads to tools
not being able to eliminate code for components that aren't used.

In order to ensure that users end up with the smallest code size
possible, we're deprecating MaterialModule, to be removed in the a
subsequent release.

To replace MaterialModule, users can create their own "Material"
modul within their application (e.g., GmailMaterialModule) that
imports only the set of components actually used in the application.

Angular 4

  • Angular Material now depends on Angular 4.
  • Now that animations have been refactored into a separate package, users of @angular/material
    need to explicitly import BrowserAnimationsModule (or NoopAnimationsModule) from
    @angular/package-browser/animations as well as installing @angular/animations.

Bug Fixes

Read more