UNPKG

@guardian/threads

Version:
30 lines (29 loc) 1.54 kB
import { Filter } from './Filter'; export declare type TextElement = { type: 'text'; value: string; }; export declare type FilterElement = { type: 'filter'; name: string; value: string; label?: string; negate: boolean; filter: Filter; }; export declare type SelectAsyncFilterElement = FilterElement & { label: string; }; export declare type QueryElement = TextElement | FilterElement | SelectAsyncFilterElement; export declare namespace QueryElementHelpers { function isText(elem: QueryElement): elem is TextElement; function isFilter(elem: QueryElement): elem is FilterElement; const removeElement: (elements: QueryElement[], index: number) => (TextElement | FilterElement)[]; const removeElements: (elements: QueryElement[], from: number, to: number) => (TextElement | FilterElement)[]; const updateElementValue: (elements: QueryElement[], index: number, value: string, label?: string | undefined) => (TextElement | FilterElement)[]; const replaceElement: (elements: QueryElement[], index: number, replacement: QueryElement[]) => (TextElement | FilterElement)[]; const replaceElements: (elements: QueryElement[], from: number, to: number, replacement: QueryElement[]) => (TextElement | FilterElement)[]; const appendQueryElement: (elements: QueryElement[], element: QueryElement) => (TextElement | FilterElement)[]; const textElementFromValue: (value: string) => TextElement; const filterElementFromFilter: (filter: Filter, negate: boolean) => FilterElement; }