Add int_greater_than operator

Summary: Doc: https://docs.google.com/document/d/1miofxds9DJgWScj0zFyBbdpRH5Rj0T9FqiCapof5-vU/edit#heading=h.pg8svtdjlx7

Reviewed By: lblasa

Differential Revision: D49230136

fbshipit-source-id: e3ebcc1d501a31a3d7076ad2d013b66ec69ea935
This commit is contained in:
Andrey Goncharov
2023-09-14 04:48:12 -07:00
committed by Facebook GitHub Bot
parent 43b2effdda
commit df37187b6b

View File

@@ -46,6 +46,11 @@ export const dataTablePowerSearchOperators = {
key: 'string_set_contains_none_of', key: 'string_set_contains_none_of',
valueType: 'STRING_SET', valueType: 'STRING_SET',
}), }),
int_greater_than: () => ({
label: '>',
key: 'int_greater_than',
valueType: 'INTEGER',
}),
} satisfies { } satisfies {
[key: string]: (...args: any[]) => OperatorConfig; [key: string]: (...args: any[]) => OperatorConfig;
}; };
@@ -55,21 +60,31 @@ export type PowerSearchOperatorProcessorConfig = {
}; };
export const dataTablePowerSearchOperatorProcessorConfig = { export const dataTablePowerSearchOperatorProcessorConfig = {
string_contains: (operator, searchValue, value) => string_contains: (_operator, searchValue: string, value: string) =>
(value as string) value.toLowerCase().includes(searchValue.toLowerCase()),
.toLowerCase() string_not_contains: (_operator, searchValue: string, value: string) =>
.includes((searchValue as string).toLowerCase()), !value.toLowerCase().includes(searchValue.toLowerCase()),
string_not_contains: (operator, searchValue, value) => string_matches_exactly: (_operator, searchValue: string, value: string) =>
!(value as string)
.toLowerCase()
.includes((searchValue as string).toLowerCase()),
string_matches_exactly: (operator, searchValue, value) =>
value === searchValue, value === searchValue,
string_not_matches_exactly: (operator, searchValue, value) => string_not_matches_exactly: (_operator, searchValue: string, value: string) =>
value !== searchValue, value !== searchValue,
// See PowerSearchStringSetTerm // See PowerSearchStringSetTerm
string_set_contains_any_of: (operator, searchValue: string[], value) => string_set_contains_any_of: (
searchValue.some((item) => (value as string).toLowerCase().includes(item)), _operator,
string_set_contains_none_of: (operator, searchValue: string[], value) => searchValue: string[],
!searchValue.some((item) => (value as string).toLowerCase().includes(item)), value: string,
) =>
searchValue.some((item) =>
value.toLowerCase().includes(item.toLowerCase()),
),
string_set_contains_none_of: (
_operator,
searchValue: string[],
value: string,
) =>
!searchValue.some((item) =>
value.toLowerCase().includes(item.toLowerCase()),
),
int_greater_than: (_operator, searchValue: number, value: number) =>
value > searchValue,
} satisfies PowerSearchOperatorProcessorConfig; } satisfies PowerSearchOperatorProcessorConfig;