From aa2ea54eba8e4f68c23240ca88f84682f7cf6552 Mon Sep 17 00:00:00 2001
From: Junhan Yang <50307523+yangjunhan@users.noreply.github.com>
Date: Thu, 10 Sep 2020 15:40:45 +0800
Subject: [PATCH] feat(module:skeleton): add nzRound prop and skeleton-element
image (#5710)
---
components/skeleton/demo/children.md | 4 +-
components/skeleton/demo/element.md | 10 +--
components/skeleton/demo/element.ts | 88 +++++++++----------
components/skeleton/demo/list.md | 2 +-
components/skeleton/demo/module | 13 ++-
components/skeleton/doc/index.en-US.md | 8 ++
components/skeleton/doc/index.zh-CN.md | 7 ++
.../skeleton/skeleton-element.component.ts | 33 ++++---
components/skeleton/skeleton.component.ts | 4 +-
components/skeleton/skeleton.module.ts | 3 +
components/skeleton/skeleton.spec.ts | 52 +++++++++--
components/skeleton/style/index.less | 2 +-
12 files changed, 152 insertions(+), 74 deletions(-)
diff --git a/components/skeleton/demo/children.md b/components/skeleton/demo/children.md
index bd6dcb61dd0..f08df0b76d7 100644
--- a/components/skeleton/demo/children.md
+++ b/components/skeleton/demo/children.md
@@ -1,5 +1,5 @@
---
-order: 3
+order: 4
title:
zh-CN: 包含子组件
en-US: Contains sub component
@@ -10,5 +10,5 @@ title:
加载占位图包含子组件。
## en-US
-
+
Skeleton contains sub component.
diff --git a/components/skeleton/demo/element.md b/components/skeleton/demo/element.md
index 7b6bb298e52..3987af4fbe1 100644
--- a/components/skeleton/demo/element.md
+++ b/components/skeleton/demo/element.md
@@ -1,14 +1,14 @@
---
-order: 2
+order: 3
title:
- zh-CN: 骨架按钮、头像和输入框。
- en-US: Skeleton button, avatar and input
+ zh-CN: 按钮/头像/输入框/图像
+ en-US: Button/Avatar/Input/Image
---
## zh-CN
-骨架按钮、头像和输入框。
+骨架按钮、头像、输入框和图像。
## en-US
-Skeleton button, avatar and input.
\ No newline at end of file
+Skeleton button, avatar, input and image.
\ No newline at end of file
diff --git a/components/skeleton/demo/element.ts b/components/skeleton/demo/element.ts
index f637563c6c7..7575b2c3f6c 100644
--- a/components/skeleton/demo/element.ts
+++ b/components/skeleton/demo/element.ts
@@ -10,82 +10,76 @@ import {
@Component({
selector: 'nz-demo-skeleton-element',
template: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- ButtonActive:
-
-
-
- ButtonSize:
-
+
+ Size:
+
-
- ButtonShape:
-
-
-
-
-
+
+ Active:
+
-
-
-
- AvatarActive:
-
-
-
- AvatarSize:
-
+
+ Button Shape:
+
-
-
+
+
-
- AvatarShape:
+
+ Avatar Shape:
-
-
-
-
-
-
- InputActive:
-
-
-
- InputSize:
-
-
-
-
-
-
-
-
-
`
})
export class NzDemoSkeletonElementComponent {
buttonActive = false;
avatarActive = false;
inputActive = false;
+ imageActive = false;
buttonSize: NzSkeletonButtonSize = 'default';
avatarSize: NzSkeletonAvatarSize = 'default';
inputSize: NzSkeletonInputSize = 'default';
+ elementActive = false;
buttonShape: NzSkeletonButtonShape = 'default';
avatarShape: NzSkeletonAvatarShape = 'circle';
+ elementSize: NzSkeletonInputSize = 'default';
}
diff --git a/components/skeleton/demo/list.md b/components/skeleton/demo/list.md
index 5767637cf79..7d6fabcafb6 100644
--- a/components/skeleton/demo/list.md
+++ b/components/skeleton/demo/list.md
@@ -1,5 +1,5 @@
---
-order: 4
+order: 5
title:
zh-CN: 列表样例
en-US: List Sample
diff --git a/components/skeleton/demo/module b/components/skeleton/demo/module
index 2e18a602a7c..3ebab5e2cae 100644
--- a/components/skeleton/demo/module
+++ b/components/skeleton/demo/module
@@ -4,5 +4,16 @@ import { NzSwitchModule } from 'ng-zorro-antd/switch';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzRadioModule } from 'ng-zorro-antd/radio';
+import { NzDividerModule } from 'ng-zorro-antd/divider';
+import { NzSpaceModule } from 'ng-zorro-antd/space';
-export const moduleList = [ NzSkeletonModule, NzListModule, NzSwitchModule, NzIconModule, NzButtonModule, NzRadioModule ];
+export const moduleList = [
+ NzSkeletonModule,
+ NzListModule,
+ NzSwitchModule,
+ NzIconModule,
+ NzButtonModule,
+ NzRadioModule,
+ NzDividerModule,
+ NzSpaceModule
+];
diff --git a/components/skeleton/doc/index.en-US.md b/components/skeleton/doc/index.en-US.md
index 4ee9f5618f5..edd009ed4d6 100644
--- a/components/skeleton/doc/index.en-US.md
+++ b/components/skeleton/doc/index.en-US.md
@@ -30,6 +30,7 @@ import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
| `[nzLoading]` | Display the skeleton when `true` | `boolean` | - |
| `[nzParagraph]` | Show paragraph placeholder | `boolean \| NzSkeletonParagraph` | `true` |
| `[nzTitle]` | Show title placeholder | `boolean \| NzSkeletonTitle` | `true` |
+| `[nzRound]` | Show paragraph and title radius when `true` | `boolean` | `false` |
### NzSkeletonAvatar
@@ -74,3 +75,10 @@ import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
| --- | --- | --- | --- |
| `[nzActive]` | Show animation effect | `boolean` | `false` |
| `[nzSize]` | Set the size | `'large' \| 'small' \| 'default'` | `'default'` |
+
+### nz-skeleton-element [nzType="image"]
+
+| Property | Description | Type | Default |
+| --- | --- | --- | --- |
+| `[nzActive]` | Show animation effect | `boolean` | `false` |
+
diff --git a/components/skeleton/doc/index.zh-CN.md b/components/skeleton/doc/index.zh-CN.md
index 1a3b89de6be..9ff2b64659c 100644
--- a/components/skeleton/doc/index.zh-CN.md
+++ b/components/skeleton/doc/index.zh-CN.md
@@ -31,6 +31,7 @@ import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
| `[nzLoading]` | 为 `true` 时,显示占位图。反之则直接展示子组件 | `boolean` | - |
| `[nzParagraph]` | 是否显示段落占位图 | `boolean \| NzSkeletonParagraph` | `true` |
| `[nzTitle]` | 是否显示标题占位图 | `boolean \| NzSkeletonTitle` | `true` |
+| `[nzRound]` | 为 true 时,段落和标题显示圆角 | `boolean` | `false` |
### NzSkeletonAvatar
@@ -75,3 +76,9 @@ import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
| --- | --- | --- | --- |
| `[nzActive]` | 是否展示动画效果 | `boolean` | `false` |
| `[nzSize]` | 大小 | `'large' \| 'small' \| 'default'` | `'default'` |
+
+### nz-skeleton-element [nzType="image"]
+
+| 属性 | 说明 | 类型 | 默认值 |
+| --- | --- | --- | --- |
+| `[nzActive]` | 是否展示动画效果 | `boolean` | `false` |
diff --git a/components/skeleton/skeleton-element.component.ts b/components/skeleton/skeleton-element.component.ts
index 389af187ec4..fa533d2b795 100644
--- a/components/skeleton/skeleton-element.component.ts
+++ b/components/skeleton/skeleton-element.component.ts
@@ -22,7 +22,7 @@ import {
})
export class NzSkeletonElementDirective {
@Input() nzActive: boolean = false;
- @Input() nzType!: 'button' | 'input' | 'avatar';
+ @Input() nzType!: 'button' | 'input' | 'avatar' | 'image';
}
@Component({
@@ -30,13 +30,12 @@ export class NzSkeletonElementDirective {
selector: 'nz-skeleton-element[nzType="button"]',
template: `
-
+ >
`
})
export class NzSkeletonElementButtonComponent {
@@ -49,14 +48,13 @@ export class NzSkeletonElementButtonComponent {
selector: 'nz-skeleton-element[nzType="avatar"]',
template: `
-
+ >
`
})
export class NzSkeletonElementAvatarComponent implements OnChanges {
@@ -83,13 +81,28 @@ export class NzSkeletonElementAvatarComponent implements OnChanges {
selector: 'nz-skeleton-element[nzType="input"]',
template: `
-
+ >
`
})
export class NzSkeletonElementInputComponent {
@Input() nzSize: NzSkeletonInputSize = 'default';
}
+
+@Component({
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ selector: 'nz-skeleton-element[nzType="image"]',
+ template: `
+
+
+
+ `
+})
+export class NzSkeletonElementImageComponent {}
diff --git a/components/skeleton/skeleton.component.ts b/components/skeleton/skeleton.component.ts
index 0b6b37d11b6..73aa3c27078 100644
--- a/components/skeleton/skeleton.component.ts
+++ b/components/skeleton/skeleton.component.ts
@@ -26,7 +26,8 @@ import { NzSkeletonAvatar, NzSkeletonAvatarShape, NzSkeletonAvatarSize, NzSkelet
exportAs: 'nzSkeleton',
host: {
'[class.ant-skeleton-with-avatar]': '!!nzAvatar',
- '[class.ant-skeleton-active]': 'nzActive'
+ '[class.ant-skeleton-active]': 'nzActive',
+ '[class.ant-skeleton-round]': '!!nzRound'
},
template: `
@@ -48,6 +49,7 @@ import { NzSkeletonAvatar, NzSkeletonAvatarShape, NzSkeletonAvatarSize, NzSkelet
export class NzSkeletonComponent implements OnInit, OnChanges {
@Input() nzActive = false;
@Input() nzLoading = true;
+ @Input() nzRound = false;
@Input() nzTitle: NzSkeletonTitle | boolean = true;
@Input() nzAvatar: NzSkeletonAvatar | boolean = false;
@Input() nzParagraph: NzSkeletonParagraph | boolean = true;
diff --git a/components/skeleton/skeleton.module.ts b/components/skeleton/skeleton.module.ts
index ac7be2287de..33d7190eafb 100644
--- a/components/skeleton/skeleton.module.ts
+++ b/components/skeleton/skeleton.module.ts
@@ -9,6 +9,7 @@ import {
NzSkeletonElementAvatarComponent,
NzSkeletonElementButtonComponent,
NzSkeletonElementDirective,
+ NzSkeletonElementImageComponent,
NzSkeletonElementInputComponent
} from './skeleton-element.component';
import { NzSkeletonComponent } from './skeleton.component';
@@ -19,6 +20,7 @@ import { NzSkeletonComponent } from './skeleton.component';
NzSkeletonElementDirective,
NzSkeletonElementButtonComponent,
NzSkeletonElementAvatarComponent,
+ NzSkeletonElementImageComponent,
NzSkeletonElementInputComponent
],
imports: [CommonModule],
@@ -27,6 +29,7 @@ import { NzSkeletonComponent } from './skeleton.component';
NzSkeletonElementDirective,
NzSkeletonElementButtonComponent,
NzSkeletonElementAvatarComponent,
+ NzSkeletonElementImageComponent,
NzSkeletonElementInputComponent
]
})
diff --git a/components/skeleton/skeleton.spec.ts b/components/skeleton/skeleton.spec.ts
index d58d3e940ec..150d422d3a3 100644
--- a/components/skeleton/skeleton.spec.ts
+++ b/components/skeleton/skeleton.spec.ts
@@ -140,6 +140,15 @@ describe('skeleton', () => {
expect(paragraphs[3].style.width).toBe('');
});
});
+
+ describe('#nzRound', () => {
+ it('should round work', () => {
+ expect(dl.nativeElement.querySelector('.ant-skeleton-round')).toBeFalsy();
+ testComp.nzRound = true;
+ fixture.detectChanges();
+ expect(dl.nativeElement.querySelector('.ant-skeleton-round')).toBeTruthy();
+ });
+ });
});
describe('skeleton element', () => {
@@ -163,6 +172,9 @@ describe('skeleton element', () => {
testComp.nzActive = true;
fixture.detectChanges();
expect(dl.nativeElement.querySelector('.ant-skeleton-active')).toBeTruthy();
+ testComp.useSuite = 4;
+ fixture.detectChanges();
+ expect(dl.nativeElement.querySelector('.ant-skeleton-active')).toBeTruthy();
});
it('should nzSize work', () => {
@@ -196,13 +208,30 @@ describe('skeleton element', () => {
fixture.detectChanges();
expect(dl.nativeElement.querySelector('.ant-skeleton-button-round')).toBeTruthy();
});
+
+ it('should image svg work', () => {
+ fixture.detectChanges();
+ expect(dl.nativeElement.querySelector('svg')).toBeNull();
+ testComp.useSuite = 4;
+ fixture.detectChanges();
+ expect(dl.nativeElement.querySelector('svg')).toBeTruthy();
+ });
});
@Component({
- template: ` `
+ template: `
+
+ `
})
export class NzTestSkeletonComponent {
nzActive: boolean = false;
+ nzRound: boolean = false;
nzAvatar: NzSkeletonAvatar | boolean = false;
nzTitle: NzSkeletonTitle | boolean = false;
nzParagraph: NzSkeletonParagraph | boolean = false;
@@ -211,11 +240,22 @@ export class NzTestSkeletonComponent {
@Component({
template: `
-
-
-
-
-
+
+
+
+
`
})
diff --git a/components/skeleton/style/index.less b/components/skeleton/style/index.less
index 6528289d4b4..b051216d0c0 100644
--- a/components/skeleton/style/index.less
+++ b/components/skeleton/style/index.less
@@ -262,4 +262,4 @@
}
}
-@import './rtl';
+@import './rtl';
\ No newline at end of file