@praetorian-chariot/ui
Version:
The UI component library for Chariot, built with Tailwind CSS and React.
51 lines • 1.51 kB
TypeScript
import React from 'react';
import { DropdownOption } from './Dropdown';
export type Operator = '=' | 'CONTAINS' | '<' | '>' | '<=' | '>=' | 'LIKE' | 'IN' | 'NOT IN' | 'IS NULL' | 'IS NOT NULL' | 'STARTS WITH';
export interface Filter {
field: string;
operator: Operator | 'AND' | 'OR';
value: string | number | boolean | Array<string | number> | Filter[];
logical?: 'AND' | 'OR';
not?: boolean;
}
export interface Relationship {
label: string[];
target?: {
labels: string[];
filters?: Filter[];
relationships?: Relationship[];
};
source?: {
labels: string[];
filters?: Filter[];
};
length?: number;
optional?: boolean;
}
export interface NodeDetails {
labels: string[];
filters?: Filter[];
relationships?: Relationship[];
sorted?: boolean;
unique_paths?: boolean;
}
export interface GraphQuery {
node: NodeDetails;
page?: number;
limit?: number;
orderBy?: string;
descending?: boolean;
}
export interface QueryBuilderProps {
query: GraphQuery;
onChange: (query: GraphQuery) => void;
className?: string;
labelOptions?: DropdownOption[];
fieldOptions?: Record<string, DropdownOption[]>;
operatorOptions?: DropdownOption[];
valueOptions?: Record<string, DropdownOption[]>;
relationshipOptions?: DropdownOption[];
}
export declare const QueryBuilder: React.FC<QueryBuilderProps>;
export default QueryBuilder;
//# sourceMappingURL=QueryBuilder.d.ts.map