or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

core.mddata-display.mddata-entry.mdfeedback.mdindex.mdlayout.mdnavigation.md

data-display.mddocs/

0

# Data Display Components

1

2

Components for presenting and organizing data including tables, lists, cards, tags, and data visualization elements.

3

4

## Capabilities

5

6

### Table Component

7

8

Comprehensive data table with sorting, filtering, pagination, and virtual scrolling support.

9

10

```typescript { .api }

11

/**

12

* Table component for displaying structured data

13

* Selector: nz-table

14

*/

15

interface NzTableComponent<T = any> {

16

/** Table data source */

17

nzData: readonly T[];

18

/** Page size for pagination */

19

nzPageSize: number;

20

/** Current page index */

21

nzPageIndex: number;

22

/** Total number of records */

23

nzTotal: number;

24

/** Loading state */

25

nzLoading: boolean;

26

/** Scroll configuration */

27

nzScroll: { x?: string | null; y?: string | null };

28

/** Table size */

29

nzSize: 'middle' | 'default' | 'small';

30

/** Show pagination */

31

nzShowPagination: boolean;

32

/** Pagination position */

33

nzPaginationPosition: 'top' | 'bottom' | 'both';

34

/** Hide pagination on single page */

35

nzHideOnSinglePage: boolean;

36

/** Front pagination */

37

nzFrontPagination: boolean;

38

/** Simple pagination */

39

nzSimple: boolean;

40

/** Show quick jumper */

41

nzShowQuickJumper: boolean;

42

/** Show size changer */

43

nzShowSizeChanger: boolean;

44

/** Page size options */

45

nzPageSizeOptions: number[];

46

/** Show total function */

47

nzShowTotal: TemplateRef<{ $implicit: number; range: [number, number] }>;

48

/** Template mode */

49

nzTemplateMode: boolean;

50

/** Bordered table */

51

nzBordered: boolean;

52

/** Width config */

53

nzWidthConfig: string[];

54

/** Title template */

55

nzTitle: string | TemplateRef<void>;

56

/** Footer template */

57

nzFooter: string | TemplateRef<void>;

58

/** No result template */

59

nzNoResult: string | TemplateRef<void>;

60

/** Virtual scroll */

61

nzVirtualItemSize: number;

62

/** Virtual max buffer */

63

nzVirtualMaxBufferPx: number;

64

/** Virtual min buffer */

65

nzVirtualMinBufferPx: number;

66

/** Virtual for trackBy */

67

nzVirtualForTrackBy: TrackByFunction<T>;

68

/** Page size change event */

69

nzPageSizeChange: EventEmitter<number>;

70

/** Page index change event */

71

nzPageIndexChange: EventEmitter<number>;

72

/** Query params change event */

73

nzQueryParams: EventEmitter<NzTableQueryParams>;

74

/** Current page data change */

75

nzCurrentPageDataChange: EventEmitter<readonly T[]>;

76

}

77

78

/**

79

* Table column directive

80

* Selector: th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]

81

*/

82

interface NzThAddOnComponent {

83

/** Column key */

84

nzColumnKey: string;

85

/** Sort function */

86

nzSortFn: NzTableSortFn<any> | null;

87

/** Sort order */

88

nzSortOrder: NzTableSortOrder | null;

89

/** Filter configurations */

90

nzFilters: NzTableFilterList;

91

/** Filter function */

92

nzFilterFn: NzTableFilterFn<any> | null;

93

/** Multiple filter */

94

nzFilterMultiple: boolean;

95

/** Show sort */

96

nzShowSort: boolean;

97

/** Show filter */

98

nzShowFilter: boolean;

99

/** Custom filter */

100

nzCustomFilter: boolean;

101

/** Sort change event */

102

nzSortOrderChange: EventEmitter<string | null>;

103

/** Filter change event */

104

nzFilterChange: EventEmitter<any[] | any>;

105

}

106

107

// Types

108

type NzTableSortOrder = 'ascend' | 'descend' | null;

109

type NzTableSortFn<T> = (a: T, b: T, sortOrder?: string) => number;

110

type NzTableFilterFn<T> = (value: any, record: T) => boolean;

111

112

interface NzTableFilterList extends Array<{ text: string; value: any; byDefault?: boolean }> {}

113

114

interface NzTableQueryParams {

115

pageIndex: number;

116

pageSize: number;

117

sort: Array<{ key: string; value: NzTableSortOrder }>;

118

filter: Array<{ key: string; value: any[] }>;

119

}

120

121

// Module

122

class NzTableModule {

123

static forRoot(): ModuleWithProviders<NzTableModule>;

124

}

125

```

126

127

