export function domainFromRangeData()

in src/utils/Data.js [180:208]


export function domainFromRangeData(
  data,
  rangeStartAccessor,
  rangeEndAccessor,
  dataType,
) {
  // returns the domain of dataset for which each datum represents a range of values
  // ie. has a start and end value rather than a single value
  // for example, time ranges
  let dataTypeToUse = dataType;
  if (!dataTypeToUse) dataTypeToUse = inferDataType(data, rangeStartAccessor);

  switch (dataTypeToUse) {
    case 'number':
    case 'time':
      return extent(
        flatten([
          extent(data, (d, i) => +rangeStartAccessor(d, i)),
          extent(data, (d, i) => +rangeEndAccessor(d, i)),
        ]),
      );
    case 'categorical':
      return uniq(
        flatten([data.map(rangeStartAccessor), data.map(rangeEndAccessor)]),
      );
    default:
      return [];
  }
}