Skip to content
This repository has been archived by the owner on Sep 5, 2024. It is now read-only.

md-select broken on Chrome on iPad #4757

Closed
jeffmcardle opened this issue Sep 21, 2015 · 8 comments
Closed

md-select broken on Chrome on iPad #4757

jeffmcardle opened this issue Sep 21, 2015 · 8 comments
Assignees
Milestone

Comments

@jeffmcardle
Copy link

When trying to bring up the dropdown, it just disappears without letting you select an item.

@barryvdh
Copy link
Contributor

I have this issue on Cordova on the iPad, with latest version (0.11.0). Not with the regular ipad browser..

@barryvdh
Copy link
Contributor

Reverting to 0.10.1 does work, but the 0.11.0/rc1/2 releases have the same problem..

@jsmylnycky
Copy link

👍 Would really like to see a fix for this

@rschmukler rschmukler self-assigned this Sep 24, 2015
@rschmukler rschmukler added this to the 0.12.0 milestone Sep 24, 2015
@rschmukler
Copy link
Contributor

Possible reference to #4296

@jeffmcardle
Copy link
Author

Yeah, probably the same issue.. The demo page has the issue when I use Chrome. iOS 9, iPad Air 2.

@mighe
Copy link

mighe commented Sep 29, 2015

It seems the same issue, it happens even with the demo. iOS 9, iPhone 6 or iPad mini 3

@barryvdh
Copy link
Contributor

Any workarounds for this? Kind of a blocker for my new app release.

rschmukler added a commit that referenced this issue Oct 16, 2015
This commit greatly extends the click-hijacking functionality of
`$mdGestures`.

**Background:** iOS emulates click events on a `350ms` delay in order to
avoid sending clicks when users pan, perform gestures, etc. This leads
to pages often feeling laggy in mobile browsers. This appears to be less
of an issue in Safari, but is a major issue in embedded webview
applications such as Chrome on iOS and PhoneGap built apps.

To get around this `$mdGesture` previously `touchstart` and `touchend`
events and manually dispatches `click` events. This allows them to
happen much quicker than the 350ms.  It then configures the
page to ignore clicks that were not originated by `$mdGesture`.

**Problem:** While `$mdGesture` did successfully hijack the `click`
event, it did not hijack other emulated events from iOS, including `mouseup`,
`mousedown` and the subsequent `focus` event that could originate from a
delayed `click`.

**Example of problem:**: Issue #4850 was caused by the `md-select`
opening quickly via our simulated `click` event, followed by receiving a
`350ms` OS delayed `mousedown` event resulting in an option immediately
being selected.

Some other example problems that impact the framework:

