UNPKG

ng-ytl-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

83 lines (73 loc) 2.02 kB
/* tslint:disable:no-any */ import { forwardRef, AfterContentInit, Component, ElementRef, Input, OnInit, Renderer, ViewEncapsulation, } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { toBoolean } from '../util/convert'; @Component({ selector : 'nz-checkbox-group', encapsulation: ViewEncapsulation.None, template : ` <label [class.ant-checkbox-vertical]="nzType=='vertical'" nz-checkbox *ngFor="let option of _options" [nzDisabled]="option.disabled||nzDisabled" [(ngModel)]="option.checked" (ngModelChange)="_optionChange()"> <span>{{ option.label }}</span> </label>`, providers : [ { provide : NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NzCheckboxGroupComponent), multi : true } ], styleUrls : [ './style/index.less' ] }) export class NzCheckboxGroupComponent implements ControlValueAccessor { private _disabled = false; _el: HTMLElement; _options: any[]; _prefixCls = 'ant-checkbox-group'; // ngModel Access onChange: any = Function.prototype; onTouched: any = Function.prototype; @Input() nzType: string; @Input() set nzDisabled(value: boolean) { this._disabled = toBoolean(value); } get nzDisabled(): boolean { return this._disabled; } _optionChange(): void { this.onChange(this._options); } constructor(private _elementRef: ElementRef, private _render: Renderer) { this._el = this._elementRef.nativeElement; this._render.setElementClass(this._el, `${this._prefixCls}`, true); } writeValue(value: any): void { this._options = value; } registerOnChange(fn: (_: any) => {}): void { this.onChange = fn; } registerOnTouched(fn: () => {}): void { this.onTouched = fn; } setDisabledState(isDisabled: boolean): void { this.nzDisabled = isDisabled; } }