@@ -281,6 +281,32 @@ function deleteQueryTokens(
281281 } ;
282282}
283283
284+ function termOperatorToInternal ( op : TermOperator ) : {
285+ internalOp : TermOperator ;
286+ negated : boolean ;
287+ } {
288+ const negated =
289+ op === TermOperator . NOT_EQUAL ||
290+ op === TermOperator . DOES_NOT_CONTAIN ||
291+ op === TermOperator . DOES_NOT_START_WITH ||
292+ op === TermOperator . DOES_NOT_END_WITH ;
293+
294+ let internalOp : TermOperator ;
295+ if ( op === TermOperator . DOES_NOT_CONTAIN ) {
296+ internalOp = TermOperator . CONTAINS ;
297+ } else if ( op === TermOperator . DOES_NOT_START_WITH ) {
298+ internalOp = TermOperator . STARTS_WITH ;
299+ } else if ( op === TermOperator . DOES_NOT_END_WITH ) {
300+ internalOp = TermOperator . ENDS_WITH ;
301+ } else if ( op === TermOperator . NOT_EQUAL ) {
302+ internalOp = TermOperator . DEFAULT ;
303+ } else {
304+ internalOp = op ;
305+ }
306+
307+ return { negated, internalOp} ;
308+ }
309+
284310export function modifyFilterOperatorQuery (
285311 query : string ,
286312 token : TokenResult < Token . FILTER > ,
@@ -290,23 +316,10 @@ export function modifyFilterOperatorQuery(
290316 return modifyFilterOperatorDate ( query , token , newOperator ) ;
291317 }
292318
319+ const { negated, internalOp} = termOperatorToInternal ( newOperator ) ;
293320 const newToken : TokenResult < Token . FILTER > = { ...token } ;
294- newToken . negated =
295- newOperator === TermOperator . NOT_EQUAL ||
296- newOperator === TermOperator . DOES_NOT_CONTAIN ||
297- newOperator === TermOperator . DOES_NOT_START_WITH ||
298- newOperator === TermOperator . DOES_NOT_END_WITH ;
299-
300- if ( newOperator === TermOperator . DOES_NOT_CONTAIN ) {
301- newToken . operator = TermOperator . CONTAINS ;
302- } else if ( newOperator === TermOperator . DOES_NOT_START_WITH ) {
303- newToken . operator = TermOperator . STARTS_WITH ;
304- } else if ( newOperator === TermOperator . DOES_NOT_END_WITH ) {
305- newToken . operator = TermOperator . ENDS_WITH ;
306- } else {
307- newToken . operator =
308- newOperator === TermOperator . NOT_EQUAL ? TermOperator . DEFAULT : newOperator ;
309- }
321+ newToken . negated = negated ;
322+ newToken . operator = internalOp ;
310323
311324 return replaceQueryToken ( query , token , stringifyToken ( newToken ) ) ;
312325}
@@ -622,24 +635,7 @@ export function modifyFilterValue(
622635 }
623636
624637 // Operator change — replace the entire filter token atomically
625- const negated =
626- newOp === TermOperator . NOT_EQUAL ||
627- newOp === TermOperator . DOES_NOT_CONTAIN ||
628- newOp === TermOperator . DOES_NOT_START_WITH ||
629- newOp === TermOperator . DOES_NOT_END_WITH ;
630-
631- let internalOp : TermOperator ;
632- if ( newOp === TermOperator . DOES_NOT_CONTAIN ) {
633- internalOp = TermOperator . CONTAINS ;
634- } else if ( newOp === TermOperator . DOES_NOT_START_WITH ) {
635- internalOp = TermOperator . STARTS_WITH ;
636- } else if ( newOp === TermOperator . DOES_NOT_END_WITH ) {
637- internalOp = TermOperator . ENDS_WITH ;
638- } else if ( newOp === TermOperator . NOT_EQUAL ) {
639- internalOp = TermOperator . DEFAULT ;
640- } else {
641- internalOp = newOp ;
642- }
638+ const { negated, internalOp} = termOperatorToInternal ( newOp ) ;
643639
644640 const prefix = negated ? '!' : '' ;
645641 const keyStr = stringifyToken ( token . key ) ;
0 commit comments