48 lines
1.3 KiB
JavaScript
Raw Normal View History

import {Component, View} from 'angular2/angular2';
import {PropertySetter, EventEmitter} from 'angular2/src/core/annotations/di';
import {onChange} from 'angular2/src/core/annotations/annotations';
import {isPresent, StringWrapper} from 'angular2/src/facade/lang';
@Component({selector: '[md-button]:not([href])'})
@View({templateUrl: 'angular2_material/src/components/button/button.html'})
export class MdButton {
// TODO(jelbourn): Ink ripples.
}
@Component({
selector: '[md-button][href]',
properties: {
'disabled': 'disabled'
},
hostListeners: {'click': 'onClick($event)'},
lifecycle: [onChange]
})
@View({
templateUrl: 'angular2_material/src/components/button/button.html'
})
export class MdAnchor {
tabIndexSetter: Function;
/** Whether the component is disabled. */
disabled: boolean;
constructor(@PropertySetter('tabIndex') tabIndexSetter: Function) {
this.tabIndexSetter = tabIndexSetter;
}
onClick(event) {
// A disabled anchor shouldn't navigate anywhere.
if (isPresent(this.disabled) && this.disabled !== false) {
event.preventDefault();
}
}
/** Invoked when a change is detected. */
onChange(_) {
// A disabled anchor should not be in the tab flow.
this.tabIndexSetter(this.disabled ? -1 : 0);
}
}