@@ -67,11 +67,14 @@ interface DataFilteredEventData {
67
67
isCommon : boolean ,
68
68
filterOptions : any
69
69
}
70
-
71
70
interface DataSortedEventData {
72
71
column : number ,
73
72
type : string ,
74
73
}
74
+ interface ColumnRearrangedEventData {
75
+ column : number ,
76
+ movedTo : number ,
77
+ }
75
78
76
79
77
80
@Component ( {
@@ -100,6 +103,7 @@ export class DataTableComponent implements OnInit {
100
103
@Output ( ) dataChanged = new EventEmitter < DataChangeEventData > ( ) ;
101
104
@Output ( ) dataFiltered = new EventEmitter < DataFilteredEventData > ( ) ;
102
105
@Output ( ) dataSorted = new EventEmitter < DataSortedEventData > ( ) ;
106
+ @Output ( ) columnRearranged = new EventEmitter < ColumnRearrangedEventData > ( ) ;
103
107
@Input ( ) pagination ;
104
108
private pageSize ;
105
109
public dragTheme ;
@@ -338,21 +342,6 @@ export class DataTableComponent implements OnInit {
338
342
this . applyFilter ( this . FilterData , this . TableRows ) ;
339
343
}
340
344
341
- /*
342
- private getFilteredValue(column:number, filterOptions:Array<FilterOptions>, data:string) {
343
- let filtered = false;
344
- if (!filterOptions[column].values.length) {
345
- return true;
346
- }
347
- for (let i = 0; i < filterOptions[column].values.length; ++i) {
348
- if (filterOptions[column].operator == 'or') {
349
- filtered = filtered || filterOptions[column].comparator.call(data, filterOptions[column].values[i])
350
- }
351
- }
352
- return filtered;
353
- }
354
- */
355
-
356
345
357
346
private applyFilter ( filterData :Array < FilterOptions > , tableRows :Array < any > ) {
358
347
let result = this . filterService . filter ( filterData , tableRows ) ;
@@ -463,7 +452,7 @@ export class DataTableComponent implements OnInit {
463
452
private applySort ( column :number , sortState :boolean ) {
464
453
const that :this = this ;
465
454
// Sort te table.
466
- this . TableRows . sort ( ( a , b ) => that . sortFunction ( a , b , column , sortState ) ) ;
455
+ this . TableRows . sort ( ( a , b ) => DataTableComponent . sortFunction ( a , b , column , sortState ) ) ;
467
456
let sortEventData :DataSortedEventData = { column : column , type : sortState ? "ASC" : "DESC" } ;
468
457
this . dataSorted . emit ( sortEventData ) ;
469
458
this . pagedRows ( ) ;
@@ -472,7 +461,7 @@ export class DataTableComponent implements OnInit {
472
461
}
473
462
474
463
// Sort function
475
- private sortFunction ( a , b , columnValue , isAsc ) {
464
+ private static sortFunction ( a , b , columnValue , isAsc ) {
476
465
if ( a . data [ columnValue ] === b . data [ columnValue ] ) {
477
466
return 0 ;
478
467
} else if ( isAsc ) {
@@ -545,7 +534,7 @@ export class DataTableComponent implements OnInit {
545
534
}
546
535
547
536
548
- private getCommonFiliterIndex ( filterDataValue :Array < FilterOption > ) :number {
537
+ private static getCommonFiliterIndex ( filterDataValue :Array < FilterOption > ) :number {
549
538
for ( let i = 0 ; i < filterDataValue . length ; ++ i ) {
550
539
if ( filterDataValue [ i ] . isCommon ) {
551
540
return i ;
@@ -566,7 +555,7 @@ export class DataTableComponent implements OnInit {
566
555
if ( ! this . FilterData [ i ] ) {
567
556
continue ;
568
557
}
569
- let index = this . getCommonFiliterIndex ( this . FilterData [ i ] . values ) ;
558
+ let index = DataTableComponent . getCommonFiliterIndex ( this . FilterData [ i ] . values ) ;
570
559
if ( index >= 0 ) {
571
560
this . FilterData [ i ] . values . splice ( index , 1 ) ;
572
561
}
@@ -575,7 +564,7 @@ export class DataTableComponent implements OnInit {
575
564
else {
576
565
for ( let i = 0 ; i < this . columnDefs . length ; ++ i ) {
577
566
this . FilterData [ i ] = this . FilterData [ i ] || { values : [ ] } ;
578
- let index = this . getCommonFiliterIndex ( this . FilterData [ i ] . values ) ;
567
+ let index = DataTableComponent . getCommonFiliterIndex ( this . FilterData [ i ] . values ) ;
579
568
if ( index >= 0 ) {
580
569
this . FilterData [ i ] . values [ index ] . value = text ;
581
570
}
@@ -739,10 +728,11 @@ export class DataTableComponent implements OnInit {
739
728
}
740
729
}
741
730
this . ref . detectChanges ( ) ;
731
+ this . columnRearranged . emit ( { column :previousIndex , movedTo :currentIndex } ) ;
742
732
}
743
733
744
734
swapped ( event :any ) {
745
- let clientWidth = ( event . container . element . nativeElement . clientWidth / this . columnDefs . length ) - 10
735
+ let clientWidth = ( event . container . element . nativeElement . clientWidth / this . columnDefs . length ) - 10 ;
746
736
this . Moved = [ ] ;
747
737
if ( this . previousIndex === undefined )
748
738
this . previousIndex = event . previousIndex ;
@@ -773,31 +763,6 @@ export class DataTableComponent implements OnInit {
773
763
774
764
pasteData ( pasteData :Array < Array < any > > ) {
775
765
let pasteRow = 0 , pasteColumn = 0 , prevCol ;
776
- /*
777
- for (let i = 0; i < this.contextMenuData.length; ++i) {
778
- if (!this.contextMenuData[i])
779
- continue;
780
- let row = this.contextMenuData[i];
781
- for (let j = 0; j < row.length; ++j) {
782
- if (!row[j]) {
783
- continue;
784
- }
785
- if (!pasteData[pasteRow][pasteColumn]) {
786
- pasteColumn++;
787
- continue;
788
- }
789
- this.PagedRows[i].data[j] = pasteData[pasteRow][pasteColumn];
790
- if (!prevCol) {
791
- prevCol = j;
792
- }
793
- else if (prevCol !== j) {
794
- pasteColumn++;
795
- prevCol = j;
796
- }
797
- }
798
- pasteRow++;
799
- }
800
- */
801
766
let startRow , startColumn ;
802
767
for ( let i = 0 ; i < this . contextMenuData . length ; ++ i ) {
803
768
if ( ! this . contextMenuData [ i ] )
0 commit comments