| Condition | Description |
|---|---|
is / equals | Include if field is equal to value. |
not / isnt | Include if field is not equal to value. |
exists / isset | Include if field exists. |
doesnt_exist / is_empty / null | Include if field doesn't exist. |
contains | Include if field contains value. |
doesnt_contain | Include if field doesn't contain value. |
in | Include if field value is in the provided array. |
not_in | Include if field value is not_in the provided array. |
starts_with | Include if field starts with value. |
doesnt_start_with | Include if field doesn't start with value. |
ends_with | Include if field ends with value. |
doesnt_end_with | Include if field doesn't end with value. |
gt | Include if field is greater than value. |
gte | Include if field is greater than or equal to value. |
lt | Include if field is less than value. |
lte | Include if field is less than or equal to value. |
matches / regex | Include if field matches case insensitive regex. |
doesnt_match | Include if field doesn't match case insensitive regex. |
is_alpha | Include if field contains only alphabetical characters. |
is_numeric | Include if field contains only numeric characters. |
is_alpha_numeric | Include if field contains only alphanumeric characters. |
is_url | Include if field is a valid URL. |
is_embeddable | Include if field is an embeddable video URL. |
is_email | Include if field is valid email address. |
is_after | Include if field is after date. |
is_before | Include if field is before date. |
is_numberwang | Include if field is numberwang. |
/**
* String condition constants with descriptions for Statamic API filtering.
*
* @see {@link https://statamic.dev/conditions#string-conditions|Statamic conditions documentation}
*/
export const STATAMIC_STRING_CONDITIONS = {
/** Include if field **is equal** to value. */
is: "is",
/** Include if field **is equal** to value. (alias for `is`) */
equals: "equals",
/** Include if field is **not equal** to value. */
not: "not",
/** Include if field is **not equal** to value. (alias for `not`) */
isnt: "isnt",
/** Include if field **exists**. */
exists: "exists",
/** Include if field **exists**. (alias for `exists`) */
isset: "isset",
/** Include if field **doesn't exist**. */
doesnt_exist: "doesnt_exist",
/** Include if field **doesn't exist**. (alias for `doesnt_exist`) */
is_empty: "is_empty",
/** Include if field **doesn't exist**. (alias for `doesnt_exist`) */
null: "null",
/** Include if field **contains** value. */
contains: "contains",
/** Include if field **doesn't contain** value. */
doesnt_contain: "doesnt_contain",
/** Include if field value is **in** the provided array. */
in: "in",
/** Include if field value is **not in** the provided array. */
not_in: "not_in",
/** Include if field **starts with** value. */
starts_with: "starts_with",
/** Include if field **doesn't start** with value. */
doesnt_start_with: "doesnt_start_with",
/** Include if field **ends with** value. */
ends_with: "ends_with",
/** Include if field **doesn't end with** value. */
doesnt_end_with: "doesnt_end_with",
/** Include if field is **greater than** value. */
gt: "gt",
/** Include if field is **greater than or equal to** value. */
gte: "gte",
/** Include if field is **less than** value. */
lt: "lt",
/** Include if field is **less than or equal to** value. */
lte: "lte",
/** Include if field **matches** case insensitive regex. */
matches: "matches",
/** Include if field **matches** case insensitive regex. (alias for `matches`) */
regex: "regex",
/** Include if field **doesn't match** case insensitive regex. */
doesnt_match: "doesnt_match",
/** Include if field contains **only alphabetical characters**. */
is_alpha: "is_alpha",
/** Include if field contains **only numeric characters**. */
is_numeric: "is_numeric",
/** Include if field contains **only alphanumeric characters**. */
is_alpha_numeric: "is_alpha_numeric",
/** Include if field **is a valid URL**. */
is_url: "is_url",
/** Include if field **is an embeddable video URL**. */
is_embeddable: "is_embeddable",
/** Include if field **is valid email address**. */
is_email: "is_email",
/** Include if field **is after** date. */
is_after: "is_after",
/** Include if field **is before** date. */
is_before: "is_before",
/** Include if field **is numberwang**. */
is_numberwang: "is_numberwang",
} as const;
/**
* All possible field filter conditions available in Statamic.
*
* @see {@link https://statamic.dev/conditions#string-conditions|Statamic conditions documentation}
*
* @remarks
* The following conditions are available for filtering fields:
*
* #### Equality Conditions
* - `is` / `equals` - Include if field **is equal** to value.
* - `not` / `isnt` - Include if field is **not equal** to value.
*
* #### Existence Conditions
* - `exists` / `isset` - Include if field **exists**.
* - `doesnt_exist` / `is_empty` / `null` - Include if field **doesn't exist**.
*
* #### String Matching Conditions
* - `contains` - Include if field **contains** value.
* - `doesnt_contain` - Include if field **doesn't contain** value.
* - `starts_with` - Include if field **starts with** value.
* - `doesnt_start_with` - Include if field **doesn't start** with value.
* - `ends_with` - Include if field **ends with** value.
* - `doesnt_end_with` - Include if field **doesn't end with** value.
*
* #### Array Conditions
* - `in` - Include if field value is **in** the provided array.
* - `not_in` - Include if field value is **not in** the provided array.
*
* #### Comparison Conditions
* - `gt` - Include if field is **greater than** value.
* - `gte` - Include if field is **greater than or equal to** value.
* - `lt` - Include if field is **less than** value.
* - `lte` - Include if field is **less than or equal to** value.
*
* #### Regex Conditions
* - `matches` / `regex` - Include if field **matches** case insensitive regex.
* - `doesnt_match` - Include if field **doesn't match** case insensitive regex.
*
* #### Validation Conditions
* - `is_alpha` - Include if field contains **only alphabetical characters**.
* - `is_numeric` - Include if field contains **only numeric characters**.
* - `is_alpha_numeric` - Include if field contains **only alphanumeric characters**.
* - `is_url` - Include if field **is a valid URL**.
* - `is_embeddable` - Include if field **is an embeddable video URL**.
* - `is_email` - Include if field **is valid email address**.
*
* #### Date Conditions
* - `is_after` - Include if field **is after** date.
* - `is_before` - Include if field **is before** date.
*
* #### Special Conditions
* - `is_numberwang` - Include if field **is numberwang**.
*/
export type StatamicApiStringConditions = typeof STATAMIC_STRING_CONDITIONS[keyof typeof STATAMIC_STRING_CONDITIONS];