@@ -53,12 +53,16 @@ const applyFilters = (data: any, filter: any): boolean => {
5353
5454 if ( filter . field && filter . operator ) {
5555 const value = get ( data , filter . field ) ;
56+ let intValue : number ;
57+ try {
58+ intValue = Number ( filter . value ) ;
59+ } catch { }
5660 switch ( filter . operator ) {
5761 case 'eq' :
58- return eq ( value , filter . value ) ;
62+ return eq ( value , String ( filter . value ) ) || eq ( value , intValue ) ;
5963 case 'ne' :
6064 case 'neq' :
61- return ! eq ( value , filter . value ) ;
65+ return ! ( eq ( value , String ( filter . value ) ) || eq ( value , intValue ) ) ;
6266 case 'gt' :
6367 return ! isNil ( value ) && value > filter . value ;
6468 case 'gte' :
@@ -270,7 +274,7 @@ export default {
270274 // sourceFields and pipeline from args have priority over current aggregation ones
271275 // for the aggregation preview feature on aggregation builder
272276 const sourceFields = args . sourceFields ?? aggregation . sourceFields ;
273- const pipeline = args . pipeline ?? aggregation . pipeline ;
277+ const pipeline = args . pipeline ?? aggregation . pipeline ?? [ ] ;
274278 // Build the source fields step
275279 if ( sourceFields && sourceFields . length && pipeline ) {
276280 try {
@@ -302,6 +306,12 @@ export default {
302306 }
303307 }
304308 }
309+ if ( args . contextFilters ) {
310+ pipeline . unshift ( {
311+ type : 'filter' ,
312+ form : args . contextFilters ,
313+ } ) ;
314+ }
305315 // Build the pipeline
306316 if ( args . sortField && args . sortOrder ) {
307317 pipeline . push ( {
0 commit comments