Skip to content

Commit 7f830b6

Browse files
xelaintdamienwebdev
authored andcommitted
feat(design): convert card component to standalone (#3054)
1 parent 1de68ab commit 7f830b6

24 files changed

+126
-38
lines changed

libs/design/card/README.md

+41
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,47 @@ The example below is a default, filled card that includes all of a card's pre-st
99

1010
<design-land-example-viewer-container example="basic-card"></design-land-example-viewer-container>
1111

12+
## Usage
13+
14+
### Within a standalone component
15+
To use card in a standalone component, import it directly into your custom component:
16+
17+
```ts
18+
@Component({
19+
selector: 'custom-component',
20+
templateUrl: './custom-component.component.html',
21+
standalone: true,
22+
imports: [
23+
DAFF_CARD_COMPONENTS,
24+
],
25+
})
26+
export class CustomComponent {}
27+
```
28+
29+
### Within a module (deprecated)
30+
To use card in a module, import `DaffCardModule` into your custom module:
31+
32+
```ts
33+
import { NgModule } from '@angular/core';
34+
35+
import { DaffCardModule } from '@daffodil/design/card';
36+
37+
@NgModule({
38+
declarations: [
39+
CustomComponent,
40+
],
41+
exports: [
42+
CustomComponent,
43+
],
44+
imports: [
45+
DaffCardModule,
46+
],
47+
})
48+
export class CustomComponentModule { }
49+
```
50+
51+
> This method is deprecated. It's recommended to update all custom components to standalone.
52+
1253
## Supported Content Types
1354
A card supports a wide variety of content and includes minimally pre-styled `image`, `icon`, `tagline`, `title`, `content`, and `actions` content containers.
1455

libs/design/card/examples/src/basic-card/basic-card.component.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { FaIconComponent } from '@fortawesome/angular-fontawesome';
66
import { faMapMarked } from '@fortawesome/free-solid-svg-icons';
77

88
import { DAFF_BUTTON_COMPONENTS } from '@daffodil/design/button';
9-
import { DaffCardModule } from '@daffodil/design/card';
10-
import { DaffImageModule } from '@daffodil/design/image';
9+
import { DAFF_CARD_COMPONENTS } from '@daffodil/design/card';
10+
import { DAFF_IMAGE_COMPONENTS } from '@daffodil/design/image';
1111

1212
@Component({
1313
// eslint-disable-next-line @angular-eslint/component-selector
@@ -17,8 +17,8 @@ import { DaffImageModule } from '@daffodil/design/image';
1717
changeDetection: ChangeDetectionStrategy.OnPush,
1818
standalone: true,
1919
imports: [
20-
DaffCardModule,
21-
DaffImageModule,
20+
DAFF_CARD_COMPONENTS,
21+
DAFF_IMAGE_COMPONENTS,
2222
FaIconComponent,
2323
DAFF_BUTTON_COMPONENTS,
2424
],

libs/design/card/examples/src/card-orientation/card-orientation.component.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import { FaIconComponent } from '@fortawesome/angular-fontawesome';
1111
import { faMapMarked } from '@fortawesome/free-solid-svg-icons';
1212

1313
import { DAFF_BUTTON_COMPONENTS } from '@daffodil/design/button';
14-
import { DaffCardModule } from '@daffodil/design/card';
15-
import { DaffImageModule } from '@daffodil/design/image';
14+
import { DAFF_CARD_COMPONENTS } from '@daffodil/design/card';
15+
import { DAFF_IMAGE_COMPONENTS } from '@daffodil/design/image';
1616

1717
@Component({
1818
// eslint-disable-next-line @angular-eslint/component-selector
@@ -22,8 +22,8 @@ import { DaffImageModule } from '@daffodil/design/image';
2222
changeDetection: ChangeDetectionStrategy.OnPush,
2323
standalone: true,
2424
imports: [
25-
DaffCardModule,
26-
DaffImageModule,
25+
DAFF_CARD_COMPONENTS,
26+
DAFF_IMAGE_COMPONENTS,
2727
FaIconComponent,
2828
DAFF_BUTTON_COMPONENTS,
2929
ReactiveFormsModule,

libs/design/card/examples/src/card-theming/card-theming.component.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
ReactiveFormsModule,
99
} from '@angular/forms';
1010

11-
import { DaffCardModule } from '@daffodil/design/card';
11+
import { DAFF_CARD_COMPONENTS } from '@daffodil/design/card';
1212

1313
@Component({
1414
// eslint-disable-next-line @angular-eslint/component-selector
@@ -22,7 +22,7 @@ import { DaffCardModule } from '@daffodil/design/card';
2222
changeDetection: ChangeDetectionStrategy.OnPush,
2323
standalone: true,
2424
imports: [
25-
DaffCardModule,
25+
DAFF_CARD_COMPONENTS,
2626
ReactiveFormsModule,
2727
NgFor,
2828
],

libs/design/card/examples/src/linkable-card/linkable-card.component.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import {
88
ReactiveFormsModule,
99
} from '@angular/forms';
1010

11-
import { DaffCardModule } from '@daffodil/design/card';
12-
import { DaffImageModule } from '@daffodil/design/image';
11+
import { DAFF_CARD_COMPONENTS } from '@daffodil/design/card';
12+
import { DAFF_IMAGE_COMPONENTS } from '@daffodil/design/image';
1313

1414
@Component({
1515
// eslint-disable-next-line @angular-eslint/component-selector
@@ -19,8 +19,8 @@ import { DaffImageModule } from '@daffodil/design/image';
1919
changeDetection: ChangeDetectionStrategy.OnPush,
2020
standalone: true,
2121
imports: [
22-
DaffCardModule,
23-
DaffImageModule,
22+
DAFF_CARD_COMPONENTS,
23+
DAFF_IMAGE_COMPONENTS,
2424
ReactiveFormsModule,
2525
NgFor,
2626
],

libs/design/card/examples/src/raised-card/raised-card.component.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import {
88
ReactiveFormsModule,
99
} from '@angular/forms';
1010

11-
import { DaffCardModule } from '@daffodil/design/card';
12-
import { DaffImageModule } from '@daffodil/design/image';
11+
import { DAFF_CARD_COMPONENTS } from '@daffodil/design/card';
12+
import { DAFF_IMAGE_COMPONENTS } from '@daffodil/design/image';
1313

1414
@Component({
1515
// eslint-disable-next-line @angular-eslint/component-selector
@@ -19,8 +19,8 @@ import { DaffImageModule } from '@daffodil/design/image';
1919
changeDetection: ChangeDetectionStrategy.OnPush,
2020
standalone: true,
2121
imports: [
22-
DaffCardModule,
23-
DaffImageModule,
22+
DAFF_CARD_COMPONENTS,
23+
DAFF_IMAGE_COMPONENTS,
2424
ReactiveFormsModule,
2525
NgFor,
2626
],

libs/design/card/examples/src/stroked-card/stroked-card.component.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import {
88
ReactiveFormsModule,
99
} from '@angular/forms';
1010

11-
import { DaffCardModule } from '@daffodil/design/card';
12-
import { DaffImageModule } from '@daffodil/design/image';
11+
import { DAFF_CARD_COMPONENTS } from '@daffodil/design/card';
12+
import { DAFF_IMAGE_COMPONENTS } from '@daffodil/design/image';
1313

1414
@Component({
1515
// eslint-disable-next-line @angular-eslint/component-selector
@@ -19,8 +19,8 @@ import { DaffImageModule } from '@daffodil/design/image';
1919
changeDetection: ChangeDetectionStrategy.OnPush,
2020
standalone: true,
2121
imports: [
22-
DaffCardModule,
23-
DaffImageModule,
22+
DAFF_CARD_COMPONENTS,
23+
DAFF_IMAGE_COMPONENTS,
2424
ReactiveFormsModule,
2525
NgFor,
2626
],

libs/design/card/src/card-actions/card-actions.directive.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ import { DaffCardActionsDirective } from './card-actions.directive';
1313

1414
@Component({
1515
template: `<div daffCardActions></div>`,
16+
standalone: true,
17+
imports: [
18+
DaffCardActionsDirective,
19+
],
1620
})
1721

1822
class WrapperComponent {}
@@ -24,8 +28,7 @@ describe('@daffodil/design/card | DaffCardActionsDirective', () => {
2428

2529
beforeEach(waitForAsync(() => {
2630
TestBed.configureTestingModule({
27-
declarations: [
28-
DaffCardActionsDirective,
31+
imports: [
2932
WrapperComponent,
3033
],
3134
})

libs/design/card/src/card-actions/card-actions.directive.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55

66
@Directive({
77
selector: '[daffCardActions]',
8+
standalone: true,
89
})
910
export class DaffCardActionsDirective {
1011

libs/design/card/src/card-content/card-content.directive.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ import { DaffCardContentDirective } from './card-content.directive';
1313

1414
@Component({
1515
template: `<div daffCardContent></div>`,
16+
standalone: true,
17+
imports: [
18+
DaffCardContentDirective,
19+
],
1620
})
1721

1822
class WrapperComponent {}
@@ -24,8 +28,7 @@ describe('@daffodil/design/card | DaffCardContentDirective', () => {
2428

2529
beforeEach(waitForAsync(() => {
2630
TestBed.configureTestingModule({
27-
declarations: [
28-
DaffCardContentDirective,
31+
imports: [
2932
WrapperComponent,
3033
],
3134
})

libs/design/card/src/card-content/card-content.directive.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55

66
@Directive({
77
selector: '[daffCardContent]',
8+
standalone: true,
89
})
910
export class DaffCardContentDirective {
1011

libs/design/card/src/card-icon/card-icon.directive.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ import { DaffCardIconDirective } from './card-icon.directive';
1313

1414
@Component({
1515
template: `<div daffCardIcon></div>`,
16+
standalone: true,
17+
imports: [
18+
DaffCardIconDirective,
19+
],
1620
})
1721

1822
class WrapperComponent {}
@@ -24,8 +28,7 @@ describe('@daffodil/design/card | DaffCardIconDirective', () => {
2428

2529
beforeEach(waitForAsync(() => {
2630
TestBed.configureTestingModule({
27-
declarations: [
28-
DaffCardIconDirective,
31+
imports: [
2932
WrapperComponent,
3033
],
3134
})

libs/design/card/src/card-icon/card-icon.directive.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55

66
@Directive({
77
selector: '[daffCardIcon]',
8+
standalone: true,
89
})
910
export class DaffCardIconDirective {
1011

libs/design/card/src/card-image/card-image.directive.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ import { DaffCardImageDirective } from './card-image.directive';
1313

1414
@Component({
1515
template: `<img src="/" daffCardImage />`,
16+
standalone: true,
17+
imports: [
18+
DaffCardImageDirective,
19+
],
1620
})
1721

1822
class WrapperComponent {}
@@ -24,8 +28,7 @@ describe('@daffodil/design/card | DaffCardImageDirective', () => {
2428

2529
beforeEach(waitForAsync(() => {
2630
TestBed.configureTestingModule({
27-
declarations: [
28-
DaffCardImageDirective,
31+
imports: [
2932
WrapperComponent,
3033
],
3134
})

libs/design/card/src/card-image/card-image.directive.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55

66
@Directive({
77
selector: '[daffCardImage]',
8+
standalone: true,
89
})
910
export class DaffCardImageDirective {
1011

libs/design/card/src/card-tagline/card-tagline.directive.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ import { DaffCardTaglineDirective } from './card-tagline.directive';
1313

1414
@Component({
1515
template: `<div daffCardTagline></div>`,
16+
standalone: true,
17+
imports: [
18+
DaffCardTaglineDirective,
19+
],
1620
})
1721

1822
class WrapperComponent {}
@@ -24,8 +28,7 @@ describe('@daffodil/design/card | DaffCardTaglineDirective', () => {
2428

2529
beforeEach(waitForAsync(() => {
2630
TestBed.configureTestingModule({
27-
declarations: [
28-
DaffCardTaglineDirective,
31+
imports: [
2932
WrapperComponent,
3033
],
3134
})

libs/design/card/src/card-tagline/card-tagline.directive.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55

66
@Directive({
77
selector: '[daffCardTagline]',
8+
standalone: true,
89
})
910
export class DaffCardTaglineDirective {
1011

libs/design/card/src/card-title/card-title.directive.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ import { DaffCardTitleDirective } from './card-title.directive';
1313

1414
@Component({
1515
template: `<div daffCardTitle></div>`,
16+
standalone: true,
17+
imports: [
18+
DaffCardTitleDirective,
19+
],
1620
})
1721

1822
class WrapperComponent {}
@@ -24,8 +28,7 @@ describe('@daffodil/design/card | DaffCardTitleDirective', () => {
2428

2529
beforeEach(waitForAsync(() => {
2630
TestBed.configureTestingModule({
27-
declarations: [
28-
DaffCardTitleDirective,
31+
imports: [
2932
WrapperComponent,
3033
],
3134
})

libs/design/card/src/card-title/card-title.directive.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55

66
@Directive({
77
selector: '[daffCardTitle]',
8+
standalone: true,
89
})
910
export class DaffCardTitleDirective {
1011

libs/design/card/src/card.module.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ import { DaffCardImageDirective } from './card-image/card-image.directive';
99
import { DaffCardTaglineDirective } from './card-tagline/card-tagline.directive';
1010
import { DaffCardTitleDirective } from './card-title/card-title.directive';
1111

12+
/**
13+
* @deprecated in favor of {@link DAFF_CARD_COMPONENTS}
14+
*/
1215
@NgModule({
1316
imports: [
1417
CommonModule,
15-
],
16-
declarations: [
1718
DaffCardComponent,
1819
DaffCardIconDirective,
1920
DaffCardImageDirective,

libs/design/card/src/card.ts

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { DaffCardComponent } from './card/card.component';
2+
import { DaffCardActionsDirective } from './card-actions/card-actions.directive';
3+
import { DaffCardContentDirective } from './card-content/card-content.directive';
4+
import { DaffCardIconDirective } from './card-icon/card-icon.directive';
5+
import { DaffCardImageDirective } from './card-image/card-image.directive';
6+
import { DaffCardTaglineDirective } from './card-tagline/card-tagline.directive';
7+
import { DaffCardTitleDirective } from './card-title/card-title.directive';
8+
9+
export const DAFF_CARD_COMPONENTS = <const>[
10+
DaffCardComponent,
11+
DaffCardIconDirective,
12+
DaffCardImageDirective,
13+
DaffCardTaglineDirective,
14+
DaffCardTitleDirective,
15+
DaffCardContentDirective,
16+
DaffCardActionsDirective,
17+
];

0 commit comments

Comments
 (0)