ng-dynamic-datatable 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -34
- package/fesm2022/ng-dynamic-datatable.mjs +483 -0
- package/fesm2022/ng-dynamic-datatable.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/dynamic-datatable.component.d.ts +83 -0
- package/lib/dynamic-datatable.types.d.ts +4 -0
- package/lib/models.d.ts +45 -0
- package/package.json +35 -38
- package/{projects/dynamic-datatable/src/public-api.ts → public-api.d.ts} +2 -6
- package/.editorconfig +0 -17
- package/.vscode/extensions.json +0 -4
- package/.vscode/launch.json +0 -20
- package/.vscode/tasks.json +0 -42
- package/angular.json +0 -44
- package/projects/dynamic-datatable/README.md +0 -134
- package/projects/dynamic-datatable/ng-package.json +0 -7
- package/projects/dynamic-datatable/package.json +0 -24
- package/projects/dynamic-datatable/src/lib/dynamic-datatable.component.html +0 -137
- package/projects/dynamic-datatable/src/lib/dynamic-datatable.component.scss +0 -237
- package/projects/dynamic-datatable/src/lib/dynamic-datatable.component.spec.ts +0 -23
- package/projects/dynamic-datatable/src/lib/dynamic-datatable.component.ts +0 -556
- package/projects/dynamic-datatable/src/lib/dynamic-datatable.service.spec.ts +0 -16
- package/projects/dynamic-datatable/src/lib/dynamic-datatable.service.ts +0 -9
- package/projects/dynamic-datatable/src/lib/dynamic-datatable.types.ts +0 -4
- package/projects/dynamic-datatable/src/lib/models.ts +0 -52
- package/projects/dynamic-datatable/tsconfig.lib.json +0 -15
- package/projects/dynamic-datatable/tsconfig.lib.prod.json +0 -11
- package/projects/dynamic-datatable/tsconfig.spec.json +0 -15
- package/tsconfig.json +0 -32
package/README.md
CHANGED
|
@@ -1,59 +1,134 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dynamic-datatable
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Config-driven Angular DataTable library that accepts columns, JSON data, and feature configuration.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Features
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Dynamic columns and data inputs
|
|
8
|
+
- Sorting (column-wise)
|
|
9
|
+
- Searching across visible columns
|
|
10
|
+
- Pagination and rows-per-page selection
|
|
11
|
+
- Row selection and select-all
|
|
12
|
+
- Row action events
|
|
13
|
+
- CSV and Excel export
|
|
14
|
+
|
|
15
|
+
## Install
|
|
8
16
|
|
|
9
17
|
```bash
|
|
10
|
-
|
|
18
|
+
npm install dynamic-datatable
|
|
11
19
|
```
|
|
12
20
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
Import the standalone component directly in your consuming component:
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { Component } from '@angular/core';
|
|
27
|
+
import {
|
|
28
|
+
DynamicDatatableComponent,
|
|
29
|
+
DynamicDataTableConfig,
|
|
30
|
+
DataTableColumn
|
|
31
|
+
} from 'dynamic-datatable';
|
|
32
|
+
|
|
33
|
+
@Component({
|
|
34
|
+
selector: 'app-users',
|
|
35
|
+
standalone: true,
|
|
36
|
+
imports: [DynamicDatatableComponent],
|
|
37
|
+
template: `
|
|
38
|
+
<lib-dynamic-datatable
|
|
39
|
+
[config]="config"
|
|
40
|
+
[columns]="columns"
|
|
41
|
+
[data]="rows"
|
|
42
|
+
(actionSelected)="onAction($event)"
|
|
43
|
+
(selectionChange)="onSelection($event)"
|
|
44
|
+
/>
|
|
45
|
+
`
|
|
46
|
+
})
|
|
47
|
+
export class UsersComponent {
|
|
48
|
+
rows = [
|
|
49
|
+
{ id: 1, name: 'Aarav Sharma', email: 'aarav.sharma@company.in', salary: '19366.53', status: 'Resigned' },
|
|
50
|
+
{ id: 2, name: 'Ananya Patel', email: 'ananya.patel@company.in', salary: '10745.32', status: 'Applied' }
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
columns: DataTableColumn[] = [
|
|
54
|
+
{ key: 'name', label: 'Name', sortable: true, width: '220px' },
|
|
55
|
+
{ key: 'email', label: 'Email', sortable: true, width: '260px' },
|
|
56
|
+
{ key: 'salary', label: 'Salary', sortable: true, width: '120px' },
|
|
57
|
+
{
|
|
58
|
+
key: 'status',
|
|
59
|
+
label: 'Status',
|
|
60
|
+
sortable: true,
|
|
61
|
+
render: (row) => `<span>${row['status']}</span>`
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
config: DynamicDataTableConfig = {
|
|
66
|
+
title: 'Users',
|
|
67
|
+
features: {
|
|
68
|
+
export: true,
|
|
69
|
+
sorting: true,
|
|
70
|
+
searching: true,
|
|
71
|
+
pagination: true,
|
|
72
|
+
rowsPerPage: true,
|
|
73
|
+
actions: true,
|
|
74
|
+
checkboxSelection: true
|
|
75
|
+
},
|
|
76
|
+
rowsPerPageOptions: [5, 10, 25],
|
|
77
|
+
defaultRowsPerPage: 10,
|
|
78
|
+
exportOptions: { fileName: 'users-export', formats: ['csv', 'excel'] },
|
|
79
|
+
actions: [
|
|
80
|
+
{ label: 'Details', id: 'details' },
|
|
81
|
+
{ label: 'Delete', id: 'delete', danger: true }
|
|
82
|
+
]
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
onAction(event: unknown): void {
|
|
86
|
+
console.log(event);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
onSelection(rows: unknown[]): void {
|
|
90
|
+
console.log(rows);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
21
93
|
```
|
|
22
94
|
|
|
23
|
-
|
|
95
|
+
## Component API
|
|
24
96
|
|
|
25
|
-
|
|
26
|
-
ng generate --help
|
|
27
|
-
```
|
|
97
|
+
Inputs:
|
|
28
98
|
|
|
29
|
-
|
|
99
|
+
- `config: DynamicDataTableConfig`
|
|
100
|
+
- `columns: DataTableColumn[]`
|
|
101
|
+
- `data: Record<string, unknown>[]`
|
|
30
102
|
|
|
31
|
-
|
|
103
|
+
Outputs:
|
|
32
104
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
105
|
+
- `actionSelected`
|
|
106
|
+
- `selectionChange`
|
|
107
|
+
- `sortChange`
|
|
108
|
+
- `pageChange`
|
|
109
|
+
- `exportTriggered`
|
|
36
110
|
|
|
37
|
-
|
|
111
|
+
Public methods:
|
|
38
112
|
|
|
39
|
-
|
|
113
|
+
- `refresh()`
|
|
114
|
+
- `updateData(newData)`
|
|
115
|
+
- `updateConfig(newConfig)`
|
|
116
|
+
- `getSelectedRows()`
|
|
117
|
+
- `clearSelection()`
|
|
40
118
|
|
|
41
|
-
|
|
119
|
+
## Build
|
|
42
120
|
|
|
43
121
|
```bash
|
|
44
|
-
ng
|
|
122
|
+
ng build dynamic-datatable
|
|
45
123
|
```
|
|
46
124
|
|
|
47
|
-
|
|
125
|
+
Artifacts are generated in `dist/dynamic-datatable`.
|
|
48
126
|
|
|
49
|
-
|
|
127
|
+
## Publish to npm
|
|
50
128
|
|
|
51
129
|
```bash
|
|
52
|
-
|
|
130
|
+
cd dist/dynamic-datatable
|
|
131
|
+
npm publish --access public
|
|
53
132
|
```
|
|
54
133
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
## Additional Resources
|
|
58
|
-
|
|
59
|
-
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
134
|
+
Before publishing, ensure the package name in `projects/dynamic-datatable/package.json` is unique on npm.
|