Browse Source

support card component all features

pull/15836/head
Barış Can Yılmaz 4 years ago
parent
commit
c700ffc10f
  1. 17
      npm/ng-packs/packages/theme-shared/src/lib/components/card/card-body.component.ts
  2. 19
      npm/ng-packs/packages/theme-shared/src/lib/components/card/card-footer.component.ts
  3. 18
      npm/ng-packs/packages/theme-shared/src/lib/components/card/card-header.component.ts
  4. 9
      npm/ng-packs/packages/theme-shared/src/lib/components/card/card-title.component.ts
  5. 57
      npm/ng-packs/packages/theme-shared/src/lib/components/card/card.component.ts
  6. 30
      npm/ng-packs/packages/theme-shared/src/lib/components/card/card.module.ts
  7. 3
      npm/ng-packs/packages/theme-shared/src/lib/components/card/index.ts
  8. 2
      npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

17
npm/ng-packs/packages/theme-shared/src/lib/components/card/card-body.component.ts

@ -1,9 +1,16 @@
import { Component } from '@angular/core'; import { Component, Input } from '@angular/core';
@Component({ @Component({
selector: 'abp-card-body', selector: 'abp-card-body',
template: `<div class="card-body"> template: `
<ng-content></ng-content> <div [ngClass]="cardBodyClass" [ngStyle]="cardBodyStyle" >
</div>`, <ng-content></ng-content>
</div>`,
host: {
class: 'card-body',
}
}) })
export class CardBodyComponent {} export class CardBodyComponent {
@Input() cardBodyClass: string;
@Input() cardBodyStyle: string;
}

19
npm/ng-packs/packages/theme-shared/src/lib/components/card/card-footer.component.ts

@ -0,0 +1,19 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'abp-card-footer',
template: `
<div [ngStyle]="cardFooterStyle" [ngClass]="cardFooterClass" >
<ng-content ></ng-content>
</div>
`,
styles: [],
host: {
class: 'card-footer',
}
})
export class CardFooterComponent {
@Input() cardFooterStyle: string;
@Input() cardFooterClass: string;
}

18
npm/ng-packs/packages/theme-shared/src/lib/components/card/card-header.component.ts

@ -0,0 +1,18 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'abp-card-header',
template: `
<div [ngClass]="cardHeaderClass" [ngStyle]="cardHeaderStyle">
<ng-content ></ng-content>
</div>
`,
styles: [],
host: {
class: 'card-header',
}
})
export class CardHeaderComponent {
@Input() cardHeaderClass: string;
@Input() cardHeaderStyle: string;
}

9
npm/ng-packs/packages/theme-shared/src/lib/components/card/card-title.component.ts

@ -1,9 +0,0 @@
import { Component } from '@angular/core';
@Component({
selector: 'abp-card-title',
template: `<div class="card-title">
<ng-content></ng-content>
</div>`,
})
export class CardTitleComponent {}

57
npm/ng-packs/packages/theme-shared/src/lib/components/card/card.component.ts

@ -1,22 +1,55 @@
import { Component, ContentChild, Input } from '@angular/core'; import { Component, Directive, Input } from '@angular/core';
import { CardBodyComponent } from './card-body.component';
import { CardTitleComponent } from './card-title.component'; @Directive({
selector: `abp-card-title, [abp-card-title], [abpCardTitle]`,
host: {
class: 'card-title',
},
})
export class CardTitle{}
@Directive({
selector: `abp-card-subtitle, [abp-card-subtitle], [abpCardSubtitle]`,
host: {
class: 'card-subtitle',
},
})
export class CardSubtitle{}
@Directive({
selector: `abp-card-text, [abp-card-text], [abpCardText]`,
host: {
class: 'card-text',
},
})
export class CardText{}
@Directive({
selector: `abp-card-img-top, [abp-card-img-top], [abpCardImgTop]`,
host: {
class: 'card-img-top',
},
})
export class CardImgTop{}
@Directive({
selector: `abp-card-link, [abp-card-link], [abpCardLink]`,
host: {
class: 'card-link',
},
})
export class CardLink{}
@Component({ @Component({
selector: 'abp-card', selector: 'abp-card',
template: ` <div class="card" [ngClass]="cardClass" [ngStyle]="cardStyle"> template: `
<ng-content *ngIf="cardTitleTemplate" select="abp-card-title"></ng-content> <div class="card" [ngClass]="cardClass" [ngStyle]="cardStyle">
<ng-content *ngIf="cardBodyTemplate" select="abp-card-body"></ng-content> <ng-content ></ng-content>
</div>`, </div>`,
}) })
export class CardComponent { export class CardComponent {
@Input() cardClass: string; @Input() cardClass: string;
@Input() cardStyle: string; @Input() cardStyle: string;
@ContentChild(CardBodyComponent)
cardBodyTemplate?: CardBodyComponent;
@ContentChild(CardTitleComponent)
cardTitleTemplate?: CardTitleComponent;
} }

30
npm/ng-packs/packages/theme-shared/src/lib/components/card/card.module.ts

@ -1,14 +1,34 @@
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { CardBodyComponent } from './card-body.component'; import { CardBodyComponent } from './card-body.component';
import { CardTitleComponent } from './card-title.component'; import {
import { CardComponent } from './card.component'; CardComponent,
CardImgTop,
CardLink,
CardSubtitle,
CardText,
CardTitle
} from './card.component';
import { CardHeaderComponent } from './card-header.component';
import { CardFooterComponent } from './card-footer.component';
const declarationsWithExports = [CardComponent, CardBodyComponent, CardTitleComponent]; const declarationsWithExports = [
CardComponent,
CardBodyComponent,
CardHeaderComponent,
CardFooterComponent,
CardTitle,
CardSubtitle,
CardText,
CardImgTop,
CardLink,
];
@NgModule({ @NgModule({
declarations: [...declarationsWithExports], declarations: [
...declarationsWithExports,
],
imports: [CommonModule], imports: [CommonModule],
exports: [...declarationsWithExports], exports: [...declarationsWithExports],
}) })
export class CardModule {} export class CardModule { }

3
npm/ng-packs/packages/theme-shared/src/lib/components/card/index.ts

@ -1,4 +1,5 @@
export * from './card.module'; export * from './card.module';
export * from './card.component'; export * from './card.component';
export * from './card-body.component'; export * from './card-body.component';
export * from './card-title.component'; export * from './card-footer.component';
export * from './card-header.component';

2
npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

@ -72,8 +72,8 @@ const declarationsWithExports = [
NgxDatatableModule, NgxDatatableModule,
EllipsisModule, EllipsisModule,
NgxValidateCoreModule, NgxValidateCoreModule,
...declarationsWithExports,
CardModule, CardModule,
...declarationsWithExports
], ],
providers: [DatePipe], providers: [DatePipe],
}) })

Loading…
Cancel
Save