项目作者: paaragon

项目描述 :
Table component for angular
高级语言: TypeScript
项目地址: git://github.com/paaragon/NgxTable.git
创建时间: 2019-05-16T08:36:00Z
项目社区:https://github.com/paaragon/NgxTable

开源协议:MIT License

下载


NgxTable

build status
Maintainability

This library offers an Angular component that allows you to display your data in a table.

DEMO

Try it out!

demo gif

This table handles different events that can be implemented by the developers that use it.

The events are the following:

Other features:

  • Field validation
  • Filter operators
  • Autocomplete

Instalation

npm install --save @paaragon/ngx-table

Dependencies

  • Font awesome:

npm i font-awesome

On your angular.json

  1. "styles": [
  2. "node_modules/font-awesome/css/font-awesome.min.css"
  3. ],

Include

  1. // ...
  2. import { NgxTableModule } from '@paaragon/ngx-table';
  3. @NgModule({
  4. // ...
  5. imports: [
  6. // ...
  7. NgxTableModule,
  8. ],
  9. // ...
  10. })
  11. export class AppModule { }

Usage

Your component.ts

  1. const exampleData: any[] = [
  2. { name: 'Delbert', lastname: 'Keeling', birthdate: new Date(1990, 1, 21), company: 'Gislason, Braun and Kerluke', salary: 30432 },
  3. { name: 'Karine', lastname: 'Rice', birthdate: new Date(1982, 3, 1), company: 'Thiel - Connelly', salary: 29188 },
  4. { name: 'Rachelle', lastname: 'Flatley', birthdate: new Date(1985, 10, 16), company: 'Bradtke, Donnelly and Gottlieb', salary: 27026 },
  5. { name: 'Gardner', lastname: 'Lindgren', birthdate: new Date(1982, 9, 20), company: 'Crist - Klein', salary: 52676 }
  6. ];

Youe component.html

  1. <ngx-table [data]="exampleData"></ngx-table>

Events

Sort

Your component.html

  1. <ngx-table [data]="exampleData" (sort)="onSort($event)"></ngx-table>

Your component.ts

  1. onSort(sort: NgxTableSort) {
  2. // your sort logic
  3. }

Event argument interface

  1. interface NgxTableSort {
  2. field: string;
  3. direction: 1 | -1;
  4. }

Sort documentation

Filter

Your component.html

  1. <ngx-table [data]="exampleData" (filter)="onFilter($event)"></ngx-table>

Your component.ts

  1. onFilter(filterObj: NgxTableFilter ) {
  2. // your filter logic
  3. }

Event argument interface

  1. interface NgxTableFilter {
  2. [key: string]: { operator: NgxTableOperator, value: string };
  3. }

Filter documentation

Create

Your component.html

  1. <ngx-table [data]="exampleData" (create)="onCreate($event)"></ngx-table>

Your component.ts

  1. onCreate(newObj: NgxTableNew) {
  2. // your create logic
  3. }

Event argument interface

  1. interface NgxTableNew {
  2. [key: string]: any;
  3. }

Create documentation

Edit

Your component.html

  1. <ngx-table [data]="exampleData" (edit)="onEdit($event)"></ngx-table>

Your component.ts

  1. onSort(sort: NgxTableEdition) {
  2. // your edition logic
  3. }

Event argument interface

  1. interface NgxTableEdition {
  2. index: number;
  3. row: any;
  4. }

Edit documentation

Delete

Your component.html

  1. <ngx-table [data]="exampleData" (delete)="onDelete($event)"></ngx-table>

Your component.ts

  1. onDelete(delObj: NgxTableDelete) {
  2. // your delete logic
  3. }

Event argument interface

  1. interface NgxTableDelete {
  2. numrow: number;
  3. row: any;
  4. }

Delete documentation

Pagination

Your component.html

  1. <ngx-table [data]="exampleData" [totalElements]="totalelements" (page)="onPage($event)"></ngx-table>

Your component.ts

  1. onPage(page: number) {
  2. // your pagination logic here
  3. }

Event argument interface

  1. interface NgxTableDelete {
  2. numrow: number;
  3. row: any;
  4. }

TODO - Create and link wiki page

Config

You can provide a config object to customize your table.

Your component.html

  1. <ngx-table [data]="exampleData" [config]="config"></ngx-table>

Config interface

  1. interface NgxTableConfig {
  2. placeholders?: NgxTablePlaceholders;
  3. sort?: {
  4. enable?: boolean
  5. };
  6. filter?: {
  7. enable: boolean,
  8. debounceTime?: number,
  9. validations?: {
  10. [key: string]: {
  11. regex: string,
  12. errorMsg?: string
  13. }
  14. },
  15. lock?: string[],
  16. operators?: NgxTableOperator[]
  17. };
  18. create?: {
  19. enable: boolean,
  20. validations?: {
  21. [key: string]: {
  22. regex: string,
  23. errorMsg?: string,
  24. optional?: boolean
  25. }
  26. },
  27. lock?: string[]
  28. };
  29. delete?: {
  30. enable: boolean
  31. };
  32. edit?: {
  33. enable: boolean,
  34. longContent?: number,
  35. lock?: string[],
  36. validations?: {
  37. [key: string]: {
  38. regex: string,
  39. errorMsg?: string,
  40. optional?: boolean
  41. }
  42. },
  43. };
  44. paginator?: {
  45. enable: boolean,
  46. elementsPerPage?: number,
  47. visiblePages?: number
  48. };
  49. click?: {
  50. enable: boolean
  51. };
  52. }

Config documentation