in src/utils/filter-utils.js [987:1031]
export function mergeFilterDomainStep(filter, filterProps) {
if (!filter) {
return null;
}
if (!filterProps) {
return filter;
}
if ((filter.fieldType && filter.fieldType !== filterProps.fieldType) || !filterProps.domain) {
return filter;
}
const combinedDomain = !filter.domain
? filterProps.domain
: [...(filter.domain || []), ...(filterProps.domain || [])].sort((a, b) => a - b);
const newFilter = {
...filter,
...filterProps,
domain: [combinedDomain[0], combinedDomain[combinedDomain.length - 1]]
};
switch (filterProps.fieldType) {
case ALL_FIELD_TYPES.string:
case ALL_FIELD_TYPES.date:
return {
...newFilter,
domain: unique(combinedDomain).sort()
};
case ALL_FIELD_TYPES.timestamp:
// @ts-ignore
const step = filter.step < filterProps.step ? filter.step : filterProps.step;
return {
...newFilter,
step
};
case ALL_FIELD_TYPES.real:
case ALL_FIELD_TYPES.integer:
default:
return newFilter;
}
}