From f40dd38702bec197742b38afc075af8ec4bc6170 Mon Sep 17 00:00:00 2001 From: bqy_fe <1743369777@qq.com> Date: Mon, 11 Jul 2022 19:04:22 +0800 Subject: [PATCH] feat(module:badge): support size (#7405) --- components/badge/badge-sup.component.ts | 4 +++- components/badge/badge.component.ts | 4 +++- components/badge/badge.spec.ts | 12 +++++++++- components/badge/demo/module | 3 ++- components/badge/demo/no-wrapper.ts | 27 ++++++++++++++------- components/badge/demo/offset.md | 14 +++++++++++ components/badge/demo/offset.ts | 25 +++++++++++++++++++ components/badge/demo/ribbon.ts | 32 +++++++++++++++++++++++-- components/badge/demo/size.md | 14 +++++++++++ components/badge/demo/size.ts | 30 +++++++++++++++++++++++ components/badge/doc/index.en-US.md | 1 + components/badge/doc/index.zh-CN.md | 1 + components/badge/ribbon.component.ts | 4 +++- 13 files changed, 156 insertions(+), 15 deletions(-) create mode 100644 components/badge/demo/offset.md create mode 100644 components/badge/demo/offset.ts create mode 100644 components/badge/demo/size.md create mode 100644 components/badge/demo/size.ts diff --git a/components/badge/badge-sup.component.ts b/components/badge/badge-sup.component.ts index fbd17fc162..d5b464bde3 100644 --- a/components/badge/badge-sup.component.ts +++ b/components/badge/badge-sup.component.ts @@ -15,7 +15,7 @@ import { } from '@angular/core'; import { zoomBadgeMotion } from 'ng-zorro-antd/core/animation'; -import { NzSafeAny } from 'ng-zorro-antd/core/types'; +import { NzSafeAny, NzSizeDSType } from 'ng-zorro-antd/core/types'; @Component({ selector: 'nz-badge-sup', @@ -54,6 +54,7 @@ import { NzSafeAny } from 'ng-zorro-antd/core/types'; '[style.right.px]': `nzOffset && nzOffset[0] ? -nzOffset[0] : null`, '[style.margin-top.px]': `nzOffset && nzOffset[1] ? nzOffset[1] : null`, '[class.ant-badge-count]': `!nzDot`, + '[class.ant-badge-count-sm]': `nzSize === 'small'`, '[class.ant-badge-dot]': `nzDot`, '[class.ant-badge-multiple-words]': `countArray.length >= 2` } @@ -67,6 +68,7 @@ export class NzBadgeSupComponent implements OnInit, OnChanges { @Input() disableAnimation = false; @Input() nzCount?: number | TemplateRef; @Input() noAnimation = false; + @Input() nzSize: NzSizeDSType = 'default'; maxNumberArray: string[] = []; countArray: number[] = []; count: number = 0; diff --git a/components/badge/badge.component.ts b/components/badge/badge.component.ts index 9c5a993aa4..896e8b7bb8 100644 --- a/components/badge/badge.component.ts +++ b/components/badge/badge.component.ts @@ -26,7 +26,7 @@ import { takeUntil } from 'rxjs/operators'; import { zoomBadgeMotion } from 'ng-zorro-antd/core/animation'; import { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config'; import { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation'; -import { BooleanInput, NzSafeAny } from 'ng-zorro-antd/core/types'; +import { BooleanInput, NzSafeAny, NzSizeDSType } from 'ng-zorro-antd/core/types'; import { InputBoolean } from 'ng-zorro-antd/core/util'; import { badgePresetColors } from './preset-colors'; @@ -57,6 +57,7 @@ const NZ_CONFIG_MODULE_NAME: NzConfigKey = 'badge'; ; @Input() nzOffset?: [number, number]; + @Input() nzSize: NzSizeDSType = 'default'; constructor( public nzConfigService: NzConfigService, diff --git a/components/badge/badge.spec.ts b/components/badge/badge.spec.ts index 9fd32bfc6b..dcda911adb 100644 --- a/components/badge/badge.spec.ts +++ b/components/badge/badge.spec.ts @@ -5,7 +5,7 @@ import { By } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation'; -import { NgStyleInterface } from 'ng-zorro-antd/core/types'; +import { NgStyleInterface, NzSizeDSType } from 'ng-zorro-antd/core/types'; import { NzBadgeComponent } from './badge.component'; import { NzBadgeModule } from './badge.module'; @@ -155,6 +155,14 @@ describe('badge', () => { fixture.detectChanges(); expect(badgeElement.nativeElement.querySelector('.ant-badge-status-text').innerText).toBe('test'); }); + + it('should size work', () => { + fixture.detectChanges(); + expect(badgeElement.nativeElement.querySelector('nz-badge-sup').classList).toContain('ant-badge-count'); + testComponent.size = 'small'; + fixture.detectChanges(); + expect(badgeElement.nativeElement.querySelector('nz-badge-sup').classList).toContain('ant-badge-count-sm'); + }); }); describe('RTL', () => { @@ -194,6 +202,7 @@ describe('badge', () => { [nzOffset]="offset" [nzTitle]="title" [nzStandalone]="!inner" + [nzSize]="size" > @@ -210,6 +219,7 @@ export class NzTestBadgeBasicComponent { text!: string; title?: string | null; offset?: [number, number]; + size?: NzSizeDSType = 'default'; noAnimation = true; } diff --git a/components/badge/demo/module b/components/badge/demo/module index 1e03b5d0f7..b1bfa2887e 100644 --- a/components/badge/demo/module +++ b/components/badge/demo/module @@ -3,5 +3,6 @@ import { NzButtonModule } from 'ng-zorro-antd/button'; import { NzSwitchModule } from 'ng-zorro-antd/switch'; import { NzIconModule } from 'ng-zorro-antd/icon'; import { NzCardModule } from 'ng-zorro-antd/card'; +import { NzSpaceModule } from 'ng-zorro-antd/space'; -export const moduleList = [ NzBadgeModule, NzButtonModule, NzSwitchModule, NzIconModule, NzCardModule ]; +export const moduleList = [NzBadgeModule, NzButtonModule, NzSwitchModule, NzIconModule, NzCardModule, NzSpaceModule]; diff --git a/components/badge/demo/no-wrapper.ts b/components/badge/demo/no-wrapper.ts index 987b4aa47f..09dc3457b6 100644 --- a/components/badge/demo/no-wrapper.ts +++ b/components/badge/demo/no-wrapper.ts @@ -3,13 +3,22 @@ import { Component } from '@angular/core'; @Component({ selector: 'nz-demo-badge-no-wrapper', template: ` - - - + + + + + + + + + + + + `, styles: [ ` @@ -19,4 +28,6 @@ import { Component } from '@angular/core'; ` ] }) -export class NzDemoBadgeNoWrapperComponent {} +export class NzDemoBadgeNoWrapperComponent { + show = true; +} diff --git a/components/badge/demo/offset.md b/components/badge/demo/offset.md new file mode 100644 index 0000000000..c565332c2d --- /dev/null +++ b/components/badge/demo/offset.md @@ -0,0 +1,14 @@ +--- +order: 6 +title: + zh-CN: 自定义位置偏移 + en-US: Offset +--- + +## zh-CN + +设置状态点的位置偏移,格式为 `[left, top]`,表示状态点距默认位置左侧、上方的偏移量。 + +## en-US + +Set offset of the badge dot, the format is `[left, top]`, which represents the offset of the status dot from the left and top of the default position. \ No newline at end of file diff --git a/components/badge/demo/offset.ts b/components/badge/demo/offset.ts new file mode 100644 index 0000000000..74f1215c47 --- /dev/null +++ b/components/badge/demo/offset.ts @@ -0,0 +1,25 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'nz-demo-badge-offset', + template: ` + + + + + + `, + styles: [ + ` + .head-example { + width: 42px; + height: 42px; + border-radius: 4px; + background: #eee; + display: inline-block; + vertical-align: middle; + } + ` + ] +}) +export class NzDemoBadgeOffsetComponent {} diff --git a/components/badge/demo/ribbon.ts b/components/badge/demo/ribbon.ts index 61db12dc0c..a9ee712c15 100644 --- a/components/badge/demo/ribbon.ts +++ b/components/badge/demo/ribbon.ts @@ -3,8 +3,36 @@ import { Component } from '@angular/core'; @Component({ selector: 'nz-demo-badge-ribbon', template: ` - - And raises the spyglass. + + And raises the spyglass. + +
+ + And raises the spyglass. + +
+ + And raises the spyglass. + +
+ + And raises the spyglass. + +
+ + And raises the spyglass. + +
+ + And raises the spyglass. + +
+ + And raises the spyglass. + +
+ + And raises the spyglass. ` }) diff --git a/components/badge/demo/size.md b/components/badge/demo/size.md new file mode 100644 index 0000000000..6b75c3c48d --- /dev/null +++ b/components/badge/demo/size.md @@ -0,0 +1,14 @@ +--- +order: 7 +title: + zh-CN: 大小 + en-US: Size +--- + +## zh-CN + +可以设置有数字徽标的大小。 + +## en-US + +Set size of numeral Badge. \ No newline at end of file diff --git a/components/badge/demo/size.ts b/components/badge/demo/size.ts new file mode 100644 index 0000000000..48bf740621 --- /dev/null +++ b/components/badge/demo/size.ts @@ -0,0 +1,30 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'nz-demo-badge-size', + template: ` + + + + + + + `, + styles: [ + ` + nz-badge { + margin-right: 20px; + } + + .head-example { + width: 42px; + height: 42px; + border-radius: 4px; + background: #eee; + display: inline-block; + vertical-align: middle; + } + ` + ] +}) +export class NzDemoBadgeSizeComponent {} diff --git a/components/badge/doc/index.en-US.md b/components/badge/doc/index.en-US.md index 6dde05f7c5..3d9eae8c8f 100644 --- a/components/badge/doc/index.en-US.md +++ b/components/badge/doc/index.en-US.md @@ -38,6 +38,7 @@ import { NzBadgeModule } from 'ng-zorro-antd/badge'; | `[nzShowDot]` | Whether to display the red dot | `boolean` | `true` | | `[nzOverflowCount]` | Max count to show | `number` | `99` | ✅ | | `[nzShowZero]` | Whether to show badge when `count` is zero | `boolean` | `false` | +| `[nzSize]` | If `nzCount` is set, `size` sets the size of badge | `default \| small` | `default` | `[nzStatus]` | Set `nz-badge` as a status dot | `'success' \| 'processing' \| 'default' \| 'error' \| 'warning'` | - | | `[nzText]` | If `nzStatus` is set, `text` sets the display text of the status `dot` | `string \| TemplateRef` | - | | `[nzTitle]` | Text to show when hovering over the badge(Only Non-standalone), hide when value is `null` | `string \| null` | `nzCount` | diff --git a/components/badge/doc/index.zh-CN.md b/components/badge/doc/index.zh-CN.md index a5153261f6..537a3f5201 100644 --- a/components/badge/doc/index.zh-CN.md +++ b/components/badge/doc/index.zh-CN.md @@ -39,6 +39,7 @@ import { NzBadgeModule } from 'ng-zorro-antd/badge'; | `[nzShowDot]` | 是否展示小红点 | `boolean` | `true` | | `[nzOverflowCount]` | 展示封顶的数字值 | `number` | `99` | ✅ | | `[nzShowZero]` | 当数值为 0 时,是否展示 Badge | `boolean` | `false` | +| `[nzSize]` | 在设置了 `nzCount` 的前提下有效,设置小圆点的大小 | `default \| small` | `default` | `[nzStatus]` | 设置 `nz-badge` 为状态点 | `'success' \| 'processing' \| 'default' \| 'error' \| 'warning'` | - | | `[nzText]` | 在设置了 `nzStatus` 的前提下有效,设置状态点的文本 | `string \| TemplateRef` | - | | `[nzTitle]` | 设置鼠标放在状态点上时显示的文字(非独立使用时), 为 `null` 时隐藏 | `string \| null` | `nzCount` | diff --git a/components/badge/ribbon.component.ts b/components/badge/ribbon.component.ts index 26d1127903..f10707c77e 100644 --- a/components/badge/ribbon.component.ts +++ b/components/badge/ribbon.component.ts @@ -30,7 +30,9 @@ import { badgePresetColors } from './preset-colors'; [class.ant-ribbon-placement-start]="nzPlacement === 'start'" [style.background-color]="!presetColor && nzColor" > - {{ nzText }} + + {{ nzText }} +
`,