UNPKG

d3-visualize

Version:

d3-view components for data visualization

51 lines (45 loc) 1.32 kB
// Collection of transforms import {map} from 'd3-collection'; import {isArray, isPromise, assign} from 'd3-let'; import transform from './base'; import filter from './filter'; import aggregate from './aggregate'; import crossfilter from './crossfilter'; import timeseries from './timeseries'; import mapfields from './mapfields'; import movingaverage from './moving-average'; import groupsmall from './group-small'; import diff from './diff'; // // transforms Store export default assign(map({ filter, aggregate, mapfields, timeseries, crossfilter, movingaverage, groupsmall, diff }), { add (name, o) { this.set(name, transform(o)); } }); // Apply data transforms to a series // Allow for asynchronous transforms export function applyTransforms (frame, transforms) { if (!transforms) return frame; return applyt(frame, transforms.slice()); } function applyt (frame, transforms, res) { if (isArray(res)) frame = frame.new(res); else if (res) frame = res; if (transforms.length) { var transform = transforms.splice(0, 1)[0], ts = transform ? transform(frame) : null; if (isPromise(ts)) return ts.then(res => applyt(frame, transforms, res)); else return applyt(frame, transforms, ts); } return frame; }