@@ -48,14 +48,14 @@ export default class FilterFactory {
48
48
49
49
}
50
50
51
- private onChange = ( columnId : ColumnId , setFilter : SetFilter , ev : any ) => {
52
- Logger . debug ( 'Filter -- onChange' , columnId , ev . target . value && ev . target . value . trim ( ) ) ;
51
+ private onChange = ( column : IVisibleColumn , setFilter : SetFilter , ev : any ) => {
52
+ Logger . debug ( 'Filter -- onChange' , column . id , ev . target . value && ev . target . value . trim ( ) ) ;
53
53
54
54
const value = ev . target . value . trim ( ) ;
55
- const safeColumnId = columnId . toString ( ) ;
55
+ const safeColumnId = column . id . toString ( ) ;
56
56
57
57
if ( value && value . length ) {
58
- this . ops . set ( safeColumnId , new SingleColumnSyntaxTree ( safeColumnId , value ) ) ;
58
+ this . ops . set ( safeColumnId , new SingleColumnSyntaxTree ( value , column ) ) ;
59
59
} else {
60
60
this . ops . delete ( safeColumnId ) ;
61
61
}
@@ -65,26 +65,26 @@ export default class FilterFactory {
65
65
66
66
const rawGlobalFilter = R . map (
67
67
ast => ast . query || '' ,
68
- R . filter ( ast => Boolean ( ast ) , asts )
68
+ R . filter < SingleColumnSyntaxTree > ( ast => Boolean ( ast ) , asts )
69
69
) . join ( ' && ' ) ;
70
70
71
71
setFilter ( globalFilter , rawGlobalFilter ) ;
72
72
}
73
73
74
- private getEventHandler = ( fn : Function , columnId : ColumnId , setFilter : SetFilter ) : any => {
74
+ private getEventHandler = ( fn : Function , column : IVisibleColumn , setFilter : SetFilter ) : any => {
75
75
const fnHandler = ( this . handlers . get ( fn ) || this . handlers . set ( fn , new Map ( ) ) . get ( fn ) ) ;
76
- const columnIdHandler = ( fnHandler . get ( columnId ) || fnHandler . set ( columnId , new Map ( ) ) . get ( columnId ) ) ;
76
+ const columnIdHandler = ( fnHandler . get ( column . id ) || fnHandler . set ( column . id , new Map ( ) ) . get ( column . id ) ) ;
77
77
78
78
return (
79
79
columnIdHandler . get ( setFilter ) ||
80
- ( columnIdHandler . set ( setFilter , fn . bind ( this , columnId , setFilter ) ) . get ( setFilter ) )
80
+ ( columnIdHandler . set ( setFilter , fn . bind ( this , column , setFilter ) ) . get ( setFilter ) )
81
81
) ;
82
82
}
83
83
84
- private updateOps = memoizeOne ( ( query : string ) => {
84
+ private updateOps = memoizeOne ( ( query : string , columns : IVisibleColumn [ ] ) => {
85
85
const multiQuery = new MultiColumnsSyntaxTree ( query ) ;
86
86
87
- const newOps = getSingleColumnMap ( multiQuery ) ;
87
+ const newOps = getSingleColumnMap ( multiQuery , columns ) ;
88
88
if ( ! newOps ) {
89
89
return ;
90
90
}
@@ -109,15 +109,15 @@ export default class FilterFactory {
109
109
} ) ;
110
110
111
111
private filter = memoizerCache < [ ColumnId , number ] > ( ) ( (
112
- column : ColumnId ,
112
+ column : IVisibleColumn ,
113
113
index : number ,
114
114
ast : SingleColumnSyntaxTree | undefined ,
115
115
setFilter : SetFilter
116
116
) => {
117
117
return ( < ColumnFilter
118
118
key = { `column-${ index } ` }
119
119
classes = { `dash-filter column-${ index } ` }
120
- columnId = { column }
120
+ columnId = { column . id }
121
121
isValid = { ! ast || ast . isValid }
122
122
setFilter = { this . getEventHandler ( this . onChange , column , setFilter ) }
123
123
value = { ast && ast . query }
@@ -143,7 +143,7 @@ export default class FilterFactory {
143
143
return [ ] ;
144
144
}
145
145
146
- this . updateOps ( filter ) ;
146
+ this . updateOps ( filter , columns ) ;
147
147
148
148
if ( filtering_type === FilteringType . Basic ) {
149
149
const filterStyles = this . relevantStyles (
@@ -160,7 +160,7 @@ export default class FilterFactory {
160
160
161
161
const filters = R . addIndex < IVisibleColumn , JSX . Element > ( R . map ) ( ( column , index ) => {
162
162
return this . filter . get ( column . id , index ) (
163
- column . id ,
163
+ column ,
164
164
index ,
165
165
this . ops . get ( column . id . toString ( ) ) ,
166
166
setFilter
0 commit comments