@guardian/threads
Version:
88 lines • 3.22 kB
JavaScript
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