mseemann/angular2-mdl

View on GitHub
projects/core/src/lib/icon-toggle/mdl-icon-toggle.component.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import {
  Component,
  ElementRef,
  forwardRef,
  HostBinding,
  Renderer2,
  ViewEncapsulation,
} from "@angular/core";
import { NG_VALUE_ACCESSOR } from "@angular/forms";
import { MdlCheckboxComponent } from "../checkbox/mdl-checkbox.component";

@Component({
  selector: "mdl-icon-toggle",
  providers: [
    {
      provide: NG_VALUE_ACCESSOR,
      useExisting: forwardRef(() => MdlIconToggleComponent),
      multi: true,
    },
  ],
  template: `
    <input
      type="checkbox"
      class="mdl-icon-toggle__input"
      (focus)="onFocus()"
      (blur)="onBlur()"
      [disabled]="disabled"
      [(ngModel)]="value"
    />
    <mdl-icon class="mdl-icon-toggle__label">
      <ng-content></ng-content>
    </mdl-icon>
  `,
  encapsulation: ViewEncapsulation.None,
})
export class MdlIconToggleComponent extends MdlCheckboxComponent {
  @HostBinding("class.mdl-icon-toggle") isIconToggle = true;

  constructor(elementRef: ElementRef, renderer: Renderer2) {
    super(elementRef, renderer);
    this.isCheckbox = false;
  }
}