**Usage Examples:**

128

129

```typescript

130

import { NzTableModule } from 'ng-zorro-antd/table';

131

132

interface DataItem {

133

name: string;

134

age: number;

135

address: string;

136

}

137

138

@Component({

139

template: `

140

<nz-table #basicTable [nzData]="listOfData" [nzPageSize]="10">

141

<thead>

142

<tr>

143

<th nzColumnKey="name" [nzSortFn]="sortByName">Name</th>

144

<th nzColumnKey="age" [nzSortFn]="sortByAge">Age</th>

145

<th>Address</th>

146

<th>Action</th>

147

</tr>

148

</thead>

149

<tbody>

150

<tr *ngFor="let data of basicTable.data">

151

<td>{{ data.name }}</td>

152

<td>{{ data.age }}</td>

153

<td>{{ data.address }}</td>

154

<td>

155

<a (click)="editRecord(data)">Edit</a>

156

<nz-divider nzType="vertical"></nz-divider>

157

<a (click)="deleteRecord(data.id)">Delete</a>

158

</td>

159

</tr>

160

</tbody>

161

</nz-table>

162

`

163

})

164

export class TableExampleComponent {

165

listOfData: DataItem[] = [

166

{ name: 'John Brown', age: 32, address: 'New York' },

167

{ name: 'Jim Green', age: 42, address: 'London' }

168

];

169

170

sortByName = (a: DataItem, b: DataItem) => a.name.localeCompare(b.name);

171

sortByAge = (a: DataItem, b: DataItem) => a.age - b.age;

172

}

173

```

174

175

### List Component

176

177

Flexible list component for displaying series of content.

178

179

```typescript { .api }

180

/**

181

* List component for displaying series of content

182

* Selector: nz-list

183

*/

184

interface NzListComponent {

185

/** Data source */

186

nzDataSource: any[];

187

/** Item layout */

188

nzItemLayout: 'horizontal' | 'vertical';

189

/** Loading state */

190

nzLoading: boolean;

191

/** List size */

192

nzSize: 'large' | 'default' | 'small';

193

/** Show split line */

194

nzSplit: boolean;

195

/** Bordered list */

196

nzBordered: boolean;

197

/** Header template */

198

nzHeader: string | TemplateRef<void>;

199

/** Footer template */

200

nzFooter: string | TemplateRef<void>;

201

/** Pagination config */

202

nzPagination: TemplateRef<void>;

203

/** No result template */

204

nzNoResult: string | TemplateRef<void>;

205

/** Item render template */

206

nzRenderItem: TemplateRef<void>;

207

/** Load more template */

208

nzLoadMore: TemplateRef<void>;

209

/** Grid config */

210

nzGrid: object;

211

}

212

213

/**

214

* List item component

215

* Selector: nz-list-item

216

*/

217

interface NzListItemComponent {

218

/** No flex layout */

219

nzNoFlex: boolean;

220

/** Extra content */

221

nzExtra: TemplateRef<void>;

222

/** Actions */

223

nzActions: Array<TemplateRef<void>>;

224

}

225

226

/**

227

* List item meta component

228

* Selector: nz-list-item-meta

229

*/

230

interface NzListItemMetaComponent {

231

/** Avatar */

232

nzAvatar: string | TemplateRef<void>;

233

/** Title */

234

nzTitle: string | TemplateRef<void>;

235

/** Description */

236

nzDescription: string | TemplateRef<void>;

237

}

238

239

// Module

240

class NzListModule {

241

static forRoot(): ModuleWithProviders<NzListModule>;

242

}

243

```

244

245

### Card Component

246

247

Card container for displaying related information in a structured format.

248

249

```typescript { .api }

250

/**

251

* Card component

252

* Selector: nz-card

253

*/

254

interface NzCardComponent {

255

/** Bordered card */

256

nzBordered: boolean;

257

/** Loading state */

258

nzLoading: boolean;

259

/** Hoverable effect */

260

nzHoverable: boolean;

261

/** Body style */

262

nzBodyStyle: NgStyleInterface;

263

/** Cover template */

264

nzCover: TemplateRef<void>;

265

/** Actions */

266

nzActions: Array<TemplateRef<void>>;

267

/** Card type */

268

nzType: 'inner';

269

/** Card size */

270

nzSize: 'default' | 'small';

271

/** Title */

272

nzTitle: string | TemplateRef<void>;

273

/** Extra content */

274

nzExtra: string | TemplateRef<void>;

275

}

276

277

/**

278

* Card meta component

279

* Selector: nz-card-meta

280

*/

281

interface NzCardMetaComponent {

282

/** Title */

283

nzTitle: string | TemplateRef<void>;

284

/** Description */

285

nzDescription: string | TemplateRef<void>;

286

/** Avatar */

287

nzAvatar: TemplateRef<void>;

288

}

289

290

// Module

291

class NzCardModule {

292

static forRoot(): ModuleWithProviders<NzCardModule>;

293

}

294

```

