Skip to content

Commit f393a84

Browse files
authored
CardView: Overview basic demo for beta code samples (18zTg1oC) (DevExpress#29874)
1 parent d1312f1 commit f393a84

File tree

25 files changed

+2830
-1
lines changed

25 files changed

+2830
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<div class="demo-container">
2+
<dx-card-view
3+
[dataSource]="employees"
4+
[keyExpr]="'ID'"
5+
[cardsPerRow]="'auto'"
6+
[cardMinWidth]="250"
7+
[headerFilter]="headerFilterConfig"
8+
[searchPanel]="searchPanelConfig"
9+
[columnChooser]="columnChooserConfig"
10+
>
11+
<!-- Columns -->
12+
<dxi-card-view-column
13+
dataField="FullName"
14+
allowHiding="false"
15+
></dxi-card-view-column>
16+
<dxi-card-view-column dataField="Position"></dxi-card-view-column>
17+
<dxi-card-view-column dataField="Department"></dxi-card-view-column>
18+
<dxi-card-view-column dataField="Phone"></dxi-card-view-column>
19+
<dxi-card-view-column dataField="Email"></dxi-card-view-column>
20+
<!-- Card cover -->
21+
<dxo-card-view-card-cover
22+
[imageExpr]="getEmployeeImage"
23+
[altExpr]="getEmployeeImageAltText"
24+
></dxo-card-view-card-cover>
25+
<!-- Pager -->
26+
<dxo-card-view-pager
27+
[showInfo]="true"
28+
[showNavigationButtons]="true"
29+
[showPageSizeSelector]="true"
30+
></dxo-card-view-pager>
31+
<!-- Selection -->
32+
<dxo-card-view-selection mode="multiple"></dxo-card-view-selection>
33+
</dx-card-view>
34+
</div>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import { NgModule, Component, enableProdMode } from '@angular/core';
2+
import { BrowserModule } from '@angular/platform-browser';
3+
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
4+
5+
import { DxCardViewModule } from 'devextreme-angular';
6+
import { AppService, Employee } from './app.service';
7+
8+
if (!document.location.host.includes('localhost')) {
9+
enableProdMode();
10+
}
11+
12+
let modulePrefix = '';
13+
// @ts-expect-error
14+
if (window && window.config?.packageConfigPaths) {
15+
modulePrefix = '/app';
16+
}
17+
18+
const IMG_URL = 'https://js.devexpress.com/jQuery/Demos/WidgetsGallery/JSDemos';
19+
20+
@Component({
21+
selector: 'demo-app',
22+
templateUrl: `.${modulePrefix}/app.component.html`,
23+
styleUrls: [`.${modulePrefix}/app.component.css`],
24+
})
25+
export class AppComponent {
26+
employees: Employee[];
27+
28+
// TODO: Nested component does not exist
29+
headerFilterConfig = {
30+
visible: true,
31+
};
32+
33+
// TODO: Nested component does not exist
34+
searchPanelConfig = {
35+
visible: true,
36+
};
37+
38+
// TODO: Nested component does not exist
39+
columnChooserConfig = {
40+
enabled: true,
41+
height: 340,
42+
mode: 'select',
43+
position: {
44+
my: 'right top',
45+
at: 'right bottom',
46+
of: '.dx-cardview-column-chooser-button',
47+
},
48+
selection: {
49+
selectByClick: true,
50+
},
51+
};
52+
53+
constructor(service: AppService) {
54+
this.employees = service.getEmployees();
55+
}
56+
57+
getEmployeeImage({ Picture }: Employee): string {
58+
return `${IMG_URL}/${Picture}`;
59+
}
60+
61+
getEmployeeImageAltText({ FullName }: Employee): string {
62+
return `${FullName} picture`;
63+
}
64+
}
65+
66+
@NgModule({
67+
imports: [
68+
BrowserModule,
69+
DxCardViewModule,
70+
],
71+
declarations: [AppComponent],
72+
bootstrap: [AppComponent],
73+
providers: [AppService],
74+
})
75+
export class AppModule { }
76+
77+
platformBrowserDynamic().bootstrapModule(AppModule);

0 commit comments

Comments
 (0)