@guardian/threads
Version:
30 lines (29 loc) • 1.54 kB
TypeScript
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;
}