295

296

### Avatar Component

297

298

Avatar component for displaying user profile pictures or initials.

299

300

```typescript { .api }

301

/**

302

* Avatar component

303

* Selector: nz-avatar

304

*/

305

interface NzAvatarComponent {

306

/** Shape of avatar */

307

nzShape: 'circle' | 'square';

308

/** Size of avatar */

309

nzSize: 'large' | 'small' | 'default' | number;

310

/** Gap between text and avatar edge */

311

nzGap: number;

312

/** Avatar source */

313

nzSrc: string;

314

/** Source set for responsive images */

315

nzSrcSet: string;

316

/** Alt text */

317

nzAlt: string;

318

/** Icon type */

319

nzIcon: string;

320

/** Avatar text */

321

nzText: string;

322

/** Error event when image load fails */

323

nzError: EventEmitter<Event>;

324

}

325

326

/**

327

* Avatar group component

328

* Selector: nz-avatar-group

329

*/

330

interface NzAvatarGroupComponent {

331

/** Max count of avatars to show */

332

nzMaxCount: number;

333

/** Max style */

334

nzMaxStyle: NgStyleInterface;

335

/** Max popover placement */

336

nzMaxPopoverPlacement: 'top' | 'bottom';

337

/** Max popover trigger */

338

nzMaxPopoverTrigger: 'click' | 'hover' | 'focus';

339

/** Size of avatars in group */

340

nzSize: 'large' | 'small' | 'default' | number;

341

}

342

343

// Module

344

class NzAvatarModule {

345

static for Root(): ModuleWithProviders<NzAvatarModule>;

346

}

347

```

348

349

### Tag Component

350

351

Tag component for categorizing or marking.

352

353

```typescript { .api }

354

/**

355

* Tag component

356

* Selector: nz-tag

357

*/

358

interface NzTagComponent {

359

/** Tag mode */

360

nzMode: 'default' | 'closeable' | 'checkable';

361

/** Tag color */

362

nzColor: string;

363

/** Checked state for checkable mode */

364

nzChecked: boolean;

365

/** Close event */

366

nzOnClose: EventEmitter<MouseEvent>;

367

/** Checked change event */

368

nzCheckedChange: EventEmitter<boolean>;

369

/** After close animation */

370

nzAfterClose: EventEmitter<void>;

371

}

372

373

// Module

374

class NzTagModule {

375

static forRoot(): ModuleWithProviders<NzTagModule>;

376

}

377

```

378

379

### Badge Component

380

381

Badge component for displaying status or count.

382

383

```typescript { .api }

384

/**

385

* Badge component

386

* Selector: nz-badge

387

*/

388

interface NzBadgeComponent {

389

/** Badge count */

390

nzCount: number | TemplateRef<void>;

391

/** Show zero count */

392

nzShowZero: boolean;

393

/** Max count to show */

394

nzOverflowCount: number;

395

/** Show dot instead of count */

396

nzDot: boolean;

397

/** Badge status */

398

nzStatus: 'success' | 'processing' | 'default' | 'error' | 'warning';

399

/** Status text */

400

nzText: string;

401

/** Badge color */

402

nzColor: string;

403

/** Badge title */

404

nzTitle: string | null | undefined;

405

/** Badge offset */

406

nzOffset: [number, number];

407

/** Badge size */

408

nzSize: 'default' | 'small';

409

}

410

411

// Module

412

class NzBadgeModule {

413

static forRoot(): ModuleWithProviders<NzBadgeModule>;

414

}

415

```

416

417

### Tooltip Component

418

419

Tooltip directive for displaying contextual information.

420

421

```typescript { .api }

422

/**

423

* Tooltip directive

424

* Selector: [nz-tooltip]

425

*/

426

interface NzTooltipDirective {

427

/** Tooltip title */

428

nzTooltipTitle: string | TemplateRef<void> | null;

429

/** Tooltip trigger */

430

nzTooltipTrigger: 'click' | 'focus' | 'hover' | null;

431

/** Tooltip placement */

432

nzTooltipPlacement: string;

433

/** Tooltip color */

434

nzTooltipColor: string;

435

/** Tooltip origin */

436

nzTooltipOrigin: ElementRef<HTMLElement>;

437

/** Tooltip visible */

438

nzTooltipVisible: boolean;

439

/** Mouse enter delay */

440

nzTooltipMouseEnterDelay: number;

441

/** Mouse leave delay */

442

nzTooltipMouseLeaveDelay: number;

443

/** Overlay class name */

444

nzTooltipOverlayClassName: string;

445

/** Overlay style */

446

nzTooltipOverlayStyle: NgStyleInterface;

447

/** Arrow point at center */

448

nzTooltipArrowPointAtCenter: boolean;

449

/** Visible change event */

450

nzTooltipVisibleChange: EventEmitter<boolean>;

451

}

452

453

// Module

454

class NzToolTipModule {

455

static forRoot(): ModuleWithProviders<NzToolTipModule>;

456

}

457

```

