From 208b5aa1be9b560f2f8fc0dacac85b31e338dc24 Mon Sep 17 00:00:00 2001 From: fengtianze Date: Tue, 10 May 2022 17:28:43 +0800 Subject: [PATCH] feat: card header support secondary size --- .changeset/hungry-rats-rest.md | 5 ++++ src/card/card.component.scss | 7 +++++- src/card/helper-directives.ts | 8 +++++-- src/index.ts | 1 - src/utils/operators.ts | 42 +++++++++++++++++++++++++--------- stories/card/card.stories.mdx | 12 ++++++++++ 6 files changed, 60 insertions(+), 15 deletions(-) create mode 100644 .changeset/hungry-rats-rest.md diff --git a/.changeset/hungry-rats-rest.md b/.changeset/hungry-rats-rest.md new file mode 100644 index 000000000..e094bb194 --- /dev/null +++ b/.changeset/hungry-rats-rest.md @@ -0,0 +1,5 @@ +--- +"@alauda/ui": patch +--- + +feat: card header support secondary size diff --git a/src/card/card.component.scss b/src/card/card.component.scss index faae97d61..325e99eff 100644 --- a/src/card/card.component.scss +++ b/src/card/card.component.scss @@ -13,10 +13,15 @@ $b: aui-card; @include card-shadow; &__header { + display: flex; + align-items: center; padding: 0; + font-weight: use-var(font-weight-bold); @include text-set(xxl, main); - font-weight: use-var(font-weight-bold); + &--secondary { + @include text-set(xl); + } + .#{$b}__content { margin-top: use-var(spacing-xl); diff --git a/src/card/helper-directives.ts b/src/card/helper-directives.ts index 277e22d00..c2e87dd2e 100644 --- a/src/card/helper-directives.ts +++ b/src/card/helper-directives.ts @@ -1,12 +1,16 @@ -import { Directive } from '@angular/core'; +import { Directive, Input } from '@angular/core'; @Directive({ selector: '[auiCardHeader]', host: { '[class.aui-card__header]': 'true', + '[class.aui-card__header--secondary]': 'size === "secondary"', }, }) -export class CardHeaderDirective {} +export class CardHeaderDirective { + @Input() + size: 'default' | 'secondary' = 'default'; +} @Directive({ selector: '[auiCardFooter]', diff --git a/src/index.ts b/src/index.ts index 2cfd87a47..90f0b4dde 100644 --- a/src/index.ts +++ b/src/index.ts @@ -35,4 +35,3 @@ export * from './time-picker'; export * from './tooltip'; export * from './tree-select'; export * from './types'; -export * from './utils'; diff --git a/src/utils/operators.ts b/src/utils/operators.ts index 268a9f114..52d00b47c 100644 --- a/src/utils/operators.ts +++ b/src/utils/operators.ts @@ -1,12 +1,32 @@ -import { pipe, publishReplay, refCount } from 'rxjs'; +import { ReplaySubject, share, TimestampProvider } from 'rxjs'; -/** - * @see https://rxjs.dev/deprecations/multicasting#publishreplay - * - * FIXME: - * The recommended replacement is breaking our apps for watching resources, - * revert it back temporarily. see also https://github.com/ReactiveX/rxjs/discussions/6438 - */ -export const publishRef = (bufferSize = 1, windowTime?: number) => - // eslint-disable-next-line sonar/deprecation - pipe(publishReplay(bufferSize, windowTime), refCount()); +export type PublishRefConfig = + | number + | (import('rxjs/internal/operators/share').ShareConfig & { + bufferSize?: number; + windowTime?: number; + timestampProvider?: TimestampProvider; + }); + +export const publishRef = (bufferSizeOrConfig: PublishRefConfig = {}) => { + const { + bufferSize = 1, + windowTime, + timestampProvider, + connector = () => + new ReplaySubject(bufferSize, windowTime, timestampProvider), + resetOnError = false, + resetOnComplete = false, + resetOnRefCountZero = true, + } = typeof bufferSizeOrConfig === 'number' + ? ({ + bufferSize: bufferSizeOrConfig, + } as Exclude, number>) + : bufferSizeOrConfig; + return share({ + connector, + resetOnError, + resetOnComplete, + resetOnRefCountZero, + }); +}; diff --git a/stories/card/card.stories.mdx b/stories/card/card.stories.mdx index a8eb7e621..3fbdf6738 100644 --- a/stories/card/card.stories.mdx +++ b/stories/card/card.stories.mdx @@ -32,6 +32,18 @@ import { CardModule } from '@alauda/ui';
footer
+ +
+ secondary header +
+
+ content +
+
footer
+
`, }}