dc
Version:
A multi-dimensional charting library built to work natively with crossfilter and rendered using d3.js
34 lines (29 loc) • 1.07 kB
JavaScript
import { version } from 'd3';
import { event, mouse } from 'd3-selection';
import { nest } from 'd3-collection';
import { d3compat } from '../core/config';
const majorVer = +version[0];
if (majorVer < 6) {
Object.assign(d3compat, {
eventHandler: handler => function eventHandler (d, _) {
handler.call(this, d, event);
},
// manual firing of event, usu for tests
callHandler: function callHandler (handler, that, _, d) {
// note: dropping event as well as any extra args
// d3@6 does not pass extra args anymore, so we can't use them and remain compatible
handler.call(that, d);
},
nester: ({key, sortKeys, sortValues, entries}) => {
const nester = nest().key(key);
if (sortKeys) {
nester.sortKeys(sortKeys);
}
if (sortValues) {
nester.sortValues(sortValues);
}
return nester.entries(entries);
},
pointer: (evt, elem) => mouse(elem)
});
}