458

459

### Popover Component

460

461

Popover directive for displaying rich content in floating layer.

462

463

```typescript { .api }

464

/**

465

* Popover directive

466

* Selector: [nz-popover]

467

*/

468

interface NzPopoverDirective {

469

/** Popover title */

470

nzPopoverTitle: string | TemplateRef<void>;

471

/** Popover content */

472

nzPopoverContent: string | TemplateRef<void>;

473

/** Popover trigger */

474

nzPopoverTrigger: 'click' | 'focus' | 'hover';

475

/** Popover placement */

476

nzPopoverPlacement: string;

477

/** Popover visible */

478

nzPopoverVisible: boolean;

479

/** Mouse enter delay */

480

nzPopoverMouseEnterDelay: number;

481

/** Mouse leave delay */

482

nzPopoverMouseLeaveDelay: number;

483

/** Overlay class name */

484

nzPopoverOverlayClassName: string;

485

/** Overlay style */

486

nzPopoverOverlayStyle: NgStyleInterface;

487

/** Arrow point at center */

488

nzPopoverArrowPointAtCenter: boolean;

489

/** Backdrop */

490

nzPopoverBackdrop: boolean;

491

/** Visible change event */

492

nzPopoverVisibleChange: EventEmitter<boolean>;

493

}

494

495

// Module

496

class NzPopoverModule {

497

static forRoot(): ModuleWithProviders<NzPopoverModule>;

498

}

499

```

500

501

### Timeline Component

502

503

Timeline component for displaying a series of events in chronological order.

504

505

```typescript { .api }

506

/**

507

* Timeline component

508

* Selector: nz-timeline

509

*/

510

interface NzTimelineComponent {

511

/** Timeline mode */

512

nzMode: 'left' | 'alternate' | 'right' | 'custom';

513

/** Pending text */

514

nzPending: string | boolean | TemplateRef<void>;

515

/** Pending dot */

516

nzPendingDot: string | TemplateRef<void>;

517

/** Reverse timeline */

518

nzReverse: boolean;

519

/** Item position */

520

nzItemPosition: string;

521

}

522

523

/**

524

* Timeline item component

525

* Selector: nz-timeline-item

526

*/

527

interface NzTimelineItemComponent {

528

/** Item color */

529

nzColor: string;

530

/** Custom dot */

531

nzDot: string | TemplateRef<void>;

532

/** Item position */

533

nzPosition: 'left' | 'right';

534

/** Item label */

535

nzLabel: string | TemplateRef<void>;

536

}

537

538

// Module

539

class NzTimelineModule {

540

static forRoot(): ModuleWithProviders<NzTimelineModule>;

541

}

542

```

543

544

### Collapse Component

545

546

Collapse component for collapsible content panels.

547

548

```typescript { .api }

549

/**

550

* Collapse component

551

* Selector: nz-collapse

552

*/

553

interface NzCollapseComponent {

554

/** Accordion mode */

555

nzAccordion: boolean;

556

/** Bordered style */

557

nzBordered: boolean;

558

/** Ghost style */

559

nzGhost: boolean;

560

/** Expand icon position */

561

nzExpandIconPosition: 'left' | 'right';

562

/** Size */

563

nzSize: 'large' | 'default' | 'small';

564

}

565

566

/**

567

* Collapse panel component

568

* Selector: nz-collapse-panel

569

*/

570

interface NzCollapsePanelComponent {

571

/** Panel active state */

572

nzActive: boolean;

573

/** Panel disabled state */

574

nzDisabled: boolean;

575

/** Show arrow */

576

nzShowArrow: boolean;

577

/** Panel header */

578

nzHeader: string | TemplateRef<void>;

579

/** Expand icon */

580

nzExpandedIcon: string | TemplateRef<void>;

581

/** Extra content */

582

nzExtra: string | TemplateRef<void>;

583

/** Active change event */

584

nzActiveChange: EventEmitter<boolean>;

585

}

586

587

// Module

588

class NzCollapseModule {

589

static forRoot(): ModuleWithProviders<NzCollapseModule>;

590

}

591

```

