@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
30 lines (29 loc) • 947 B
JavaScript
function createOnlyResult(distinctValues) {
const value = distinctValues.size === 1 ? distinctValues.values().next().value : null;
return {
distinctValues,
value,
toString() {
return value != null ? String(value) : '';
},
};
}
export const only = (params) => {
const { values } = params;
const distinctValues = new Set();
for (let i = 0; i < values.length; i++) {
const value = values[i];
if (typeof value === 'number' || typeof value === 'string') {
distinctValues.add(value);
}
else if (value != null && typeof value === 'object' && 'distinctValues' in value) {
for (const v of value.distinctValues) {
distinctValues.add(v);
}
}
if (distinctValues.size > 1) {
return createOnlyResult(distinctValues);
}
}
return createOnlyResult(distinctValues);
};