UNPKG

@guardian/threads

Version:
88 lines 3.22 kB
import { __assign, __spreadArrays } from "tslib"; import isNil from 'lodash/isNil'; import { FilterHelpers, UnknownFilter } from './Filter'; export var QueryElementHelpers; (function (QueryElementHelpers) { function isText(elem) { return elem.type === 'text'; } QueryElementHelpers.isText = isText; function isFilter(elem) { return elem.type === 'filter'; } QueryElementHelpers.isFilter = isFilter; QueryElementHelpers.removeElement = function (elements, index) { return __spreadArrays(elements.slice(0, index), elements.slice(index + 1)); }; QueryElementHelpers.removeElements = function (elements, from, to) { return __spreadArrays(elements.slice(0, from), elements.slice(to)); }; QueryElementHelpers.updateElementValue = function (elements, index, value, label) { var newElement = isNil(label) ? __assign(__assign({}, elements[index]), { value: value }) : __assign(__assign({}, elements[index]), { value: value, label: label }); return __spreadArrays(elements.slice(0, index), [ newElement ], elements.slice(index + 1)); }; QueryElementHelpers.replaceElement = function (elements, index, replacement) { return __spreadArrays(elements.slice(0, index), replacement, elements.slice(index + 1)); }; QueryElementHelpers.replaceElements = function (elements, from, to, replacement) { return __spreadArrays(elements.slice(0, from), replacement, elements.slice(to)); }; QueryElementHelpers.appendQueryElement = function (elements, element) { return __spreadArrays(elements, [element]); }; QueryElementHelpers.textElementFromValue = function (value) { return { type: 'text', value: value, }; }; QueryElementHelpers.filterElementFromFilter = function (filter, negate) { if (FilterHelpers.isText(filter)) { return { type: 'filter', name: filter.name, value: '', filter: filter, negate: negate, }; } else if (FilterHelpers.isSelect(filter)) { return { type: 'filter', name: filter.name, value: filter.defaultValue, filter: filter, negate: negate, }; } else if (FilterHelpers.isSelectAsync(filter)) { return { type: 'filter', name: filter.name, value: '', filter: filter, negate: negate, }; } else if (FilterHelpers.isBoolean(filter)) { return { type: 'filter', name: filter.name, value: '', filter: filter, negate: negate, }; } return { type: 'filter', name: 'Unknown Filter', value: '', filter: new UnknownFilter(), negate: negate, }; }; })(QueryElementHelpers || (QueryElementHelpers = {})); //# sourceMappingURL=StructuredQuery.js.map