592

593

### Tree Component

594

595

Tree component for hierarchical data display.

596

597

```typescript { .api }

598

/**

599

* Tree component

600

* Selector: nz-tree

601

*/

602

interface NzTreeComponent {

603

/** Tree data */

604

nzData: NzTreeNodeOptions[] | NzTreeNode[];

605

/** Multiple selection */

606

nzMultiple: boolean;

607

/** Checkable nodes */

608

nzCheckable: boolean;

609

/** Async load data */

610

nzAsyncData: boolean;

611

/** Draggable nodes */

612

nzDraggable: boolean;

613

/** Expand all nodes */

614

nzExpandAll: boolean;

615

/** Hide unmatched nodes */

616

nzHideUnMatched: boolean;

617

/** Select mode */

618

nzSelectMode: boolean;

619

/** Check strictly */

620

nzCheckStrictly: boolean;

621

/** Block node */

622

nzBlockNode: boolean;

623

/** Expand icon */

624

nzExpandedIcon: TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>;

625

/** Tree template */

626

nzTreeTemplate: TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>;

627

/** Before drop validation */

628

nzBeforeDrop: (confirm: NzFormatBeforeDropEvent) => Observable<boolean>;

629

/** Virtual height */

630

nzVirtualHeight: string | null;

631

/** Virtual item size */

632

nzVirtualItemSize: number;

633

/** Virtual max buffer */

634

nzVirtualMaxBufferPx: number;

635

/** Virtual min buffer */

636

nzVirtualMinBufferPx: number;

637

/** Click event */

638

nzClick: EventEmitter<NzFormatEmitEvent>;

639

/** Double click event */

640

nzDblClick: EventEmitter<NzFormatEmitEvent>;

641

/** Context menu event */

642

nzContextMenu: EventEmitter<NzFormatEmitEvent>;

643

/** Check box change event */

644

nzCheckBoxChange: EventEmitter<NzFormatEmitEvent>;

645

/** Expand change event */

646

nzExpandChange: EventEmitter<NzFormatEmitEvent>;

647

/** Search value change event */

648

nzSearchValueChange: EventEmitter<NzFormatEmitEvent>;

649

}

650

651

// Types

652

interface NzTreeNodeOptions {

653

title: string;

654

key: string;

655

icon?: string;

656

isLeaf?: boolean;

657

checked?: boolean;

658

selected?: boolean;

659

expanded?: boolean;

660

disabled?: boolean;

661

disableCheckbox?: boolean;

662

selectable?: boolean;

663

children?: NzTreeNodeOptions[];

664

[key: string]: any;

665

}

666

667

interface NzFormatEmitEvent {

668

eventName: string;

669

node?: NzTreeNode;

670

event: Event;

671

dragNode?: NzTreeNode;

672

selectedKeys?: NzTreeNode[];

673

checkedKeys?: NzTreeNode[];

674

matchedKeys?: NzTreeNode[];

675

keys?: string[];

676

nodes?: NzTreeNode[];

677

}

678

679

// Module

680

class NzTreeModule {

681

static forRoot(): ModuleWithProviders<NzTreeModule>;

682

}

683

```

684

685

### Calendar Component

686

687

Calendar component for date selection and display.

688

689

```typescript { .api }

690

/**

691

* Calendar component

692

* Selector: nz-calendar

693

*/

694

interface NzCalendarComponent {

695

/** Calendar mode */

696

nzMode: 'month' | 'year';

697

/** Selected value */

698

nzValue: Date;

699

/** Date full cell render */

700

nzDateCell: TemplateRef<Date>;

701

/** Date cell render */

702

nzDateFullCell: TemplateRef<Date>;

703

/** Month cell render */

704

nzMonthCell: TemplateRef<Date>;

705

/** Month full cell render */

706

nzMonthFullCell: TemplateRef<Date>;

707

/** Custom header */

708

nzCustomHeader: TemplateRef<void>;

709

/** Disabled date */

710

nzDisabledDate: (current: Date) => boolean;

711

/** Panel change event */

712

nzPanelChange: EventEmitter<{ date: Date; mode: string }>;

713

/** Select change event */

714

nzSelectChange: EventEmitter<Date>;

715

/** Value change event */

716

nzValueChange: EventEmitter<Date>;

717

/** Mode change event */

718

nzModeChange: EventEmitter<'month' | 'year'>;

719

}

720

721

// Module

722

class NzCalendarModule {

723

static forRoot(): ModuleWithProviders<NzCalendarModule>;

724

}

725

```