@@ -69,15 +69,40 @@ class ValidateFilter {
6969 if ( OperatorFilter . IS_NOT_EMPTY [ 1 ] === operatorFilter ) {
7070 return ( literalToCheck !== null && literalToCheck !== undefined && literalToCheck !== '' ) ;
7171 }
72-
7372 switch ( type ) {
7473 case InputType . CALENDAR :
7574 case InputType . CALENDAR_TIME :
7675 return this . calendarAtomicFilter ( literalToCheck , operatorFilter , value ) ;
76+ case InputType . NUMBER :
77+ return this . numberAtomicFilter ( literalToCheck , operatorFilter , value ) ;
7778 default :
7879 return this . mdAtomicFilter ( literalToCheck , operatorFilter , value ) ;
7980 }
8081 }
82+ private numberAtomicFilter ( literalToCheck : Literal , operator : string , value : string ) : boolean {
83+ const adaptedLiteral = ParseService . parseLiteral ( literalToCheck , InputType . NUMBER , this . ddbbConfig ) as number ;
84+ const adaptedValue = ParseService . parseLiteral ( value , InputType . NUMBER , this . ddbbConfig ) as number ;
85+ if ( isNaN ( adaptedLiteral ) || isNaN ( adaptedValue ) ) {
86+ return false ;
87+ }
88+ switch ( operator ) {
89+ case OperatorFilter . EQUAL [ 1 ] :
90+ return adaptedLiteral === adaptedValue ;
91+ case OperatorFilter . NOT_EQUAL [ 1 ] :
92+ return adaptedLiteral !== adaptedValue ;
93+ case OperatorFilter . GREATER_THAN [ 1 ] :
94+ return adaptedValue > adaptedLiteral ;
95+ case OperatorFilter . LESS_THAN [ 1 ] :
96+ return adaptedValue < adaptedLiteral ;
97+ case OperatorFilter . GREATER_THAN_OR_EQUAL [ 1 ] :
98+ return adaptedValue >= adaptedLiteral ;
99+ case OperatorFilter . LESS_THAN_OR_EQUAL [ 1 ] :
100+ return adaptedValue <= adaptedLiteral ;
101+ default :
102+ LOGGER . error ( `Operator ${ operator } not supported for numberAtomicFilter` ) ;
103+ return false ;
104+ }
105+ }
81106
82107 private calendarAtomicFilter ( literalToCheck : Literal , operator : string , value : string ) : boolean {
83108 if ( ! DateTime . isDateTime ( literalToCheck ) ) {
0 commit comments