@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
31 lines • 4.11 kB
JavaScript
import { Operator } from './operator';
import { Equals } from './equals';
import { Query } from '../query/query';
import { Operators } from './operators';
/**
* Inequality operator. Will match if the field has a different value than the input.
* Can be used with keyword fields and different types. We don't recommend using this operator with date and datetime fields
* as an exact timestamp mismatch would be required.
* For Date needs use {@link NotEqualsDate} instead.
*/
export class NotEquals extends Operator {
equals;
constructor(operators) {
super(1);
this.equals = operators.getOperator(Equals);
}
createQuery(elasticKeywords, args) {
const equalsQuery = this.equals.createQuery(elasticKeywords, args);
if (equalsQuery.isEmpty) {
return equalsQuery;
}
return new Query(`(!${equalsQuery.value})`);
}
getOperatorNameTemplate() {
return ['search.operator.notEquals', Operator.INPUT_PLACEHOLDER];
}
serialize() {
return Operators.NOT_EQUALS;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWVxdWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvc2VhcmNoL21vZGVscy9vcGVyYXRvci9ub3QtZXF1YWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVoQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUV0Qzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxTQUFVLFNBQVEsUUFBeUI7SUFFMUMsTUFBTSxDQUFTO0lBRXpCLFlBQVksU0FBMEI7UUFDbEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBVyxDQUFDO0lBQzFELENBQUM7SUFFRCxXQUFXLENBQUMsZUFBOEIsRUFBRSxJQUE0QjtRQUNwRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkUsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ3JCLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTyxDQUFDLDJCQUEyQixFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ2hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3BlcmF0b3J9IGZyb20gJy4vb3BlcmF0b3InO1xuaW1wb3J0IHtFcXVhbHN9IGZyb20gJy4vZXF1YWxzJztcbmltcG9ydCB7T3BlcmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9vcGVyYXRvci1zZXJ2aWNlL29wZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtRdWVyeX0gZnJvbSAnLi4vcXVlcnkvcXVlcnknO1xuaW1wb3J0IHtPcGVyYXRvcnN9IGZyb20gJy4vb3BlcmF0b3JzJztcblxuLyoqXG4gKiBJbmVxdWFsaXR5IG9wZXJhdG9yLiBXaWxsIG1hdGNoIGlmIHRoZSBmaWVsZCBoYXMgYSBkaWZmZXJlbnQgdmFsdWUgdGhhbiB0aGUgaW5wdXQuXG4gKiBDYW4gYmUgdXNlZCB3aXRoIGtleXdvcmQgZmllbGRzIGFuZCBkaWZmZXJlbnQgdHlwZXMuIFdlIGRvbid0IHJlY29tbWVuZCB1c2luZyB0aGlzIG9wZXJhdG9yIHdpdGggZGF0ZSBhbmQgZGF0ZXRpbWUgZmllbGRzXG4gKiBhcyBhbiBleGFjdCB0aW1lc3RhbXAgbWlzbWF0Y2ggd291bGQgYmUgcmVxdWlyZWQuXG4gKiBGb3IgRGF0ZSBuZWVkcyB1c2Uge0BsaW5rIE5vdEVxdWFsc0RhdGV9IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RFcXVhbHMgZXh0ZW5kcyBPcGVyYXRvcjxzdHJpbmcgfCBudW1iZXI+IHtcblxuICAgIHByb3RlY3RlZCBlcXVhbHM6IEVxdWFscztcblxuICAgIGNvbnN0cnVjdG9yKG9wZXJhdG9yczogT3BlcmF0b3JTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKDEpO1xuICAgICAgICB0aGlzLmVxdWFscyA9IG9wZXJhdG9ycy5nZXRPcGVyYXRvcihFcXVhbHMpIGFzIEVxdWFscztcbiAgICB9XG5cbiAgICBjcmVhdGVRdWVyeShlbGFzdGljS2V5d29yZHM6IEFycmF5PHN0cmluZz4sIGFyZ3M6IEFycmF5PHN0cmluZyB8IG51bWJlcj4pOiBRdWVyeSB7XG4gICAgICAgIGNvbnN0IGVxdWFsc1F1ZXJ5ID0gdGhpcy5lcXVhbHMuY3JlYXRlUXVlcnkoZWxhc3RpY0tleXdvcmRzLCBhcmdzKTtcbiAgICAgICAgaWYgKGVxdWFsc1F1ZXJ5LmlzRW1wdHkpIHtcbiAgICAgICAgICAgIHJldHVybiBlcXVhbHNRdWVyeTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFF1ZXJ5KGAoISR7ZXF1YWxzUXVlcnkudmFsdWV9KWApO1xuICAgIH1cblxuICAgIGdldE9wZXJhdG9yTmFtZVRlbXBsYXRlKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gWydzZWFyY2gub3BlcmF0b3Iubm90RXF1YWxzJywgT3BlcmF0b3IuSU5QVVRfUExBQ0VIT0xERVJdO1xuICAgIH1cblxuICAgIHNlcmlhbGl6ZSgpOiBPcGVyYXRvcnMgfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gT3BlcmF0b3JzLk5PVF9FUVVBTFM7XG4gICAgfVxufVxuIl19