@@ -67,11 +67,14 @@ interface DataFilteredEventData {
6767 isCommon : boolean ,
6868 filterOptions : any
6969}
70-
7170interface DataSortedEventData {
7271 column : number ,
7372 type : string ,
7473}
74+ interface ColumnRearrangedEventData {
75+ column : number ,
76+ movedTo : number ,
77+ }
7578
7679
7780@Component ( {
@@ -100,6 +103,7 @@ export class DataTableComponent implements OnInit {
100103 @Output ( ) dataChanged = new EventEmitter < DataChangeEventData > ( ) ;
101104 @Output ( ) dataFiltered = new EventEmitter < DataFilteredEventData > ( ) ;
102105 @Output ( ) dataSorted = new EventEmitter < DataSortedEventData > ( ) ;
106+ @Output ( ) columnRearranged = new EventEmitter < ColumnRearrangedEventData > ( ) ;
103107 @Input ( ) pagination ;
104108 private pageSize ;
105109 public dragTheme ;
@@ -338,21 +342,6 @@ export class DataTableComponent implements OnInit {
338342 this . applyFilter ( this . FilterData , this . TableRows ) ;
339343 }
340344
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-
356345
357346 private applyFilter ( filterData :Array < FilterOptions > , tableRows :Array < any > ) {
358347 let result = this . filterService . filter ( filterData , tableRows ) ;
@@ -463,7 +452,7 @@ export class DataTableComponent implements OnInit {
463452 private applySort ( column :number , sortState :boolean ) {
464453 const that :this = this ;
465454 // 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 ) ) ;
467456 let sortEventData :DataSortedEventData = { column : column , type : sortState ? "ASC" : "DESC" } ;
468457 this . dataSorted . emit ( sortEventData ) ;
469458 this . pagedRows ( ) ;
@@ -472,7 +461,7 @@ export class DataTableComponent implements OnInit {
472461 }
473462
474463// Sort function
475- private sortFunction ( a , b , columnValue , isAsc ) {
464+ private static sortFunction ( a , b , columnValue , isAsc ) {
476465 if ( a . data [ columnValue ] === b . data [ columnValue ] ) {
477466 return 0 ;
478467 } else if ( isAsc ) {
@@ -545,7 +534,7 @@ export class DataTableComponent implements OnInit {
545534 }
546535
547536
548- private getCommonFiliterIndex ( filterDataValue :Array < FilterOption > ) :number {
537+ private static getCommonFiliterIndex ( filterDataValue :Array < FilterOption > ) :number {
549538 for ( let i = 0 ; i < filterDataValue . length ; ++ i ) {
550539 if ( filterDataValue [ i ] . isCommon ) {
551540 return i ;
@@ -566,7 +555,7 @@ export class DataTableComponent implements OnInit {
566555 if ( ! this . FilterData [ i ] ) {
567556 continue ;
568557 }
569- let index = this . getCommonFiliterIndex ( this . FilterData [ i ] . values ) ;
558+ let index = DataTableComponent . getCommonFiliterIndex ( this . FilterData [ i ] . values ) ;
570559 if ( index >= 0 ) {
571560 this . FilterData [ i ] . values . splice ( index , 1 ) ;
572561 }
@@ -575,7 +564,7 @@ export class DataTableComponent implements OnInit {
575564 else {
576565 for ( let i = 0 ; i < this . columnDefs . length ; ++ i ) {
577566 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 ) ;
579568 if ( index >= 0 ) {
580569 this . FilterData [ i ] . values [ index ] . value = text ;
581570 }
@@ -739,10 +728,11 @@ export class DataTableComponent implements OnInit {
739728 }
740729 }
741730 this . ref . detectChanges ( ) ;
731+ this . columnRearranged . emit ( { column :previousIndex , movedTo :currentIndex } ) ;
742732 }
743733
744734 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 ;
746736 this . Moved = [ ] ;
747737 if ( this . previousIndex === undefined )
748738 this . previousIndex = event . previousIndex ;
@@ -773,31 +763,6 @@ export class DataTableComponent implements OnInit {
773763
774764 pasteData ( pasteData :Array < Array < any > > ) {
775765 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- */
801766 let startRow , startColumn ;
802767 for ( let i = 0 ; i < this . contextMenuData . length ; ++ i ) {
803768 if ( ! this . contextMenuData [ i ] )
0 commit comments