Skip to content

Commit 82e04ea

Browse files
committed
Fixes #15
1 parent 2101ae4 commit 82e04ea

File tree

6 files changed

+62
-7
lines changed

6 files changed

+62
-7
lines changed

README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,26 @@ Get data change event with parameters.
5555
console.log("Row: ",valueChanged.row,"Column: ",valueChanged.column, "Data: ",,valueChanged.data );
5656
}
5757
```
58+
#### dataFiltered [event]
59+
Get data change event with parameters.
60+
61+
**_HTML_**
62+
```html
63+
<data-grid [pagination]="pagination" [theme]="theme"
64+
[columnDefs]="columnDefs" [rowData]="rowData" (dataFiltered)="filterChanged($event)" ></data-grid>
65+
```
66+
**_JavaScript_**
67+
```javascript
68+
filterChanged (filterChanged){
69+
console.log("IsCommon: ",filterChanged.isCommon, "Column: ",filterChanged.column, "Data: ",filterChanged.filterOptions );
70+
}
71+
```
72+
##### Filter Change Event Parameters
73+
**_isCommon[boolean]:_** If filter triggered through common filter.
74+
**_column[number]:_** If the filter tiggered from any particular column. This field exists if only _isCommon=false_.
75+
**_data[Array]:_** Filter values.
5876
### Themes
59-
* **theme [string]:** Themebased table. The available themes are as follows
77+
* **theme [string]:** Theme based table. The available themes are as follows
6078
1. Matrial Theme (metrial-theme)
6179
2. Dark Theme (dark-theme)
6280
3. Standard Theme (standard-theme)

projects/angular-open-datagrid/README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,26 @@ Get data change event with parameters.
5555
console.log("Row: ",valueChanged.row,"Column: ",valueChanged.column, "Data: ",,valueChanged.data );
5656
}
5757
```
58+
#### dataFiltered [event]
59+
Get data change event with parameters.
60+
61+
**_HTML_**
62+
```html
63+
<data-grid [pagination]="pagination" [theme]="theme"
64+
[columnDefs]="columnDefs" [rowData]="rowData" (dataFiltered)="filterChanged($event)" ></data-grid>
65+
```
66+
**_JavaScript_**
67+
```javascript
68+
filterChanged (filterChanged){
69+
console.log("IsCommon: ",filterChanged.isCommon, "Column: ",filterChanged.column, "Data: ",filterChanged.filterOptions );
70+
}
71+
```
72+
##### Filter Change Event Parameters
73+
**_isCommon[boolean]:_** If filter triggered through common filter.
74+
**_column[number]:_** If the filter tiggered from any particular column. This field exists if only _isCommon=false_.
75+
**_data[Array]:_** Filter values.
5876
### Themes
59-
* **theme [string]:** Themebased table. The available themes are as follows
77+
* **theme [string]:** Theme based table. The available themes are as follows
6078
1. Matrial Theme (metrial-theme)
6179
2. Dark Theme (dark-theme)
6280
3. Standard Theme (standard-theme)

projects/angular-open-datagrid/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-open-datagrid",
3-
"version": "1.3.1",
3+
"version": "1.3.2",
44
"license": "(MIT)",
55
"homepage": "https://github.com/sowvikr/angular-open-datagrid-lilb",
66
"bugs": {

projects/angular-open-datagrid/src/lib/data-table/data-table.component.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ interface DataChangeEventData {
6262
data: any
6363
}
6464

65+
interface DataFilteredEventData {
66+
column?: number,
67+
isCommon: boolean,
68+
filterOptions: any
69+
}
70+
6571

6672
@Component({
6773
selector: 'data-grid',
@@ -87,6 +93,7 @@ export class DataTableComponent implements OnInit {
8793

8894

8995
@Output() dataChanged = new EventEmitter<DataChangeEventData>();
96+
@Output() dataFiltered = new EventEmitter<DataFilteredEventData>();
9097
@Input() pagination;
9198
private pageSize;
9299
public dragTheme;
@@ -211,8 +218,8 @@ export class DataTableComponent implements OnInit {
211218
}
212219
}
213220

214-
public onOutsideClick(event){
215-
if(event.target.className === "options-menu button button-options" ||
221+
public onOutsideClick(event) {
222+
if (event.target.className === "options-menu button button-options" ||
216223
event.target.className === "fa fa-bars" ||
217224
event.target.className === "checkmark" ||
218225
event.srcElement.id === "commonCacheCheckbox" ||
@@ -314,6 +321,8 @@ export class DataTableComponent implements OnInit {
314321

315322
// Filters data based on CONTAINS.
316323
filter(column, text) {
324+
let filterEventData:DataFilteredEventData = {column: column, filterOptions: [text], isCommon: false};
325+
this.dataFiltered.emit(filterEventData);
317326
this.FilterData[column] = this.FilterData[column] || {values: []};
318327
this.FilterData[column].values = [{
319328
operator: FilterService.OR,
@@ -356,6 +365,11 @@ export class DataTableComponent implements OnInit {
356365
checkedColumnFilter(filterEventArgs) {
357366

358367
this.FilterData[filterEventArgs.column].values = [];
368+
let filterEventData:DataFilteredEventData = {
369+
isCommon: false,
370+
column: filterEventArgs.column,
371+
filterOptions: filterEventArgs.filteredData
372+
};
359373
for (let i = 0; i < filterEventArgs.filteredData.length; ++i) {
360374
this.FilterData[filterEventArgs.column].values.push({
361375
comparator: StringUtilsService.equals,
@@ -364,6 +378,7 @@ export class DataTableComponent implements OnInit {
364378
});
365379
this.FilterData[filterEventArgs.column].filterApplied = this.cacheFilter;
366380
}
381+
this.dataFiltered.emit(filterEventData);
367382
this.applyFilter(this.FilterData, this.TableRows);
368383
}
369384

@@ -536,7 +551,8 @@ export class DataTableComponent implements OnInit {
536551
* @param text: String to be searched across the table data.
537552
*/
538553
onCommonFilter(text) {
539-
554+
let filteredEventData:DataFilteredEventData = {filterOptions: [text], isCommon: true};
555+
this.dataFiltered.emit(filteredEventData);
540556
if (text === undefined || text === "") {
541557
for (let i = 0; i < this.columnDefs.length; ++i) {
542558
if (!this.FilterData[i]) {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

22
<div *ngFor="let dataTable of dataTables">
33
<data-grid [pagination]="dataTable.pagination" [theme]="dataTable.theme"
4-
[columnDefs]="dataTable.columnDefs" [rowData]="dataTable.rowData"></data-grid>
4+
[columnDefs]="dataTable.columnDefs" [rowData]="dataTable.rowData" (dataFiltered)="filterChanged($event)"></data-grid>
55
</div>

src/app/pages/red-theme/red-theme.component.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ import {Component, OnInit} from '@angular/core';
66
styleUrls: ['./red-theme.component.scss']
77
})
88
export class RedThemeComponent implements OnInit {
9+
filterChanged (valueChanged){
10+
console.log("Change Triggered",valueChanged);
11+
}
912
dataTables: Array<any> = [
1013
{
1114
pagination: true, theme: 'red-theme',

0 commit comments

Comments
 (0)