Features in Graphics
Offer options for negative search conditions in the search group header.
We offer four different options:
1) All of these conditions are met: (A && B && C)
2) Any of these conditions are met: (A || B || C)
3) At least one of these conditions is not met: !(A && B && C), (!A || !B ||!C)
4) None of these conditions are met: !(A || B || C), (!A && !B && !C) with 1) being the default.
Intuition and UI wording of the negated versions use the (!A || !B ||!C) and (!A && !B && !C) variant, while the stored search XML and the generated SQL will use !(A && B && C) and !(A || B || C) according to de Morgan.
This explains why the code is a bit more complicated than I expected initially.