This repository was archived by the owner on May 20, 2023. It is now read-only.
v0.9.0-beta
Please note that an up-to-date copy of dev channel Dart SDK is required (at
least 2.0.0-dev.65 as of this writing) to use this version with AngularDart
v5.0.0-beta.
Pub transformers are no longer used. Instead, use the new
webdev CLI, or, for advanced
users, the build_runner CLI.
Please see the Dart 2 migration guide for
more details.
Updated Dependencies
- angular: 5.0.0-beta
- angular_forms: 2.0.0-beta
New Components
- Material Stacking Drawer
- Material Stepper
- Material Slider
- Material Date/Time Picker components
- Material Menu components
Component Updates
App Layout
- Update Material Header
z-indexto 1. - Add support for 0 or 2 drawers.
- Add mixin for permanent/persistent drawers and fix mixin for temporary
drawers. - Add mixin for drawer width.
- Provide list-item changes as a mixin to be used in components that wrap drawer
contents.
Button Decorator
- Allow role to be customized.
Material Auto-Suggest Input
- Improve keyboard navigation behavior.
- Prevent marking itself as dirty when it receives initial form value.
- Add aria label to close button.
- Wait for the popup to be visible before activating dropdown items.
- Stop escape keyboard events from propagating after they are handled.
- Disallow deselection when clicked on a selected item with single selection
models. - Ensure input text is initialized correctly regardless of input order.
- Fix auto-scrolling issue on Firefox.
- Add ability to give a tooltip for the clear icon.
- Replace
ngOnChanges()withngAfterChanges(). - Protect against method being called after it is destroyed.
Material Button
- Remove styles for vertically aligned icon with text buttons.
- Update size and position of text labels for icon buttons.
- Allow icon button items to be created vertically.
- Remove override of
min-widthforyes-no-buttonsas it is now the right
value in material-button. - Update highlight styling.
- Add compact mode.
- Update min-width to new spec.
- Update dense mixin to only apply to non-icon buttons.
- Add mixins for no hover highlight.
- Add mixins to set icon button padding.
- Update hover, focus, and disabled styles to be inline with Material Spec.
- Update mixin names and fix to prevent styles leaking outside of the component.
Material Checkbox
- Remove deprecated
material-checkbox-thememixin. - Add
material-checkbox-colormixin and deprecatematerial-checkbox-theme. - Change
include-in-checkboxdefault to false incheckbox-colormixin to
prepare for it's removal. - Migrate from the deprecated Glyph component to Material Icon.
- Support
onDisabledChangedcallback from angular_forms. - Add mixin to hide text label.
- Prevent marking itself as dirty when it receives initial form value.
- Add mixin to remove right margin.
- Remove negative top margin.
- Implement
Focusable. - Implement onTouched logic.
- Fix disabled state to match Material Spec which is a light grey not a certain
opacity of the checkbox.
Material Chips
- Allow overriding left-icon-color.
- Update margin on dense theme.
Material Date Picker
- Add dynamic Date Picker Comparison Options
- Allow user create their own comparison option.
- Provide default comparison options (previous period, previous year, custom).
- New interface
SupportedComparisonOptionsfor
MaterialDateRangePickerComponent. - New interface
DisabledforDateRangeInput. - Use updated class names for
ShowHideDirective. - Fix direction of dropdown arrows in RTL locales.
- Allow error messages to be shown on range picker inputs.
- Add a mixin to remove left padding from the time picker.
- Re-render calendar and month picker when date limits change.
- Switch to bool inputs instead of
getBool(). - Improved keyboard handling.
Material Date Range Picker
- Improved support for high browser zoom.
Material Date Time Picker
- Update so that it sets time to default value if date is picked but time is not
picked.
Material Dialog:
- Set default
max-heightandmax-width. - Add full screen mode.
- Add support for
<h1>element in title. - Add mixin for bottom border on header.
- Remove
preserveWhitespace: false.
Material Expansion Panel
- Fix issue where header could extend beyond the max-width of its container.
- Add a mixin for no borders.
- Add a mixin to show header actions on the bottom instead of on the left.
- Add mixin to set alignment in the header.
- Remove
transform: scaleyfrom expand animation. - Add mixin for top-aligning expand button.
- Add option to move the expand button to the left side.
- Improve animations.
- Add mixin for additional padding.
- Allow icon to be hidden and allow additional buttons in the header.
- Increase mixin specificity.
- Add option show/hide the cancel button.
- Add mixin for flat on collapse.
- Smooth appearance/disappearance of expansion panel contents.
- Add mixin to allow change the panel name min width.
- Remove
preserveWhitespace: false.
Material FAB
- Update shadow styles.
Material Icon
- Update mixins to allow overriding elements which have the size attribute set.
- Add flag to mirror icon.
- Roll back change that flipped help icon in RTL.
- Add help icon to the list of icons flipped when direction is RTL.
- Flip half_star icon when in RTL.
Material Input
- Don't override unfocused underline color when the input is invalid.
- Add field to mixin to specify the label color when there is an error and the
label is focused. - Support
onDisabledChangedcallback from angular_forms. - Push change detection when marked as disabled.
- Add disabled class to
"top-section"when the input is disabled. - Add mixin to allow hiding only the placeholder in the bottom section.
- Support to fill in error text trailing.
- Fix error color for floating label when an error is shown in the input.
- Add mixin to change the font size.
- Add
aria-labelandaria-invalidattributes back to the input field. - Allow values to be selectable when disabled on all browsers. This is
potentially BREAKING. - Pass aria attributes through to the inner input element. Includes material
auto suggest component. - Add an aria-label that can override the label.
- Add mixin for hiding underline.
- Add mixins for trailing text color and padding.
- Show character count when maxCount is null.
- Add attribute to set aria-label when a visible label is not desired.
- Extend the style rules applied on
input[type=text]to cover the hover and
focus states. - Add mixin padding.
- Don't override underline color when the input is invalid.
- Protected against input being destroyed and blur event still happening.
- Add mixin for fixed width error text.
- Use markForChanges on inputs since they are being set by a directive and not
the template and so change detection doesn't happen automatically. - Allow numerical values to be internationalized in number validators.
- Add option to have a material number input component format its contents on
blur. - Fix unexpected
)in selector forMaterialInputDefaultValueAccessor.
Material FAB Menu
- Update close bar style.
- Change menu width to 280px if menu has icons.
- Fix transitions.
- Simplify material-fab-menu animation & allow it to scroll on small screens.
- Update size mixin.
Material Menu
- Allow setting the class for each affix item.
- Add helper constructor for flat menus.
- Add mixin for changing the icon color of menu item.
- Wrap long text in Fab Menu.
- Horizontally align the expansion icon with the label.
- Allow mixins to customize popup contents by specifying additional CSS classes
added to the popup content. - Match the color of the group header label to item.
- Add mixin to show the same font for group label.
- Implement
Focusable. - Add a flag to
MenuItemGroupto explicitly specify a separator. - Trigger selected event when an item from sub-menu is selected.
- Change mouse pointer on category to make it clear that it is clickable.
- Allow expanding on group title clicks.
- Add a style variation to menu group to allow emphasizing the first group.
- Add a feature to menu item group to make it expandable.
- Add button content customization.
- Add mixin for lowercase button text.
Material Popup
- Automatically restore focus on the popup source element when user tabs out.
- Fix border radius mixin.
- Enforce space constraints on content.
- Simplify positioning algorithm.
- Disable constrain-to-viewport in dropdowns via a new, separate
@Input. - Guard against
container = nullinPopupHierarchy.onTriggersOutside(). - Increase the animation speed according to material specs.
- Listen to
DomService.trackLayoutChangestreams foroverlayRepositionLoop
popups.
Material Progress
- Add mixin for taller bars with rounded ends.
- Fall back to the non-optimized animation if the width is 0 after view init.
Material Radio
- Remove
material-radio-thememixin. - Add
roleattribute. - Add
material-radio-colormixin and deprecatematerial-radio-theme. - Support
onDisabledChangedcallback from angular_forms. - Internal cleanup.
- Protect against the group being destroyed before the
tabIndexgets reset. - Migrate away from QueryList.
- Update disabled color to match spec.
Material Ripple
- Update animation to match new spec.
Material Select
- Update ARIA
labelledbyfor improved a11y. - Update to
activedescendantARIA pattern for a11y. - Ensure button text displays correctly when an error message shows below it.
- Support focus on dropdown button when dismissed via keyboard.
- Fix focus bug when clicking on a different focusable element.
- Pipe through customized aria role,
labelby, andhaspopupto the dropdown
button. - Fix selected color mixin on vertical selection indicator.
- Add aria states/properties to indicate selected/checked in item.
- Add proper aria attributes to make
material-dropdown-selectscreen reader
accessible. - Add mixin to set disabled color.
- Add mixin to allow for error text margin.
- Refactor
constructEncapsulatedCssto utils. - Add option to dropdown to disable deselecting on trigger.
- Allow content to be projected as list header and list footer in dropdown.
- Implement
FocusableinDropdownButtonComponent. - Fixed an alignment issue with the icon on dropdowns.
- Add a
FactoryRendererinput. - Wait for the popup to be visible before activating dropdown items.
- Stop escape keyboard events from propagating after they are handled.
- Fix
MaterialSelectItemdisplaying two times the label whenfactoryRenderer
is used. - Fix auto-scrolling issue on Firefox.
- Add mixin to change
material-select-dropdown-itempadding. - Add mixin to set select item padding.
- Add mixin to set selected item color.
- Allow customization of Material Dropdown Select's role.
- Add mixin for pointer events on Material Dropdown Select Items.
- Fix baseline alignment of dropdown-button in Firefox.
- Add
showButtonBorderinput to Material Dropdown Select component. - Cleanup unused styles.
Material Slider
- Add disabled property.
- Update size of click target.
Material Stepper
- Use
scrollHostProvidersinstead of deprecatedscrollHostModule.
Material Tabs
- General cleanup: remove unneeded directive, use absolute imports, and fix
spelling error. - Add support for
disabledattribute. - Make
text-wrapmixin more generic. - Add two-way binding on fixed strip activeTabIndex.
- Increase space between labels.
Material Time Picker
- Fix one hour difference after daylight saving.
Material Tree
- Use item identity to remember expanded state.
- Add a
shouldExpandAllWhenFilteredinput. - Adds an option to select parent nodes in a single selection model tree.
- Bugfix for auto selection all siblings due to an error being thrown which
stops event.stopPropagation from firing. - Add an option to material tree group to render a "View more" link for hidden
options. - Migrate away from QueryList.
- Autofocus the filter when
MaterialTreeDropdownis opened, but not when it
closes. - Improve latency of
MaterialTreeFilter. - Clear filter inside the popup when
MaterialTreeDropdowncloses.
Material Toggle
- Fix
aria-pressedstate. - Add mixin to display label on the right.
Material Tooltip
- Fix comment which was using deprecated
ElementRef. - Allow paper tooltip CSS to be customizable.
- Allow
'error_outline'as a valid icon. - Prevent paper tooltips from overflowing on small screens.
- Change
tooltipSourcedirective to usestyle.cursor. - Update line height to
20pxper internal spec. - Fix
material-paper-tooltipcontent that are change detected and using
deferred content by having the visible property be set in an async manner so
that the value isn't added in the middle of a change detection loop.
Material Yes/No Buttons
- Remove
Visibility.all. - Update mixins to use CSS shimming.
Reorder List
- Calculate the full height/width of the elements.
- Restrict when a dragged item's target index is incremented or decremented.
Scorecard
- Remove the
:hostfrom the padding mixin so it is not required to be used at
the top level. - Add stacking context.
- Only update selected state if the scorecard is selectable.
- Fix misalignment on OS X with hl=ja.
- Selected color input overrides default color value in a selectable scoreboard.
- Add a tooltip field.
Other Updates
Selection Model
- Add empty, single, and multi constructors.
- Add
ignoreDeselectoption toSelectionModel.singleand deprecate
RadioGroupSingleSelectionModel. - Update to
SelectionModel.single(),SelectionModel.multi()etc. instead of
deprecatedSelectionModel.withList(). - Add support for
SingleSelectionModeltoSelectionModel.empty. - Add
SingleSelectionModelinterface withselectedValue()method. - Better support for the zippy expansion case.
- Add option to disable select all in the table selection model.
- Use generic type for table selection model
SelectableGetter.
Modal/Overlay
- Ensure parent modal is shown when the current modal is destroyed.
- Add DI modules to Laminate Overlay & Popup components.
- Update
PopupHierarchyto better handle cases with multiple modals. - Handle null pointer in
popup_source_directive. - Protect against a null pointer exception in laminate popup.
- Propagate CSS classes to the overlay element.
- Turn
overlayRepositionLoopon by default. - Use a reified Provider for
defaultPopupPositions. - Add support for minimum width and height to
PopupSizeProvider.
Miscellaneous
- Add
@mustCallSuperto the Disposer interface. - Add Add
ObservableView.values-- like.stream, except also with the
current value. - Add new CSS class names used by
ShowHideDirectiveto avoid conflicts with
Angular JS apps and remove the legacy versions. - Only focus when
autoFocusistruewhen usingAutoFocusDirective. - Update various components to use finals for
Intl.messages to improve
performance. - Add
HasDisabledinterface. - Annotate
Domservice.leap()visible for testing. - Add
mat-link-deepmixin to push the Material link styles everywhere. - Make mouse events with the shift modifier key a non-standard mouse event in
isStandardMouseEvent(). - Remove
IntersectionObserverbindings now that they exist in dart:html. - Add
onDisabledChanged()to allControlValueAccessorimplementations. - Add ShowHideDirective and GlobalEscapeDirective.
- Make
ShowHideDirectiveconstants private. This is potentially BREAKING. - Add a parameter to fail loudly when
TimeZoneAwareClockis used before it's
initialized, to prevent incorrect return values from being ignored. - Delete deprecated
LazyEventEmittersince it was no longer lazy and a
StreamController can be a simple drop in replacement. - Allow '[' for start of word of highlight match.
- Use
@visibleForTestingannotations. - Remove position: -webkit-sticky support.
- Update type of materialProviders so it can be used when bootstrapping.
- Create a new API for caching item renderers.
- Only add touch listeners if the primary input is touch.
- Add
IntersectionObserverbindings &onIntersectionstream toScrollHost. - Deprecate
getBool(), Angular supports it now natively. - Fix RTE when using item renderers as highlight renderers when there is a
custom factory renderer. - Fix componentRenderer logic.
- Add a feature detector for
position: sticky. - Migrate from Glyph to Material Icon.
- Remove unused table model.
- Remove the
getDynamic()method from properties helpers. - Remove uses of
.runtimeType. - Cleanup unused variables.
- Allow
material-scrollbarmixin to be used in global css (without angular). - Provide a path to use Component Factories when using code that was previously
using theComponentRendererpattern. - Continue migration from
SlowComponentLoadertoComponentLoader. - Continue migration from
LazyStreamControllertoStreamController. - Cleanup Angular static analysis warnings.
- Add optional punctuation around trackBy functions.
- Avoid reliance on dynamic typing to access properties.
- Add
@Inputto number validators. - Add Observable utilities.
- Add color contrast ratio utility.
- Remove deprecated box-sizing styles.
- Deprecate
ManagedZoneand replace withNgZone. - Remove unnecessary uses of
::ng-deep. - Support RTL selectors on any element.
- Remove usage of package UUID.
- Update sass_builder dependency to latest and use the post-process builder to
remove.scssfiles from the output.
Angular API Updates
- Migrate from
hostto new@HostListenerand@HostBindingsyntax. - Migrate from
ElementReftoElementorHtmlElement. - Set
visibilitytoVisibility.allon Directives that are expected to
be provided. Others will default toVisibility.local. This is potentially
BREAKING. - Cleanup unneeded
preserveWhitespace: falseandpreserveWhitespace: true
when components manage spacing around themselves and have been validated.
Dart 2 Updates
- Updates to conform to new Effective Dart guidelines.
- Prepare for change of
asyncbehavior in Dart 2. - Updates to stronger types for Dart 2.
- Fix uses_bottom_as_dynamic ("fuzzy arrow") errors.
- Fix Dart2 runtime cast failures and other Dart 2 fixes.
Documentation
- General documentation cleanup for
@Inputs and@Outputs. Improves
documentation generated by the component gallery.