- Ink ripples are 350ms delayed (use `mousedown` and `mouseup`)
- Some components / items randomly ripple or trigger
after being focused / click.  Usually this isn't an issue, but can be
(eg. #4850)
- `focus` events are 350ms delayed (Affects input)

**Soltuion:**: This PR makes `$mdGesture` perform hijacking of
`mousedown`, `mouseup` and subsequent `focus` events in order to more
quickly dispatch them.

**Notes:** A few of our internal components needed some
refactoring as they were properly discarding the emulated `mousedown`
(which is now ignored DOM wide) and relying on those events for state,
etc.

Ripples will need a fix as they now properly ripple on `mousedown` but
can hit a situation where they receive no later `mouseup` event. Perhaps
listening to the document-wide `mouseup` event should be registered on
`mousedown`. An example is scrolling in the Docs' Sidenav via touch.

closes #4850, closes #4757
@barryvdh
Copy link
Contributor

Thanks! Can confirm this fixes the select issues!

clshortfuse added a commit to clshortfuse/material that referenced this issue Mar 30, 2016
update version number in package.json to 0.11.0-rc2

update(demo): stagger animations timings

fix(layout): device size attributes should not set max-width or max-height

do not specify max-height or max-width for **.layout-column** and **.layout-row** media breakpoints; as these incorrectly limited the size of the container.

> Consider below where `<xxx>` is the display breakpoints sm, md, lg, gt-sm, etc.

Breaking Changes

Before

```css
.layout-colum > .flex-<xxx> { max-height : <percentage>; }
.layout-row > .flex-<xxx> { max-width : <percentage>; }
```

now

```css
.layout-colum > .flex-<xxx> {  }
.layout-row > .flex-<xxx> {  }
```

fix(layout): restrict directives to attributes only

Breakout of 0.11.0-rc2 from 0.11.0-rc1 changes

Update CHANGELOG.md

Update CHANGELOG.md

Update CHANGELOG.md

Update CHANGELOG.md

update(radioButton): add md-checked style to parent (if not mdRadioGroup)

if radiobutton elements are nested in DIV (instead of direct children of MD-RADIO-GROUP), then add/remove `.md-checked` styles when selected/deselected.

update version number in package.json to 0.11.0

Add SHA links to ripple and layout changes

feat(datepicker): allow changing first day of the week. Fixes #4316.

fix(utils): extractElementByName() and findFocusTarget() logic improved

findFocusTarget() scans deep and properly uses `$eval()` on possible focus expression.
extractElementByName() includes optional argument to scan deep in all child nodes.
added unit tests

Fixes #4532. Fixes #4497.

fix(theme): input placeholder color style fixed for Chrome

mixin placeholder-input-color in `mixins.scss` do not work as expected in Chrome.

Fixes #4162.

fix(datepicker): handle DST incocnsistency encountered in some timezones. Fixes #4215.

fix(util): improve parse logic in supplant()

Fixes #4511.

update(demos): codepen demos use Roboto fonts and css

when launching the demos, the same font sets and extra styles used in the online docs should be included in the launched demo.

Fixes #4529.

fix(codepen): improve use of external css

fix(util, autocomplete, chips): logic for cleanup when scope.$$destroyed == true

update `$mdUtil.nextTick( )` with option `scope` argument that can be used to check `scope.$$destroyed` skip callback.
refactors to resolve `scope.$destroy()` race conditions

Fixes #4525.

feat(datepicker): add shadow and animation cue for scrolling. Fixes

Closes #4547.

perf($mdSticky): Fix performance issue when sticky is emulated.

When the browser is not naitively capable of handling sticky
elements, we fake it by watching for scroll changes and manually
triggering certain events. These use `$$rAF`, but were not
throttling the call.

Fix: use `$$rAF.throttle` when calling our loop function.

Fixes #4523. Fixes #4459. Closes #4552.

docs: fix codepen buttons not working in Demos > Menu

Fixes Codepen buttons not working in Menu Position Modes & Menu Width demos & removes duplicate call to htmlEscapeAmpersand() function in codepen.js

Fixes #4514. Closes #4519.

docs: fix typo in demos > Menu > Menu Position Modes

Fixes a typo ('Positon' -> 'Position') in the Demos > Menu > Menu Position Modes docs

Closes #4516.

fix(switch): inverted logic in md-switch dragging

md-switch was being toggled when the user dragged less than half the way and didn't toggle when dragged more than half the way.
Invert this logic.

Fixes #4549. Closes #4560.

fix(mdAutocomplete): Compile autocomplete template against proper scope.

After the performance modifications to make autocomplete use the
virtual repeat directive, the autocomplete no longer compiled the
contents of the dropdown against the proper parent scope

This PR fixes it by manually compiling against the proper parent scope
and copying over the necessary `item` and `$index` properties.

Fixes #4390. Fixes #4495. Closes #4391.

feat(dialog): allow specifying parent by string selector.

feat(datepicker): prevent calendar from going off-screen. Fixes #4333.

chore(datepicker): remove accidental function def.

test(dialog): added test for parent specified by string selector

fix(tooltip): trigger parent blur on `leaveHandler( )`

`md-button` with tooltip should not continue to display focus style after mouseleave and tooltip hide.

Fixes #4249. Fixes #4597. Closes #4590.

Update tabsDirective.js not to use multiline string literal

Multiline string literals aren't considered a best practice.
References:
http://stackoverflow.com/a/6247331
http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml?showone=Multiline_string_literals#Multiline_string_literals

Closes #4556.

update(docs): Toast API docs correction

inlucde improvement to **$log.warn** in `util.extractElementByName( )`

Fixes #4612.

update(util): typo correction

fix(ripple): ripple will no longer be triggered on disabled elements

Closes #5445

ripple: re-adds code that was accidentally removed from the previous commit

ripple: fixes typo in previous commit. again.  I'm on a roll, today!

Update slider.js not to use multiline string literal

fix(datepicker): make dark theme picker not terrible. Fixes #4614

update(tabs): speeds up ink bar animation

Closes #4582

fixes typo in dialog

fixes improper variable name in dialog

fix(select): fix options not closing with explicit md-select-label

closes #4387

style(menu): fix alignment with anchor menu items

closes #4142, closes #4353

fix(listItem): fix menu triggering proxy elements

fixes #4303

fix(select): fix undefined class on select container

closes #4184

style(select): bring disabled style inline with input

closes #4179

fix(dialog): incorrect dialog placement if page is scrolled

closes #4115

style(select): dividers now appear in scrollable menus

closes #4017

fix(general): common disabled behavior for switch/slider/select.

Fixes #3797. Closes #4654.

fix(datepicker): ngModel updates for empty input.

Fixes #4643. Closes #4648.

fix(mdInput): Support multiple ng-messages simultaneously.

Previously, multiple `ng-message`s would render on top of each
other. Fix by altering CSS position and altering transition to
support multiple messages (i.e. potentially varying height).

Also some other small fixes to inputs/errors:

 * Fix number input widths in Firefox
 * Update errors demo messages to be more dynamic and show multiple errors
 * Update SCSS to allow `ng-message-exp` and associated `data-` and `x-` attributes
 * Add demo using `ng-message-exp` to show new SCSS styles being applied

Fixes #2648. Fixes #1957. Fixes #1793. Closes #4647. Closes #4472. Closes #4008.

> Should also close PRs #4472 and #4008. Thanks to @bopm and @iksose for the
initial PRs!

fix(interimElement): support scope.$destroy events

when navigation (eg $location) changes occur, the `scope.$destroy` event is triggered; which should remove/close/cleanup the following components: menu, select, dialog, toast, and bottomSheet.

Fixes #3741. Fixes #4405. Fixes #4504. Fixes #4151. Closes #4659.

fix(autocomplete): re-adds support for custom item names in autocomplete
templates

Closes #4667

fix(menu): fixes JS focus error on close

fix(interimElement): use angular.extend

AngularJS 1.3.x does not support `angular.merge`

Fixes #4683.

feat(mdInput): Add support for both labels and placeholders.

Previously, if a user supplied both a placeholder and a label,
the label would float on top of the placeholder when the input
did not have a value.

Fix by adding styles/code to support both at the same time.

**Note:** If the users provides both a label and a placeholder,
the label will no longer animate.

Also fix input styles so transition does not happen if input
already has a value to avoid unneccessary and eratic-looking
animations.

Fixes #4462. Fixes #4258. Closes #4623.

test(all): make changes to use $animate.flush

update ngMaterial docs and tests to use AngularJS 1.4.6
simplify testing with unified, new API `$animate.flush()`
add ngMaterial mock `flush()` methods to hide complexities on Material animations
fix interimElement recover logic when templateURL loads fail

> supports only AngularJS ^1.3.19 and ^1.4.6

Closes #4460.

fix(util, datePicker): support $compileProvider.debugInfoEnabled(false);

add `$mdUtil.validateScope( )` to confirm availability of scope value.

Fixes #4532.

>  [$compileProvider](https://docs.angularjs.org/guide/production) explains that `$compileProvider.debugInfoEnabled(false)` will make the `scope()` function return undefined: @see https://github.com/angular/angular.js/commit/dbbe6b3831e9e3545e3fae6d109aab6251131d82

update(sidenav): add `$destroy` logic to remove backdrop

update(demo): add footer note to Dialog demo

Closes #3136.

fix(menu): safeguard NRE in `activateInteraction()`

Fixes #3741

fix(dialog): resize top and height on window resize

Fixes #4513.

update(mixin): improved input-placeholder-color

Fixes #4742.

update(npm): add standard package.json fields

Fix license warnings from npm
Add a useful npm 'watch' script to build, watch the docs; opens browser at http://localhost:8080
Add other standard fields as detailed in https://docs.npmjs.com/files/package.json

Closes #4741.

> Thx @splaktar for PR #4741.

Added the ability to apply custom CSS classes to dialog-presets.

Closes #4722.

fix(whiteframe): working with dp insted of z-index

Closes #4706.

fix(progressLinear, progressCircular): trim md-mode values

Fixes #2336.

fix(select): multiple no longer sets form to $dirty

closes #3933

style(list): truncate overflow on h3 and h4

closes #2199

fix(fabSpeekDial): remove keyboard handlers on scope destroy

Closes #4681.

fix(mdAutocomplete): Fix small style regression introduced by multiple errors.

The autocomplete used different CSS than the multilple error messages
expeceted. Fix by making autocomplete the same as input.scss.

Fixes #4692. Closes #4695.

feat(layout): add `md-css-only` option, restore max-width for layouts

*  support use of `<body class="md-css-only">`  to use Layout features **without** any JS requirements or `ngMaterial` module dependencies.
  *  May use standard Attribute selectors
  *  May use class selectors
  *  Disables Layout directive postlinks for optimization
*  restore `layout > flex` specifiers of max-width or max-height.
* publish `$$mdLayout` service to allow Attribute selectors to be removed when the translation inject to Class selector finishes.

fix(layout, flexbox): longhand workarounds, flex-order, interpolated values

* apply flexbox workarounds per [Flexbox Workarounds](https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items): use flex longhand notations with workarounds
  *  add support for flex="1", flex="auto", and flex
  *  add references to online specs/resources
  *  fix flex-33 and flex-67 max-width and max-heights
  *  fix layout-align to use max-width
* layout-fill should use height:100%
* allow flex-order to be negative
* add support to observe interpolated layout values.
*  restore max-width for layouts
  *  restore `layout > flex` specifiers of max-width or max-height.
  * publish `$$mdLayout` service to allow Attribute selectors to be removed when the translation inject to Class selector finishes.

According to CSS Flexible Box Layout Module Level 1 and CSS Values and Units Module Level 3, the order property can be negative, -9 to -1, as well as positive, 1 to 9, and zero.

Fixes #4729. Fixes #4616. Fixes #4520. Fixes #4482. Close #3376. Closes #4592.

> Thx @flowersinthesand for original PR

fix(layout): resolve incorrect and duplicate layout tests

There were a number of typos and incorrect combinations of values in the alignmentValues array that didn't correspond to the layout.scss causing incorrect tests to be run. There were also duplicates, there were 31 values, now 19.

Closes #4740.

update(layout): refactor and fix media breakpoint styles

*  improve logic for `postLinkIsDisabled( )`
*  add `max-width:100%` for layout=row
*  add `max-height:100%` for layout=column
*  fix media trigger .layout-<xxx>-row and .layout-<xxx>-column layouts

fix(gridlist): improve getTileStyle() to use rowCount

Fixes #2741.

fix(menu): remove exception when async loading

Fixes #4687.

fix(mdAutocomplete): Fix scope watch bug.

Commit 8849213ce42fa98169b6fbbb0805feb95a6ba678 introduced a scope
watching bug cauinsg the autocomplete to no longer update it's list
of items as you scrolled (since it re-uses DOM elements). Fix by
swapping nextTick to be inside the watch statement.

Fixes #4713. Closes #4715.

docs(datepicker): fix type for min/max dates. Fixes #4738

chore(ci): add scripts to test against multiple releases of AngularJS

fix(tabs): addresses potential `$digest already in progress` error

Closes #4743

docs(dateLocale): make parse function reflect real moment use.

fix(dateLocale): guard for setting midnight to null. Fixes #4780

fix(datepicker): prevent calendar clipping on small screens. For #4558

fix(mdInput): Fix md-maxlength when used with ng-messages.

The recently added support for input elements to have multiple
messages caused a rendering issue for the `md-maxlength`
character counter.

Update code/CSS to properly position the character counter when
used with and without ng-messages.

Fixes #4783.

POSSIBLE BREAKING CHANGE - The `<div class="md-char-counter">`
that is automatically added to the input is now added after
the input if no messages are found, but inside if they are.

This may cause some styling issues if users provide custom
CSS. Users may need to update their CSS to take the extra
HTML into account.

Example rendered HTML:

**Without `ng-messages`:**

```html
<label>Label is here</label>
<input />
<div class="md-char-counter">10/20</div>
```

**With `ng-messages`:**

```html
<label>Label is here</label>
<input />
<div ng-messages="...">
  <div class="md-char-counter">10/20</div>
  <div ng-message="requried">This is required</div>
</div>
```

Closes #4786.

fix(layout): prevents missing body error in unit tests

chore(tooltip): removes multiline string template

chore(layout): fixes document.body undefined error

fix(list): fixes list item height

feat(datepicker): support for ngMessages. Closes #4672.

fix(tooltip): using tooltip inside subheader causes Firefox hang.

When a `<md-tooltip>` was placed inside the `<md-subheader>`,
an infinite loop was being hit (only in Firefox) which was
causing the browser to hang.

The infinite loop was caused by the tooltip's
`getParentWithPointerEvents()` method which travels up the DOM looking for a parent who has pointer events. In Firefox, the `element.parent()` can apparently return an empty jqLite object that is not null, but whose length is 0. In this case, calling `parent.parent()` again will return the same object.

Add a check to the tooltip's loop to ensure that `parent.length` is never 0.

Fixes #4777. Closes #4800.

fix(sidenav): binds remove function to prevent errors

replaces fn.prototype.bind with angular.bind

removes duplicate line of code left in during previous commit.

ugh

fix(virtualRepeat): prevents digest if digest is already in progress

fix(list): fix clipping on list items, simplify code

closes #2199

update(layout): remove md-css-only usages

refactor layout.scss to reduce layout.css size

chore(ci): use Chrome, Firefox and Safari as browsers on CI for the daily script

test(animateCss): fix broken safari tests

Closes #4819.

fix(dialog): resolves issue where dialog templates were displaying HTML
as text

update(layout): restore sized flex-order styles

restore build-scss 'modules' feature on #L63.

update version number in package.json to 0.11.1

Create COMMIT_LEVELS.md

Update CONTRIBUTING.md

Update COMMIT_LEVELS.md

Update COMMIT_LEVELS.md

Update COMMIT_LEVELS.md

fix(select): fix dynamic placeholder text

closes #4689

fix(select): rollback number parsing on value attr

closes #4615

As per the discussion in #4615, please use `ng-value` if you need
a non-string value from an md-option for the `ng-model` of a select.

fix(datepicker): stop calendar going off-screen if body is scrollable. Fixes #4781.

remove debug ECHO.

fixes(layout): corrections to generated css

*  fixes to generated css and media query specificity
  *  layout.scss includes both attribute and class selectors
  *  improved css for hide/show with breakpoints
  *  improved css for flex-order with breakpoints
*  also generates angular-material-layouts.css for
*  standalone* CSS with attribute selectors.

fix(sidenav): resolve jQuery conflict with  handler

Fixes #4876.

fix(layout): conflict with [flex='initial']

*  fix CSS so `[flex] !== [flex="initial"]`
*  add `[flex="grow"]`

update(demo, content): refactor styles

* set demo-content `height:600px;` for properly layouts and scrolling.

fix(docs): fix demos GitCDN link to use proper URL for versioning

The GitCDN link used in the current demos points to a URL which
is redirected to a new one. When this redirect occurs, the
version info supplied in the URL is lost and the file always
points to HEAD making it difficult to track down.

Fix snapshot script to use the new link which retains the
version information.

Closes #4922.

update(layout): improve mutliple flex breakpoint usages

fix(checkbox): prevent ng-click firing on didabled checkboxes. Fixes

fix(layouts): improved css specificity for layout

Standalone css has been deprecated; the ngMaterial module is required to register the layout directives. For improved `layout > flex` specificity, convert layout attributes (and breakpoint variants) to `.md-layout` with variants.

* remove all attribute selectors from the Layout CSS
*  update demos to use revised .md-layout solution(s)
*  update layout demos to use ng-cloak
*  update demos to `colorNested` class

update(content, demo): specify demo-content height

fix(layout): resolve minify bug with flex css

*  fix minimize bug where `flex: 1 1 0%` incorrectly becomes `flex: 1 1 0`;
*  do not support md-css-only; JS is always required
*  do not remove layout attributes

update(demo): use ng-cloak on all demos

fix(layouts): improve logic for `layout > flex` specificities

improve specificity for layout > flex with breakpoints and variants.
fix demos and docs with expected layout classes

fix(layout): add border-box style to  to all `.flex` variants

*  also allow build of Layout css deprecated standalone usages.

update(docs): demo text correction.

chore(release): adds firebase rewrites to release script

update version number in package.json to 0.11.2

fix(input): fix bad char counter when value is a number. Fixes #4635.

fix(input): fix extra `var` in input tests.

chore(): add .clang-format file.

fix(autocomplete): resolves issue with not-found message displaying unnecessarily

update(demo, tab):remove content padding on first demo

Refs #3963.

fix(button): Fix button height in Firefox.

A `<button>` tag with the `.md-button` class added was rendering
at 38px height instead of the spec's 36px. This was due to the
`::-moz-focus-inner` pseudo-class having a default border greater
than 0.

Fixes #3291.

fix(icon): Fix bug that prevented custom default fontset from being applied.

Fixes #4349. Closes #4829.

fix(card): position md-card-footer at bottom of card

Old behavior did not cause the footer to stick to the bottom of the card
if the card had an assigned height taller than its content.

Fixes #3144. Closes #4891.

Added an internal function to handle `debounce` in demo.

Please see this [Google Closure compiler PR](https://github.com/google/closure-compiler/pull/1170) for more information/reference.

Basically, the demo code is using `$mdUtil`, which is not part of the public API, and therefore not suitable for the public (docs) reference.

Closes #4888.

fix:Removed unnecessary background-color definition

fix(demo, sidenav): resolve NRE with  reference

update(layout): remove layout-align attribute selectors

update(doc, layout): remove obselete white styling

fix(icon): adds check for `el` before checking its `tagName`

fix(tabs): tabs now work properly with `md-dynamic-height` and
`md-align-tabs="bottom"`

Closes #4368

chore(tabs): adds comments describing previous commit

fix(autocomplete): prevents scrollbar from displaying unnecessarily

Closes #4308

fix(tabs): inkbar is now visible in Firefox when using centered tabs

Closes #4367

Renders character count on keyup
See http://codepen.io/Anaphase/pen/KdWPjy for details.

Closes #5024.

fix(dialog): fixed alert and confim `md-transition-in` class attachment

Alert and confirm dialogs had in their template class attribute that was binded to `dialog.css`, in case the css property was undefined it caused the `md-transition-in` class to be applied but than deleted.

The solution was to change the usage to ng-class and let angular set the class.

fixes #4862. closes #5006.

fix(autocomplete): Fix many issues with showing/hiding.

The logic behind showing and hiding the autocomplete's
list of suggestions was difficult to understand and was
causing some issues with displaying at the proper times.

Refactor code to use a "show when criteria is met" approach
instead of a "hide when criteria is met" approach and fix
some issues with the md-not-found and suggestions list
appearing when they should not.

Fixes #4665. Fixes #4788. Fixes #4906. Fixes #4855.
Fixes #4618. Fixes #4469. Fixes #4025. Closes #4958.

**References:**

Refs #4309, Refs #4678, Refs #4673, Refs #4518, Refs #4503, Refs #4358, Refs #4905.

enhance(bottomSheet): removed targetEvent and added clickOutsideToClose

Closes #4969. Closes #2201. Closes #2895.

update(docs, menu): misspelled attribute name

Closes #4917.

fix(inputs): Fix floating label and char counter positions.

Recent updates to the `md-char-counter` class caused alignment
issues when the input was side-by-side with another input. The
underlying cause was that the other input uses `maring-top: auto`
instead of `margin-top: 0` which made the inputs "bottom aligned"
as the height of it's neighbors changed.

This fixes the CSS on the char counter, inputs and select to
better align and updates the inputs demo to show the select
next to an input with the char counter.

Also, I noticed a bug with the floating labels when using only
the placeholder, so this adds some additional tests and fixes
the bug.

Fixes #4872. Closes #4915.

update(commit_levels): fix minor typos, links, and duplication

also fix issues identified by @topherfangio

fix(fabSpeedDial): Make hovering an option via CSS.

Initially, the speed dial was designed to always open
when the user hovered over any portion of the speed
dial (including the area where the actions would
eventually appear). However, this made the speed dial
unusable on mobile (and sometimes unusable on desktop)
because it disallowed the user from pressing anything
underneath the actions.

*  Add the `md-hover-full` CSS class to allow developer configuration of this behavior.
*  Ensure fabToolbar also works this way, and fix jumpy animation.
*  Also updated the docs/demos and made the demos easier to use on mobile.

BREAKING CHANGE - The fabSpeedDial no longer automatically
opens when hovering over the invisible actions. Add the
`md-hover-full` class to enable this interaction.

Fixes #4259. Closes #4847.

fix(gridList): Fixes "fit" mode

Closes #2012

fix(gridList): Changes to md-gutter will now trigger reflows

Closes #3029.

fix(gridList): Animated tile removal now triggers appropriate layout

Closes #1559. Closes #4811.

update(ink): added ripple color to switch radio and checkbox

Closes #4817.

feat(input): Add right-side icon to input container

Fixes #4763. Closes #4808.

update(switch): fixed switch movement speed

Closes #4581. Closes #4816.

fix(icon): Update demo fonts from 21px to 24px.

fixes #4569. Closes #4799.

fix(changelog): fix minor typo in 0.11.2 notes

update(docs): updated CDN version number

Closes #4894.

update(virtualRepeat): add topIndex attribute to virtualRepeatContainer (squashed)

Add an `md-top-index` attribute on the virtual repeat container. This allows the developer to watch which item is at the top of the scroll container, and also scroll to any item on demand.

*  Includes passing unit tests, documentation and working demo.
*  Live demo: http://codepen.io/colinskow/pen/jbVaRj

Fixes #4823. Closes #4823.

update(docs): new doc website screenshot

Show the newly designed docs site on the README instead of the old 0.8.3 version that has a different layout.

Closes #4805.

fix(input): Sizes textareas properly when the container is shown

Added an optional md-detect-hidden attribute for textareas inside of
md-input-containers. This will check on every digest cycle whether the
element was hidden and is now shown, and will auto-size the textarea
properly.

Fixes #1202. Closes #4726.

docs(chips): formatting fixes

add subheader and linebreak for md-chip-template section

Closes #5032.

update(doc, icon): typo fix

Closes #4849.

update(doc, card): markdown is not rendered

Closes #4832.

feat(interimElement): add onShowing event

Currently hideElement has an onRemoving event, this is the showElement equivalent. Useful when dealing with loading spinners that should disappear before the dialog shows.

Closes #4820.

fix(dialog): keydown instead of keyup to close dialog

Previously md-dialog is watching for keyup while md-autocomplete is preventing keydown

fixes #4041. closes #4884.

fix(docs): fixes code urls for docs generation

fix(tabs): fixes tab sizing issues with and without pagination

Closes #4065
Closes #4834
Closes #4873

Must test with #4744

fix(gridList): Animation reflow fix.

Now correctly decorates the element with the destroyed flag.

Closes #1559. Closes #5042.

fix(tabs): adds proper detection for bodyless tabs

Closes #4120

chore(docs): fixes docs for `md-no-ink-bar` attribute

Closes #4082

fix(tabs): fixes `md-stretch-tabs` functionality

Closes #5048

docs: Fix various doc formatting issues.

Fixes #5051.

chore(tabs): Adds documentation for `md-active`

Closes #4011

chore(autocomplete): updates docs for expression attributes

Closes #3743

fix(input): Fix border styles on Firefox.

Fixes #2914.

fix(tabs): overrides icon color when used within tab label

Closes #3879

fix(mdListItem): Fixed integration with checkbox and added icon avatar

*  Deleted `:first` from css so the avatar can be used properly with checkboxes or other components/elements that comes before.
*  Added `.md-avatar-icon` class to support icon avatars
*  Updated docs to mention these classes including `.md-offset`

fixes #3784. fixes #3186. closes #5054.

fix(repeater) resize scroller correctly,

There was some recursion inside VirtualRepeatController.prototype.virtualRepeatUpdate_ which was causing the scroller not to shrink properly when items were removed.

Fixes #5027. Closes #5031.

In addition, in onDemand mode an undefined length would stop the container from sizing correctly. An undefined length will now be changed to zero.#
It could also possibly fix #4950 and may be a better solution than #5009, but I haven't yet tested it against that issue.#
fixes #5027#   (use "git push" to publish your local commits)

update(demo, dialog):moved padding to class and removed padding from element

Content padding was forced on the user and caused other components as tabs not to work as wanted.
Moved the padding to a class that the user can specify on his content.

closes #3963. closes #4983.

fix(interimElement): Removed unnecessary resolve fallback values

Removed SHOW_CLOSED fallback that caused false, empty string or undefined in the resolved promise to become true

fixes #4094. fixes #4150. closes #4982.

fix(dialog): Switched the click action to mouse down/up

Changed the click event to mousedown and mouseup so we can save the origin element on mouse down and close on mouseup if the origin and the target is the backdrop

fixes #3873. closes #4972.

fix(chips): do not display broken image when no image is provided

When no image property is defined on the user model, do not render an `img`-element.

*  add missing unit tests for image / no image cases on contact chips

Refs #4779. Closes #4851.

fix(toast.scss): Change height to defined for IE11

Height updated to value below min-height. IE11 does not layout correctly
without. Tried 'inherit' but caniuse.com says not supported.

Fixes #4946. Closes #5057.

fix(menu,menuBar): fix keyboard interaction

closes #5025

fix(autocomplete): adds tabindex support for autocomplete

Closes #2113

fix(layouts): interpolated values, validations, test & CSS fixes

* improved consistent use of `attrs.$observe( )` to watch for interpolated attribute values (for Layout attributes which support value specifiers).
* add validation of Layout attribute values with fallbacks to default value approprate to each attribute type
* significant code cleanup for use of `$observe( )`
* removed possible classname generation with raw, uninterpolated strings
* removed multiple classname generation
* fixed invalid classname generation when interpolation values are invalid
* remove `md-` prefix from layout class names
* remove all attribute selectors from layout.scss
* deprecated use of `offset` attribute; now uses `layout-offset`
* add box-sizing to all flex variants
* add max-width/height to flex variants
* fixed max-width/height for flex 33, 34, 66, and 67 variants.
* complete refactor for spec testing of Layouts

Fixes #5076. Fixes #5054. Refs #5014. Fixes #4994. Fixes #4959. Fixes #4902. Fixes #2954. Fixes #5014.
Closes #5090.

fix(layout): Fix IE align-items: center issue.

In Internet Explorer 10/11, flex items inside of a flex column container
that had `align-items: center;` set would not properly calculate their
width, resulting in 0-width items.

Fix by setting `max-width: 100%` and `box-sizing: border-box` on the
child elements, and fixing the demos to properly use `layout-fill`
where appropriate.

Also fix issue checkbox demo issue with flex fieldsets not properly
rendering in IE.

Closes #5089.

feat(slider): add md-max class when at max value

add md-max class when at max value. This is to keep
things consistent with the fact that md-min is added when
at min value

fixes #3513. closes #5077.

update(docs): significant improvements to the layout and flex docs

*  fix hide/show implementation for flex order attribute examples

*  improve clarity and consistency of layout docs
*  improve hide and show examples and fix display issue on mobile caused by using `md-subheader`
*  improve `layout-wrap` examples to cover new flex percentages
*  improve the container demo and make it consistent with the other layout/flex demos

*  add new section on other flex values like grow, initial, auto, none
*  add real examples for `layout-margin`, `layout-padding`, and `layout-fill`
*  add details about max-height and max-width settings on row and column layouts
*  add note about attribute vs class selectors and IE11 performance
*  add example of use of 33/34/33 flex sizes with `layout-wrap`

*  remove redundant `style="color:white"` styles
*  remove `colorNested` and `colorNested-noPad` from the example code while keeping the functionality

feat(layout): support for `md-layout-css` directive

* implement directive to disable all conversions of Layout attributes to classnames
  * requires loading stylesheet `angular-material.layout.css`
* generation of attribute-only layout-css using
*  fix css generation
  *  layout-offset-33 -> margin-left:33%
  *  layout-offset-34 -> margin-left:34%
  *  layout-offset-66 -> margin-left:66%
  *  layout-offset-67 -> margin-left:67%
* support for Layout configuration
* removal of useless $mdLayout service
* update docs to use `.md-api-table` and bold the first-column text.

update(demo, radioButton): add multi-column example

chore(ci): ensure version script pulls in new tags of AngularJS

Closes $5092.

feat(docs): use html5mode routing and simplify urls.

fix(layout): deprecate `offset` attribute in lieu of `flex-offset`

potential conflicts with `offset` attribute overrides may affect SVG and other elements. Revise usage to `flex-offset` to eliminate conflicts. NOTE: the attribute classname `[offset-xxx]` is still supported however the generated subsequent classnames will be `.flex-offset-xxx`.

BREAKING CHANGE: Material Layout attribute `offset` should now be `flex-offset`.

    Change your code from this:

    ```html
    <md-content flex offset-gt-sm="33" > ... </div>
    ```

    To this:

    ```html
    <md-content flex flex-offset-gt-sm="33" > ... </div>
    ```

fix(layout): disable `offset` directive

use the new `flex-offset` directive and remove the deprecated `offset` directive.

update version number in package.json to 0.11.3

fix(theming): BREAKING: no longer apply md-default-theme class to unnested themable elements

closes #4846

Themable elements no longer have a `.md-default-theme` class applied to
them if they are not inside of a directive explicitly setting
`md-theme="default"` this helps reduce specificity making it easier to
override angular material's default style. At the same time, the rule is
applied if `md-theme="default"` so that the (presumably nested) theme
can have higher specificity than other themes in the DOM.

Fix required: Stylesheets should not target elements using the
`md-default-theme` selector. Overrides should happen by targeting non
angular-material provided classes. As a quick fix, a
`md-theme="default"` at the `ng-app` level will result in the
`md-default`theme` class being applied as it was before this fix.
Theming related styles now target `md-default-theme` making it harder to
override when the class is applied.

update(release): commits firebase json changes to docs site

release: version 0.11.3

update(docs): fixes chevron icon in header

amend(): fix default theming rules

fix(docs): Fix broken layout/theming/css nav links.

fix(mdCard): Fix card image height in IE.

In IE11, the height of the card image was not properly displaying
proportinally to the width due to
https://github.com/philipwalton/flexbugs#1-minimum-content-sizing-of-flex-items-not-honored.

Fix by setting the image to use flex layout itself instead of just
width.

Tested in IE11, Edge, Chrome, Safari & Firefox.

Fixes #761.

fix(list): ng-click changes item width in IE

In IE11, when using `ng-click` on an `md-list-item`, the
width of the list item would be incorrect due to
https://github.com/philipwalton/flexbugs#7-flex-basis-doesnt-account-for-box-sizingborder-box.

Fix CSS to to use `flex: 1 1 auto` instead of `flex: 1`
so that the width is properly calculated.

Fixes #3708.

fix(input): fix border-bottom transparency

closes #5128, references f9d5cf8ed20551ae7fc5f8b4f21407db7fc9bdbc

update(list): add css `.md-long-text` for long paragraphs

Fixes #5122.

update(demo): sidenav toggle debounce removed

The toggle debounce [used to address multiple clicks on the same button] causes a delay and is perceived as a performance issue.

*  Use an *immediate* toggle for the right button
*  Hide the right button with the right sidenav is open using `isOpenRight( )`

References #3721

fix(docs): fix "Getting started" link in left nav.

fix(docs): remove extra base tag.

update version number in package.json to 0.11.4

update(demo, whiteframe): adaptive changes to margin, color, and fontsize

fix(select): do not let empty arrays satisfy required on multiple select

fixes #4604

fix(datepicker): fix theme not being applied.

fixes #5141.

revert(datepicker): rollback f20a635 for other fix

This reverts commit f20a635424d35d9207226a310248492be6975d3c.

references #5164

fix(tabs,date-picker,theming): restore tabs and date-picker themes

closes #5163, fixes #5141, closes #5164, closes #5155

fix(tooltip): corrected md-tooltip positioning when scrolled

There are several issues out there (e.g. #2406) that point to tooltip positioning when the page is scrolled and
getNearestContentElement that suggests that the enclosed loop is supposed to stop at md-content but does not.
Adding that condition to the loop fixed the positioning issue for me.

Fixes #2406. Closes #5161.

fix(text): remove ddescribe()

fix(autocomplete): fixed integration with dialog

ENTER key on autocomplete with unselected list item didn't prevented the event to bubble up to the dialog which caused the dialog to be rejected.

Separated TAB and ENTER keys behavior to prevent event bubbling and ensuring that no matter what, TAB should always move to the next element.

Fixes #3979. closes #5154

refactor(mdTooltip): removed radial reveal animation

Changed the radial reveal animation to fade-in animation as spec

Fixes #4585. Closes #4821.

fix(autocomplete): adjusts vertical offset of dropdown to account for ngMessages in floating label examples

fix(list): adds support for `data-ng-click` in place of `ng-click` for
buttons

Closes #3374

feat(mdDialog): added openFrom and closeTo properties

openFrom specifies the origin of the transition animation
closeTo specifies the target of the transition animation

both except string (query selector), element and Rect object

fixes #4228. closes #5075.

update(demo, dialog): improved button titles

update(demo, dialog): improved button layouts

fix(mdCard): Content padding not showing in IE 10.

In IE 10, the padding in the content area was not being
properly applied because the `<md-card-content>` element
had no display property set.

Fixes #2974. Closes #5120.

fix(divider): Fix stlying for md-divider inside md-list-item.

When an `md-divider` was used inside of a `md-list-item` with an
`<md-button>`, the divider would improperly show up at the bottom
of the list, instead of the bottom of each list item.

Fix by making the list item's position relative.

Also, we automatically apply special styling when we detect an
`<md-button>` inside of the list item because we assume that it
wraps all of the elements. If you simply wanted to use a secondary
`<md-button>` or other clickable button inside a list, we would
incorrectly apply this styling.

Fix by automatically excluding `md-secondary` buttons and providing
an additional `md-exclude` class that can be added to buttons.

Fixes #3021. Closes #5058.

docs: Add optional dependencies to getting started guide.

Many users have had some issues with getting things to work
correctly because they did not realize that certain dependencies
were optional and not automatically included.

Add a section to the getting started guide to let people know
which dependencies these are.

Fixes #2820. References #4921. Closes #5123.

fix(layout): fix flew-grow and flex-shrink values for flex-xx='xx' markup

flexboxes should be 50% on flex-md=50 breakpoint and 33% on flex-gt-md=33 breakpoint,etc
change flex-grow and flew-shrink values from '0' to '1'
Thx to @MartinMuzatko for his help!

fix(layout): provide missing SCSS variables for standalone Layout css

fix(list): restore ui-sref and href support on md-list-item

closes #2131

fix(layout): standalone layout css flex-grow and flex-shrink updated

flexboxes should be 50% on flex-md=50 breakpoint and 33% on flex-gt-md=33 breakpoint,etc
change flex-grow and flew-shrink values from '0' to '1'. See SHA 9f704302f4f881233.

update(layout): added another flexbox reference url

docs(): add "API" to api doc pages.

closes #5191.

feat(core): add ngMaterial global with version info.

closes #5202.

fix(build): add missing semi-colon.

fix(build): add second missing semi colon

build(docs): add ability to conditionally build docs with jQuery

feat(mdGestures): greatly improve emulated click hijacking

This commit greatly extends the click-hijacking functionality of
`$mdGestures`.

**Background:** iOS emulates click events on a `350ms` delay in order to
avoid sending clicks when users pan, perform gestures, etc. This leads
to pages often feeling laggy in mobile browsers. This appears to be less
of an issue in Safari, but is a major issue in embedded webview
applications such as Chrome on iOS and PhoneGap built apps.

To get around this `$mdGesture` previously `touchstart` and `touchend`
events and manually dispatches `click` events. This allows them to
happen much quicker than the 350ms.  It then configures the
page to ignore clicks that were not originated by `$mdGesture`.

**Problem:** While `$mdGesture` did successfully hijack the `click`
event, it did not hijack other emulated events from iOS, including `mouseup`,
`mousedown` and the subsequent `focus` event that could originate from a
delayed `click`.

**Example of problem:**: Issue #4850 was caused by the `md-select`
opening quickly via our simulated `click` event, followed by receiving a
`350ms` OS delayed `mousedown` event resulting in an option immediately
being selected.

Some other example problems that impact the framework:

- Ink ripples are 350ms delayed (use `mousedown` and `mouseup`)
- Some components / items randomly ripple or trigger
after being focused / click.  Usually this isn't an issue, but can be
(eg. #4850)
- `focus` events are 350ms delayed (Affects input)

**Soltuion:**: This PR makes `$mdGesture` perform hijacking of
`mousedown`, `mouseup` and subsequent `focus` events in order to more
quickly dispatch them.

**Notes:** A few of our internal components needed some
refactoring as they were properly discarding the emulated `mousedown`
(which is now ignored DOM wide) and relying on those events for state,
etc.

Ripples will need a fix as they now properly ripple on `mousedown` but
can hit a situation where they receive no later `mouseup` event. Perhaps
listening to the document-wide `mouseup` event should be registered on
`mousedown`. An example is scrolling in the Docs' Sidenav via touch.

closes #4850, closes #4757

update(demo): menu and checkbox demo container sizes specified.

Revert "feat(mdGestures): greatly improve emulated click hijacking"

This reverts commit 446df804255273908841d4fa5c37e11ef18d936f.

fix(md-slider): set step property relative to min

Closes #4403. Fixes #4385.

fix(tabs): fix tab paging and sizing on IE11 when tabs are in a dialog

`elements.dummies` is not always valid on IE11. It often throws `Invalid calling object`.
The fix is to call `getElements()` to do a fresh look up of the selectors each time.
Only doing the `getElements()` call when the exception is throw was tried.
It resulted in improperly loading/sizing of tabs on small screen sizes.

Fixes #3953. Closes #5096.

fix(gestures, fabSpeedDial): Gesture ClickHijack iOS fixes and FabSpeedDial fixes

Extend the click-hijacking functionality of `$mdGestures`:

**Background:** iOS emulates click events on a `350ms` delay in order to avoid sending clicks when users pan, perform gestures, etc. This leads to pages often feeling laggy in mobile browsers. This appears to be less of an issue in Safari, but is a major issue in embedded webview applications such as Chrome on iOS and PhoneGap built apps.

To get around this `$mdGesture` currently listens to `touchstart` and `touchend` events to manually dispatch `click` events. This allows it to trigger events much quicker than the 350ms.  It then configures the page to ignore clicks that were not originated by `$mdGesture`.

**Problem:** While `$mdGesture` did successfully hijack the `click`event, it did not hijack other emulated events from iOS, including `mouseup`, `mousedown` and the subsequent `focus` event that could originate from a delayed `click`.

**Example of problem:** Issue #4850 was caused by the `md-select` opening quickly via our simulated `click` event, followed by receiving a `350ms` OS delayed `mousedown` event resulting in an option immediately being selected.

Some other example problems that impact the framework:

- Ink ripples are 350ms delayed (use `mousedown` and `mouseup`)
- Some components / items randomly ripple or trigger
after being focused / click.  Usually this isn't an issue, but can be
(eg. #4850)
- `focus` events are 350ms delayed (Affects input)

This PR makes `$mdGesture` perform hijacking of the `mousedown`, `mouseup` and subsequent `focus` events in order to more quickly dispatch them.

**Notes:** A few of our internal components needed some refactoring as they were properly discarding the emulated `mousedown` (which is now ignored DOM wide) and relying on those events for state, etc.

Ripples will need a fix as they now properly ripple on `mousedown` but can hit a situation where they receive no later `mouseup` event. Perhaps listening to the document-wide `mouseup` event should be registered on `mousedown`. An example is scrolling in the Docs' Sidenav via touch.

closes #4850, closes #4757. closes #5214. closes #5234. Refs #5195.

fix(dialog): Provide option to not autowrap templates.

For convenience, we automatically wrap templates that do not
contain a `<md-dialog>` tag within them. However, some users
would like the ability to create their own dialog directives
(like `<my-fancy-dialog>`) that internally use the `<md-dialog>`
tag within their template. This causes two `<md-dialog>` tags
to be created.

Provide a new `autoWrap` option which can be set to false to
disable autowrapping when providing a custom directive.

Fixes #4898. Closes #5237.

update version number in package.json to 0.12.0-rc1

update(docs): update layout grid docs to reflect changes in master

`flex` is the same as `flex="0"` again.
`flex="grow"` is the same as `flex="100"` again.

Closes #5245.

fix(layout): Prevent class overriding when lastClass is null

This fixes an annoying behavior of the layout attributes that is removing all the element's other classes when trying to convert layout attributes to classes.

Closes #5257.

update version number in package.json to 1.0.0-rc1

docs: Fix incorrect Codepen GitCDN links.

The release script still pointed to the old GitCDN links which
always redirect to the master branch instead of the version
specified.

Update release script to use proper links.

Fixes #5391. Closes #5392.

Update doc of md-list-item

Update the doc for md-list-item to include a description of the classes `md-2-line` and `md-3-line`, which can be used to increase the height of list items.

Closes #5412.

docs:(switch.js): documenting ng-disabled parameter

Add @param documentation for ng-disabled, in the same style as md-button

Closes #3216.

fix aria property in MdChipRmoveDirective

fix property ariahidden to aria-hidden

Closes #3835.

update(build): set AngularJS dependency to 1.4.7

update(docs): removes outdated part of tabs documentation

Closes #5181

update(tooltip): add support for dynamic `md-direction` attribute

Observing tooltip direction changes and using positionTooltip for live tooltip positioning if the tooltip is visible

*  support raw, interpolated, and expression string values to set the tooltip display direction/orientation.
*  update demos to show usages and interactions with `md-visible`

Fixes #5362. Closes #5373

fix(md-chips): appendChip disallows identical objects

*  appendChip disallows appending an identical string or an exact object (duplicate object) more than once. It now disallows identical objects from being appended.

* appendChips object check loop optimized: md-chips' appendChip uses a filter to loop through items to search for an identical object to chip. This is inefficient since it will keep searching even after it finds a match. Now mdchips appendChip uses a some loop, which stops execution as soon as a match is found.

Fixes #4466. Closes #4479.

update(docs): update starter CodePen

* use the /team/AngularMaterial url for CodePen forks
* use angular-material 1.0.0-rc1 and angular 1.4.7
* update CodePen to latest whiteframe API

Closes #5354.

fix(speedDial): Don't intercept spaces and fix animations.

* The speed dial watched the document for spacebar presses
  and intercepted them by preventing the default. There was
  really no reason for this, so the code has been removed.
  Additionally, all keypress events are now bound to the
  element itself instead of document.
* Fix the close animations to properly fire on Safari/iOS.
* Fix some issues after recent gesture updates.

Fixes #5085. Fixes #4750. Fixes #5065. Closes #5396.

fix(autocomplete): clicking on the scrollbar will no longer close
dropdown

Closes #4785
Closes #4625

fix(layout): fix wrapping and filling layouts to 100% using flex-33 or flex-66

Use calc() to determine 33% and 66% so that browser will properly add them together to make 100%.

* Remove flex-34 and flex-67.
* Update docs for these changes.

Fixes #5346. Closes #5348.

cleans up `shouldHide` code

refactor(input): refactors styles to use `display: inline-block`

fix(layout): layout-margin and layout-padding fixes for child containers

**layout-margin** and **layout-padding** were not being applied to child containers unless the *.flex* class was present. This has been fixed.

* layout-margin and layout-padding now affect immediate children
* layout-margin suffixes are supported (-sm, -gt-sm, -md, -gt-md, -lg, -gt-lg)
* layout-padding suffixes are supported (-sm, -gt-sm, -md, -gt-md, -lg, -gt-lg)

> With 'layout-margin', developers may need to override the child container flex sizes to fit properly in `layout="row"` modes. See http://codepen.io/team/AngularMaterial/pen/BoVBaE for details.

Closes #5425. Refs #5014. Refs #5156.

fix(mdChips): Autocomplete styling is incorrect.

The chips autocomplete had unnecessary styling and the default
autocomplete directive does not add the `md-input` class to it's
input, so it did not look correct.

Also fixes issue with md-chip readonly padding styles.

Fixes #4600. Closes #4621.

update(toast): increased toast z-index

Fixes #5100. Closes #5386.

Fix tooltip issue with dynamic directions.

fix(tabs): will no longer jump to top when changing tabs with
`md-dynamic-height`

Closes #4281

fix(dialog): make sure dialog only destroys itself.

Dialog destruction is async and deferred. As such, there's a risk of another dialog having been created by the time the current dialog's "destroy()" is called.

*  Added tests for testing dialog double opening.
*  Fix a bug which prevents a dialog from being closed if it's opened while another dialog is shown.

Closes #5157.

perf(theming): add on-demand style generation.

Closes #5399.

fix(backdrop): use fixed position for global backdrops.

Set backdrop `position:fixed` when the parent is BODY to give it a position based off the body viewport.

Closes #2831.

fix(speedDial): non-fab clicks no longer close immediately

In the demo application and some user's apps, the `md-open`
attribute was bound to an input element, but clicking this
element while the FAB Speed Dial was open would open and
then immediately close the speed dial since the user clicked
outside of the speed dial.

Fix by delaying the check for outside clicks until the next
digest loop.

Also fix a tiny positioning issue with the fling animation.

Fixes #5243. Closes #5440.

release script will now update latest version with RCs

update version number in package.json to 1.0.0-rc2

fix(datepicker): properly set ngModel validity. Fixes #4926

release: version 1.0.0-rc2

changes rebase strategy in release script for docs site

Add missing breaking changes back to changelog

fix(input): fixes input height in IE11

fix(input): ngMessages will no longer cause layout to change on
animation

fix(menubar): fix RTE with close dialogs invoked from menubar

Closes #5476

refactor(tooltip, util): moved generic functions from tooltip to util

* Refactored the tooltip a bit, made the code a lot approachable to read with adding updatePosition function that now is managing the whole tooltip positioning update
* Moved useful generic functions from the tooltip to the util

Closes #5419.

fix(tabs): icons in tab labels should match the text color

Closes #5465

update(layout): remove dangling commas

update(util): fix test for getParentWithPointerEvents

fix(progressLinear): Remove extra semi-colon from SCSS.

There was a single extra semi-colon in the SCSS for the
progress linear. Fix by removing it.

Fixes #5260.

fix(datepicker): throw error if inside md-input-container. For #5055

fix(layouts): removeAttr RTE on comment nodes

some directives (eg ng-messages-include) inject a comment node which will cause errors when trying to use `node.removeAttribute( )`.

Refs #5454

fix(autocomplete): handle undefined searchText

If the autocomplete's bound searchText was set to undefined,
it would throw an error.

Fix by ensuring that the searchText will always be an empty
string when performing the `handleQuery()` method.

Fixes #5162. Fixes #5393. References #5344. Closes #5445.

fix(autocomplete): fix md-not-found bug with multiple autocompletes

If a developer used more than one autocomplete on the page, all
autocompletes after the first which included a md-not-found
template would incorrectly assume that they also had one even if
they did not.

Fix logic to reset the variable to `false` when necessary.

Fixes #5400. Closes #5442.

fix(dialog): BREAKING CHANGE now md-dialog-actions

fix(card): BREAKING CHANGE now md-card-actions

Support deprecated .md-actions class.

Closes #5466.

docs(changelog): add breaking change for md-dialog-content

Closes #5470.

fix(virtual-repeat): Prevent nested calls to virtualRepeatUpdate_

Due to some browser issues, the $watchCollection callback that calls
virtualRepeatUpdate_ sometimes fires in the middle of a
virtualRepeatUpdate_ call. This can result in duplicate items showing up
in the virtual repeat list.

Fixes #4950. Closes #5009.

fix(lists): Fix alignment of secondary icons/controls.

Icons and controls (like checkbox and switch) were incorrectly
positioned. Fix by ensuring that they are all right-aligned.

Fixes #3699. Closes #5533.

docs: Update dialog demo to use md-dialog-actions.

fix(datepicker): throw error if model is not a Date. For #5266

fix(subheader): Remove 16px right margin.

Previously, the subheader had a 16px right margin that would be
visible and particularly odd if you changed the subheader
background. After recent changes with the subheader now being
stickied to the `<md-content>` instead of the parent, this can
now be removed.

Fixes #4389. Fixes #708. Closes #4419.

fix(select): allow circular references

closes #5330, references #3268

fix(select): ngModel.$touched trigger after menu close

closes #5256

fix(fab): Remove transition for fabs on ng-hide.

Buttons currently have CSS to ensure they do not attempt any
transitions when they have the `ng-hide` class attached. The
`.md-fab` buttons were not receiving the same styles due to
a specificity issue.

Add the same styles for FABs that standard buttons have.

Fixes #5235.

fix(menu-bar): fix sibling nested opening and closing incorrectly

closes #5119

docs(select): explain track by for ngModelController

closes #2862, references #5238, references #3625, references #3012

fix(select): fix ng-change over firing when using trackBy

closes #4118

fix(select): fix escape closing dialogs when used inside select

references #3827

style(menu-bar): fix ie menu items being centered

references #4439

fix(mdUtil): fix disable scroll adding extra scroll-bars on IE

closes #5300

Thanks @van88 for the investigation.

Update iconDirective.js

grammar fix in documentation

Closes #5582.

fix(button): set color of disabled button to highest css priority.

Normally a disabled button in the toolbar won't get the disabled button style, because the theme style is injected after the default style

Fixes #5569. Closes #5574.

fix(toolbar button): Fix color of raised buttons.

Raised buttons inside of a toolbar had the incorrect text color
applied. Fix styles to not apply special toolbar styling to raised buttons.

Fixes #4845. Closes #5562.

fix(virtualRepeat): Add ability for container to resize after creation

Closes #5561.

docs($mdToast): Update docs with more info and better style.

It was not clear that the `$mdToast.simple()` method returned
an object which also had all of the methods/options available
from the `build()` and `show()` methods.

* add a short comment to inform developers.
* update styles to be more readable.

Fixes #2420. Closes #5550.

fix(tabs): fix positioning absolute/fixed elements inside md-tab-content

closes #4613

docs($mdToast): Update docs with more info and better style.

It was not clear that the `$mdToast.simple()` method returned
an object which also had all of the methods/options available
from the `build()` and `show()` methods.

* add a short comment to inform developers.
* update styles to be more readable.

Fixes #2420. Closes #5550.

fix(ripple): changed ripple center from layerX/Y to offsetX/Y

Layer is not considering fixed/absolute positioned elements and it makes the ripple appear from the relative center of the container element,
Offset is relative to the target element therefore is more accurate.

fixes #4807. fixes #5508. closes #5527.

fix(ripple): removing ripples on touchmove

When touching a button in order to scroll, the button creates a ripple as its being pressed, now when the touch moved we assume that this gesture is a scroll so we remove all the ripple effects

fixes #5261. closes #5532.

fix(sidenav): Notify other close events like datepicker-close too

md-datepicker won't close if sidebar is open and the sidebar event stops propagation

Fixes #5522. Closes #5528.

feat(datepicker): predicate function to allow fine-grained control over pickable dates

Fixes #4538. Closes #5475.

update(ripple): refactor to closure function

refactor(chips): Deprecate md-on-append in favor of others.

The usage of `md-on-append` was not well documented and it's
behavior was inconsistent and confusing; many users assumed
it was a simple notification of chip additions which caused
issues.

*  renamed `md-on-append` to
`md-transform-chip` and provided a new `md-on-add` method
that is strictly a notification.

*  updated the docs and functionality of
`md-transform-chip` to show expected return values and their
associated behavior.

> This new behavior also adds support for simlultaneously using
an autocomplete to select an existing value along with the
ability to create new chips. The most common case for this is
a tag system which shows existing tags, but also allows you to
create new ones.
> Demos have been updated to show new functionality as well as
to workaround a few display issues with the contact chips demo
(#4450).

_**Note:** This work supercedes PR #3816 which can be closed when
this is merged._

BREAKING CHANGE:
`md-on-append` has been renamed/deprecated in favor of
`md-transform-chip` or the simple notifier `md-on-add`.

We expect to remove this completely in 1.0, so please update
your code to use one of the new methods.

Fixes #4666. Fixes #4193. Fixes #4412. Fixes #4863. Closes #5497. Closes #3816.

docs(layout): document negative flex order

Closes #4482. Closes #5543

fix(components): fix issue with removeClass removing previous classes

In certain parts of the project, a "removeClass(className)" is used to remove the class from the element. While this works fine in latest versions of jQuery, in jQuery < 1.9 this results in the element classes being removed when className is undefined, thus breaking the whole layout.

Closes #5538.

fix(datepicker): apply ngMessages errors when using text input. Fixes

update(components): remove null checks for constants

update(autocomplete): improve enter key use on input field

All enter key event bubbling when the input field has a valid selection.

Closes #5302. Fixes #5228.

update(theme): fix missing bracket

Closes #5350.

fix(autocomplete): Allow clicks inside md-not-found.

Fix bug causing the autocomplete to blur, lose focus, and
hide the not found message if the user attempted to click
the not found message (or a link inside of it).

Fixes #5424.

feat(ripple): ink-ripple is now getting an interpolated value

Ink ripple attribute supported only colors.
Now with interpolated value also boolean values are supported

``` html
<div md-ink-ripple="{{myFunc()}}">yay</div>
```

fixes #5438. closes #5580.

fix(ripple): moved mouseleave listener to a separated declaration

This caused tooltip to never get hidden

update(ripple): refactor color()

test(ripple): added test to ink-ripple

*  add tests for PR #5580 changes

Closes #5595.

docs(toast): remove 'fit' option which doesn't actually exist.

chore(docs): optimize images (lossless)

update(doc, datepicker): update attributes documentation

replace required to ng-required, disabled to ng-disabled and add
md-placeholder information

Closes #5591.

update(button): add default type to buttons to prevent autosubmission of forms

BREAKING CHANGE: Buttons with undefined `type` will have type="button" assigned, so forms may not submit as previously expected.

Before:
```html
<button class="md-button" ng-transclude>
```

will become
```html
<button type="button" class="md-button" ng-transclude>
```

Fixes #3127. Closes #5468.

update version number in package.json to 1.0.0-rc3

fix(menu): menu items are not aligned in Microsoft Edge

Fixes #3987, closes #5487

feat(mdMenu): add md-prevent-menu-close

closes #5457, closes #4334

fix(mdMenu): fix attempting to close non-existant nested menus

fix(select): fix auto-complete element not being removed from form

closes #5575

Update changelog to mention reverting md-button default type="button"

docs(toast): marked cancel method as DEPRECATED

fixes #4218

fix(select): fix floating label not rendering until focus

closes #5566

style(menu): fix alignment inside toolbars

fix(menuBar, menu): make work in isolate scopes (ng-repat), improve performance, broken hover hilighting
closes #4484, closes #5149, closes #5370

test(phantomJS): fix menu tests for phantomjs

amend(menu): fix removing listeners when they had not ever been added

closes #5683

fix(menu): fix divider disappearing on scrolling menu

closes #5081

fix(menu): all menus no longer self destruct when one is destroyed

closes #5395

feat(showHide): Introduce directives to notify child directives on hide/show. Features extreme tail-hooking technology.

Change the update to use nextTick so that the hide/show has already taken place.

Closes #5579.

chore(virtualRepeat): Address review comments on #5561

Closes #5633.

fix(datepicker): Icon jumping upon open/close.

When the user opened/closed the datepicker in the inputs demo,
the icon would jump to the left. This was caused by two separate
issues:

1. The demo CSS overrode only the closed styles.
2. The browser would scroll the parent datepicker to the left upon
   focusing the down-triangle button so that it could be visible.
   You can easily reproduce this by tabbing to the down-triangle
   then checking the `<md-datepicker>`s `scrollLeft` style.

Fix by removing unnecessary demo CSS and adding proper padding/margin
to the datepicker so that the down-triangle has room to appear.

Fixes #4570. Closes #5703.

pref(list): prevented unnecessary ripple container on list with ng-click

By checking if the element hasClick we preventing unnecessary ripple-container to be attached to the already attached element.

fixes #5295. closes #5658.

docs(inkRipple): added inkRipple service and directive docs

closes #5596. closes #5629.

feat(chips): add support for custom separator keys

Add the ability for chips to be created on keydown of any key code in
the `md-separator-keys` attribute. Custom key codes are supported in
addition to common ones defined in `$mdConstant.KEY_CODE`.

Closes #5279. Closes #5281.

update(tooltip): resize event listener detached on $destroy

Closes #5687. Fixes #5688.

fix(input): fixes alignment issues between textareas and inputs

Closes #5462. Closes #5682.

Revert "fix(input): fixes alignment issues between textareas and inputs"

This reverts commit fb6f81a5a0f400b65ca3ecc72a64d669f1c4bfe8.

fix(autocomplete): adjusts dropdown position for standard input style

Fixes #5558. Closes #5680.

feat(card): improved to behave as spec

Added all functionality as seen in:
http://www.google.com/design/spec/components/cards.html#cards-content-blocks

fixes #1900

Revert "feat(card): improved to behave as spec"

This reverts commit 323d5f6e693e59c596448b53e9e8bc3cf0039e9c.

style(listItem): removed unnecessary button background color and hover background color

fixes #2922. closes #5620.

style(list): overridden button and ripple default radius

Removed button border radius when was placed instead of the list item

fixes #5177. closes #5682.

fix(toast): added position relative to toast parent

Toast is aligned by `position: absolute` therefore its parent must have `position: relative` to enable the toast align properly,

*  Added `position: relative` to the parent only if there's no computed style for position (checking for `static` because this is the default computed position)

fixes #4542. closes #5660.

style(input): messages are now invisible when the input is not touched

fixes #5140. closes #5714.

fix(select): disabled option no longer reacting to hover and closing on click

Check disabled attribute before closing menu. When clicking the menu anywhere but a valid option the menu closing will be prevented

fixes #4967. Closes #5619.

fix(input): textarea auto grow fixed

*  Textarea should grow automatically if no `rows` attribute is specified.
*  Texarea should stay fixed with given `rows` attribute (no growing or shrinking)

Fixes…
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants