10.0.27 • Published 2 years ago

ngx-auto-table v10.0.27

Weekly downloads
149
License
MIT
Repository
github
Last release
2 years ago

ngx-auto-table

NPM Version License Downloads/week Github Issues

A simple to use data table for Angular. (Wrapper around the Material Table)

Demo

Features include

  • Default filtering and sorting of all data
  • Uses RXJS observables
  • Uses angular material theme and icons under the hood
  • Row and Bulk actions, easily configurable
  • Typed Data passed into the configuration
  • Custom ng-templates for each column
  • All configuration options can be found here.

Install

yarn add ngx-auto-table

Then add to your imports

import { AutoTableModule } from 'ngx-auto-table';

imports: [
  ...
  AutoTableModule,
  ...
]

Then add this to your tsconfig:

  "compilerOptions": {
    ...
    "paths": {
      "@angular/*": ["node_modules/@angular/*"]
    }

Usage

  • Add the table to the HTML template
<ngx-auto-table 
  [config]="config" 
  [columnDefinitions]="{
    name: {},
    age: {}
  }"
>
</ngx-auto-table>
  • Add config object to the typescript
config: AutoTableConfig<User>;

ngOnInit() {
  this.config = {
    data$: people$
  };
}

Sorting/Ordering

this.config = {
  data$: people$,
  // Initially sort by the "name" column
  initialSort: 'name';
  // Initially sort in Descending order
  initialSortDir: "desc";
};

Row Operations

this.config = {
  data$: people$,
  actions: [
    {
      label: 'Delete',
      icon: 'delete', // material icon set
      onClick: (p: User) => {
        // Do stuff
      }
    }
  ]
};

Bulk Row Operations

this.config = {
  data$: people$,
  actionsBulk: [
    {
      label: 'Delete',
      icon: 'delete', // material icon set
      onClick: (p: User) => {
        // Do stuff
      }
    }
  ]
};

Custom Templates

<ngx-auto-table 
  [config]="config" 
  [columnDefinitions]="{
    name: {},
    age: {},
    email: {template: emailTemplate}
  }"
>
  <ng-template #emailTemplate let-row>
    <a [href]="'mailto:'+row.email">{{ row.email }} </a>
  </ng-template>
</ngx-auto-table>

Basic Example Component

To use the table in a component, simply add it to the template and feed it an obseravble in the Typescript file.

import { Component, OnInit } from '@angular/core';
import { AutoTableConfig } from 'ngx-auto-table/dist/public_api';
import { of, Observable } from 'rxjs';

interface User {
  name: string;
  age: number;
}

const sampleUsers: User[] = [
  { name: 'Frank', age: 22 },
  { name: 'Albert', age: 34 },
  { name: 'Jasper', age: 29 },
  { name: 'Hugo', age: 23 }
];

@Component({
  selector: 'app-auto-table-test',
  template: `
    <div>
      <ngx-auto-table [config]="config" [columnDefinitions]="{
        name: {},
        age: {}
      }">
      </ngx-auto-table>
    </div>
  `
})
export class AutoTableTestComponent implements OnInit {
  config: AutoTableConfig<User>;

  ngOnInit() {
    const people$: Observable<User[]> = of(sampleUsers);
    this.config = {
      data$: people$
    };
  }
}
10.0.24

2 years ago

10.0.23

2 years ago

10.0.27

2 years ago

10.0.26

2 years ago

10.0.25

2 years ago

10.0.22

3 years ago

10.0.21

3 years ago

10.0.20

3 years ago

10.0.19

3 years ago

10.0.18

3 years ago

10.0.17

3 years ago

10.0.16

3 years ago

10.0.15

3 years ago

10.0.14

3 years ago

10.0.13

3 years ago

10.0.12

3 years ago

10.0.11

3 years ago

10.0.10

3 years ago

10.0.9

3 years ago

10.0.7

3 years ago

10.0.8

3 years ago

10.0.6

3 years ago

10.0.5

4 years ago

10.0.4

4 years ago

8.4.5

4 years ago

10.0.2

4 years ago

10.0.3

4 years ago

8.4.4

4 years ago

8.4.3

4 years ago

8.4.1

4 years ago

8.4.2

4 years ago

8.4.0

4 years ago

10.0.0

4 years ago

10.0.1

4 years ago

8.3.10

4 years ago

8.3.9

4 years ago

8.3.8

4 years ago

8.3.7

4 years ago

8.3.6

4 years ago

8.3.5

4 years ago

8.3.4

4 years ago

8.3.2

4 years ago

8.3.3

4 years ago

8.3.1

4 years ago

8.3.0

4 years ago

8.2.17

4 years ago

8.2.15

4 years ago

8.2.16

4 years ago

8.2.14

4 years ago

8.2.13

4 years ago

8.2.12

4 years ago

8.2.11

4 years ago

8.2.10

4 years ago

8.2.9

4 years ago

8.2.7

4 years ago

8.2.6

4 years ago

8.2.8

4 years ago

8.2.5

4 years ago

8.2.4

4 years ago

8.2.3

4 years ago

8.2.2

4 years ago

8.2.1

4 years ago

8.2.0

5 years ago

8.1.5

5 years ago

8.1.4

5 years ago

8.1.3

5 years ago

8.1.2

5 years ago

8.1.1

5 years ago

8.1.0

5 years ago

8.0.8

5 years ago

8.0.7

5 years ago

8.0.6

5 years ago

8.0.5

5 years ago

8.0.4

5 years ago

8.0.3

5 years ago

8.0.2

5 years ago

8.0.1

5 years ago

8.0.0

5 years ago

0.3.20

5 years ago

0.3.19

5 years ago

0.3.18

5 years ago

0.3.17

5 years ago

0.3.16

5 years ago

0.3.15

5 years ago

0.3.14

5 years ago

0.3.13

5 years ago

0.3.12

5 years ago

0.3.11

5 years ago

0.3.10

5 years ago

0.3.9

5 years ago

0.3.8

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.2.4

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago