import {
Component,
ContentChild,
HostBinding,
Input,
TemplateRef,
ViewEncapsulation
} from '@angular/core';
import { toBoolean } from '../util/convert';
@Component({
selector : 'nz-card',
encapsulation: ViewEncapsulation.None,
template : `
<div class="ant-card-head" *ngIf="title">
<h3 class="ant-card-head-title">
<ng-template
[ngTemplateOutlet]="title">
</ng-template>
</h3>
<div class="ant-card-extra" *ngIf="extra">
<ng-template
[ngTemplateOutlet]="extra">
</ng-template>
</div>
</div>
<div class="ant-card-body">
<ng-template
*ngIf="!nzLoading"
[ngTemplateOutlet]="body">
</ng-template>
<div *ngIf="nzLoading">
<p class="ant-card-loading-block" style="width: 94%;"></p>
<p>
<span class="ant-card-loading-block" style="width: 28%;"></span><span class="ant-card-loading-block" style="width: 62%;"></span>
</p>
<p>
<span class="ant-card-loading-block" style="width: 22%;"></span><span class="ant-card-loading-block" style="width: 66%;"></span>
</p>
<p>
<span class="ant-card-loading-block" style="width: 56%;"></span><span class="ant-card-loading-block" style="width: 39%;"></span>
</p>
<p>
<span class="ant-card-loading-block" style="width: 21%;"></span><span class="ant-card-loading-block" style="width: 15%;"></span><span class="ant-card-loading-block" style="width: 40%;"></span>
</p>
</div>
</div>
`,
styleUrls : [
'./style/index.less',
'./style/patch.less'
],
host: {
'[class.ant-card]': 'true'
}
})
export class NzCardComponent {
private _borderd = true;
private _loading = false;
private _noHovering = false;
@Input()
@HostBinding('class.ant-card-bordered')
set nzBordered(value: boolean) {
this._borderd = toBoolean(value);
}
get nzBordered(): boolean {
return this._borderd;
}
@ContentChild('title') title: TemplateRef<void>;
@ContentChild('extra') extra: TemplateRef<void>;
@ContentChild('body') body: TemplateRef<void>;
@Input()
set nzLoading(value: boolean) {
this._loading = toBoolean(value);
}
get nzLoading(): boolean {
return this._loading;
}
@Input()
@HostBinding('class.ant-card-no-hovering')
set nzNoHovering(value: boolean) {
this._noHovering = toBoolean(value);
}
get nzNoHovering(): boolean {
return this._noHovering;
}
}