/** * AdvancedFilter用のオペレーター定義 * * フィルタータイプに応じた適切なオペレーターを提供し、 * 一元管理により保守性と再利用性を向上させる。 */ import { FilterPresetType, FilterTypeConfig, OperatorDefinition } from "../types"; import { normalizeForSearch } from "../../../utils"; /** * テキスト系フィルター用オペレーター * ID、名前、コメントなどの文字列フィールド向け */ export declare const TEXT_OPERATORS: OperatorDefinition[]; /** * 数値系フィルター用オペレーター * 価格、数量、スコアなどの数値フィールド向け */ export declare const NUMBER_OPERATORS: OperatorDefinition[]; /** * 日付系フィルター用オペレーター * 作成日、更新日、期限などの日付フィールド向け */ export declare const DATE_OPERATORS: OperatorDefinition[]; /** * 選択系フィルター用オペレーター * ステータス、カテゴリ、担当者などの選択肢フィールド向け */ export declare const SELECTION_OPERATORS: OperatorDefinition[]; /** * プリセット組み合わせ * 一般的なフィルタータイプ向けの推奨オペレーター組み合わせ */ export declare const PRESET_OPERATORS: { readonly text_basic: readonly [OperatorDefinition, OperatorDefinition, OperatorDefinition]; readonly text_search: readonly [OperatorDefinition, OperatorDefinition, OperatorDefinition]; readonly selection_basic: readonly [OperatorDefinition, OperatorDefinition]; readonly selection_multiple: readonly [OperatorDefinition, OperatorDefinition, OperatorDefinition]; readonly date_basic: readonly [OperatorDefinition, OperatorDefinition, OperatorDefinition]; readonly number_basic: readonly [OperatorDefinition, OperatorDefinition, OperatorDefinition, OperatorDefinition, OperatorDefinition]; }; /** * フィルタータイプからプリセットオペレーターを取得 */ export declare const getPresetOperators: (filterType: FilterPresetType) => OperatorDefinition[]; /** * カスタムオペレーター作成用のヘルパー関数 */ export declare const createOperator: (value: string, label: string) => OperatorDefinition; /** * オペレーター配列を結合するヘルパー関数 */ export declare const combineOperators: (...operatorGroups: OperatorDefinition[][]) => OperatorDefinition[]; /** * オペレーター配列のラベルを上書きするヘルパー関数 */ export declare const overrideOperatorLabels: (operators: OperatorDefinition[], labelOverrides: Record) => OperatorDefinition[]; /** * 単一オペレーターのラベルのみを変更するヘルパー関数 */ export declare const changeOperatorLabel: (operator: OperatorDefinition, newLabel: string) => OperatorDefinition; /** * プリセットオペレーターのラベルを上書きして取得 */ export declare const getPresetOperatorsWithLabels: (filterType: FilterPresetType, labelOverrides: Record) => OperatorDefinition[]; /** * オペレーター配列から指定されたvalueの要素のみを抽出 */ export declare const selectOperators: (operators: OperatorDefinition[], values: string[]) => OperatorDefinition[]; /** * オペレーター配列から指定されたインデックスの要素のみを抽出 */ export declare const selectOperatorsByIndex: (operators: OperatorDefinition[], indices: number[]) => OperatorDefinition[]; /** * フィルタリング処理用のヘルパー関数群 * 実際のデータフィルタリング処理で使用 */ export { normalizeForSearch }; /** * 単一の値に対してオペレーターを適用 */ export declare const applyOperatorToValue: (value: string | number | Date | boolean, operator: string, filterValues: (string | boolean)[]) => boolean; /** * 配列データに対してフィルターを適用 */ export declare const applyFilter: >(data: T[], field: keyof T, operator: string, values: (string | boolean)[]) => T[]; /** * 複数フィルターを適用(AND条件) */ export declare const applyMultipleFilters: >(data: T[], filters: Array<{ field: keyof T; operator: string; values: (string | boolean)[]; }>) => T[]; /** * ネストされたデータオブジェクトから条件の値を取得 * valueSourceが指定されている場合はそれを使用し、なければ filterType + "Attr" を使用 */ export declare const getNestedValue: >(item: T, filterType: string, conditionKey: string, valueSource?: string) => unknown; /** * 1つのフィルタ内の複数条件を評価 * 値が入力されている条件のみを評価し、すべての条件がANDで結合される */ export declare const evaluateFilterConditions: >(item: T, filterType: string, conditions: Array<{ conditionKey: string; operator: string; values: (string | boolean)[]; }>, filterConfigs?: Record) => boolean;