ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
316 lines (306 loc) • 11.9 kB
JavaScript
import { __decorate, __metadata } from 'tslib';
import { Directive, ElementRef, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, TemplateRef, ChangeDetectorRef, Optional, ContentChild, ContentChildren, NgModule } from '@angular/core';
import { InputBoolean } from 'ng-zorro-antd/core/util';
import { Directionality, BidiModule } from '@angular/cdk/bidi';
import { NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzCardGridDirective {
constructor(elementRef) {
this.elementRef = elementRef;
this.nzHoverable = true;
// TODO: move to host after View Engine deprecation
this.elementRef.nativeElement.classList.add('ant-card-grid');
}
}
NzCardGridDirective.decorators = [
{ type: Directive, args: [{
selector: '[nz-card-grid]',
exportAs: 'nzCardGrid',
host: {
'[class.ant-card-hoverable]': 'nzHoverable'
}
},] }
];
NzCardGridDirective.ctorParameters = () => [
{ type: ElementRef }
];
NzCardGridDirective.propDecorators = {
nzHoverable: [{ type: Input }]
};
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzCardGridDirective.prototype, "nzHoverable", void 0);
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzCardTabComponent {
}
NzCardTabComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-card-tab',
exportAs: 'nzCardTab',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: `
<ng-template>
<ng-content></ng-content>
</ng-template>
`
},] }
];
NzCardTabComponent.propDecorators = {
template: [{ type: ViewChild, args: [TemplateRef, { static: true },] }]
};
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
const NZ_CONFIG_MODULE_NAME = 'card';
class NzCardComponent {
constructor(nzConfigService, cdr, elementRef, directionality) {
this.nzConfigService = nzConfigService;
this.cdr = cdr;
this.elementRef = elementRef;
this.directionality = directionality;
this._nzModuleName = NZ_CONFIG_MODULE_NAME;
this.nzBordered = true;
this.nzBorderless = false;
this.nzLoading = false;
this.nzHoverable = false;
this.nzBodyStyle = null;
this.nzActions = [];
this.nzType = null;
this.nzSize = 'default';
this.dir = 'ltr';
this.destroy$ = new Subject();
// TODO: move to host after View Engine deprecation
this.elementRef.nativeElement.classList.add('ant-card');
this.nzConfigService
.getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME)
.pipe(takeUntil(this.destroy$))
.subscribe(() => {
this.cdr.markForCheck();
});
}
ngOnInit() {
var _a;
(_a = this.directionality.change) === null || _a === void 0 ? void 0 : _a.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
this.dir = direction;
this.cdr.detectChanges();
});
this.dir = this.directionality.value;
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
}
NzCardComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-card',
exportAs: 'nzCard',
preserveWhitespaces: false,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
template: `
<div class="ant-card-head" *ngIf="nzTitle || nzExtra || listOfNzCardTabComponent">
<div class="ant-card-head-wrapper">
<div class="ant-card-head-title" *ngIf="nzTitle">
<ng-container *nzStringTemplateOutlet="nzTitle">{{ nzTitle }}</ng-container>
</div>
<div class="ant-card-extra" *ngIf="nzExtra">
<ng-container *nzStringTemplateOutlet="nzExtra">{{ nzExtra }}</ng-container>
</div>
</div>
<ng-container *ngIf="listOfNzCardTabComponent">
<ng-template [ngTemplateOutlet]="listOfNzCardTabComponent.template"></ng-template>
</ng-container>
</div>
<div class="ant-card-cover" *ngIf="nzCover">
<ng-template [ngTemplateOutlet]="nzCover"></ng-template>
</div>
<div class="ant-card-body" [ngStyle]="nzBodyStyle">
<ng-container *ngIf="!nzLoading; else loadingTemplate">
<ng-content></ng-content>
</ng-container>
<ng-template #loadingTemplate>
<nz-card-loading></nz-card-loading>
</ng-template>
</div>
<ul class="ant-card-actions" *ngIf="nzActions.length">
<li *ngFor="let action of nzActions" [style.width.%]="100 / nzActions.length">
<span><ng-template [ngTemplateOutlet]="action"></ng-template></span>
</li>
</ul>
`,
host: {
'[class.ant-card-loading]': 'nzLoading',
'[class.ant-card-bordered]': 'nzBorderless === false && nzBordered',
'[class.ant-card-hoverable]': 'nzHoverable',
'[class.ant-card-small]': 'nzSize === "small"',
'[class.ant-card-contain-grid]': 'listOfNzCardGridDirective && listOfNzCardGridDirective.length',
'[class.ant-card-type-inner]': 'nzType === "inner"',
'[class.ant-card-contain-tabs]': '!!listOfNzCardTabComponent',
'[class.ant-card-rtl]': `dir === 'rtl'`
}
},] }
];
NzCardComponent.ctorParameters = () => [
{ type: NzConfigService },
{ type: ChangeDetectorRef },
{ type: ElementRef },
{ type: Directionality, decorators: [{ type: Optional }] }
];
NzCardComponent.propDecorators = {
nzBordered: [{ type: Input }],
nzBorderless: [{ type: Input }],
nzLoading: [{ type: Input }],
nzHoverable: [{ type: Input }],
nzBodyStyle: [{ type: Input }],
nzCover: [{ type: Input }],
nzActions: [{ type: Input }],
nzType: [{ type: Input }],
nzSize: [{ type: Input }],
nzTitle: [{ type: Input }],
nzExtra: [{ type: Input }],
listOfNzCardTabComponent: [{ type: ContentChild, args: [NzCardTabComponent, { static: false },] }],
listOfNzCardGridDirective: [{ type: ContentChildren, args: [NzCardGridDirective,] }]
};
__decorate([
WithConfig(),
InputBoolean(),
__metadata("design:type", Boolean)
], NzCardComponent.prototype, "nzBordered", void 0);
__decorate([
WithConfig(),
InputBoolean(),
__metadata("design:type", Boolean)
], NzCardComponent.prototype, "nzBorderless", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzCardComponent.prototype, "nzLoading", void 0);
__decorate([
WithConfig(),
InputBoolean(),
__metadata("design:type", Boolean)
], NzCardComponent.prototype, "nzHoverable", void 0);
__decorate([
WithConfig(),
__metadata("design:type", String)
], NzCardComponent.prototype, "nzSize", void 0);
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzCardLoadingComponent {
constructor(elementRef) {
this.elementRef = elementRef;
this.listOfLoading = [
['ant-col-22'],
['ant-col-8', 'ant-col-15'],
['ant-col-6', 'ant-col-18'],
['ant-col-13', 'ant-col-9'],
['ant-col-4', 'ant-col-3', 'ant-col-16'],
['ant-col-8', 'ant-col-6', 'ant-col-8']
];
// TODO: move to host after View Engine deprecation
this.elementRef.nativeElement.classList.add('ant-card-loading-content');
}
}
NzCardLoadingComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-card-loading',
exportAs: 'nzCardLoading',
template: `
<div class="ant-card-loading-content">
<div class="ant-row" style="margin-left: -4px; margin-right: -4px;" *ngFor="let listOfClassName of listOfLoading">
<div *ngFor="let className of listOfClassName" [ngClass]="className" style="padding-left: 4px; padding-right: 4px;">
<div class="ant-card-loading-block"></div>
</div>
</div>
</div>
`,
preserveWhitespaces: false,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None
},] }
];
NzCardLoadingComponent.ctorParameters = () => [
{ type: ElementRef }
];
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzCardMetaComponent {
constructor(elementRef) {
this.elementRef = elementRef;
this.nzTitle = null;
this.nzDescription = null;
this.nzAvatar = null;
// TODO: move to host after View Engine deprecation
this.elementRef.nativeElement.classList.add('ant-card-meta');
}
}
NzCardMetaComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-card-meta',
exportAs: 'nzCardMeta',
preserveWhitespaces: false,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
template: `
<div class="ant-card-meta-avatar" *ngIf="nzAvatar">
<ng-template [ngTemplateOutlet]="nzAvatar"></ng-template>
</div>
<div class="ant-card-meta-detail" *ngIf="nzTitle || nzDescription">
<div class="ant-card-meta-title" *ngIf="nzTitle">
<ng-container *nzStringTemplateOutlet="nzTitle">{{ nzTitle }}</ng-container>
</div>
<div class="ant-card-meta-description" *ngIf="nzDescription">
<ng-container *nzStringTemplateOutlet="nzDescription">{{ nzDescription }}</ng-container>
</div>
</div>
`
},] }
];
NzCardMetaComponent.ctorParameters = () => [
{ type: ElementRef }
];
NzCardMetaComponent.propDecorators = {
nzTitle: [{ type: Input }],
nzDescription: [{ type: Input }],
nzAvatar: [{ type: Input }]
};
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzCardModule {
}
NzCardModule.decorators = [
{ type: NgModule, args: [{
imports: [CommonModule, NzOutletModule],
declarations: [NzCardComponent, NzCardGridDirective, NzCardMetaComponent, NzCardLoadingComponent, NzCardTabComponent],
exports: [BidiModule, NzCardComponent, NzCardGridDirective, NzCardMetaComponent, NzCardLoadingComponent, NzCardTabComponent]
},] }
];
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
/**
* Generated bundle index. Do not edit.
*/
export { NzCardComponent, NzCardGridDirective, NzCardLoadingComponent, NzCardMetaComponent, NzCardModule, NzCardTabComponent };
//# sourceMappingURL=ng-zorro-antd-card.js.map