BREAKING CHANGES: - `ShadowDomStrategy` was removed. To specify the encapsulation of a component use `@View(encapsulation: ViewEncapsulation.NONE | ViewEncapsulation.EMULATED | ViewEncapsulation.NATIVE)` - The default encapsulation strategy is now `ViewEncapsulation.EMULATED` if a component contains styles and `ViewEncapsulation.NONE` if it does not. Before this was always `NONE`. - `ViewLoader` now returns the template as a string and the styles as a separate array
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import {Component, View, LifecycleEvent, ViewEncapsulation} from 'angular2/angular2';
|
|
import {isPresent} from 'angular2/src/facade/lang';
|
|
|
|
|
|
@Component({selector: '[md-button]:not([href])'})
|
|
@View({
|
|
templateUrl: 'package:angular2_material/src/components/button/button.html',
|
|
encapsulation: ViewEncapsulation.NONE
|
|
})
|
|
export class MdButton {
|
|
// TODO(jelbourn): Ink ripples.
|
|
}
|
|
|
|
|
|
@Component({
|
|
selector: '[md-button][href]',
|
|
properties: ['disabled'],
|
|
host: {'(click)': 'onClick($event)', '[tabIndex]': 'tabIndex'},
|
|
lifecycle: [LifecycleEvent.onChange]
|
|
})
|
|
@View({
|
|
templateUrl: 'package:angular2_material/src/components/button/button.html',
|
|
encapsulation: ViewEncapsulation.NONE
|
|
})
|
|
export class MdAnchor {
|
|
tabIndex: number;
|
|
|
|
/** Whether the component is disabled. */
|
|
disabled: boolean;
|
|
|
|
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.tabIndex = this.disabled ? -1 : 0;
|
|
}
|
|
}
|