redux-devtools/packages/d3tooltip/src/utils/prependClass.ts
Nathan Bierema 3b580dad4c
feat(d3tooltip): convert to TypeScript (#639)
* start d3tooltip

* finish d3tooltip
2020-09-20 14:21:59 -04:00

29 lines
674 B
TypeScript

import { mapObjIndexed, join } from 'ramda';
import functor from './functor';
import { Primitive } from 'd3';
export default function prependClass<Datum>(className: string) {
return mapObjIndexed(
(
value:
| Primitive
| ((datum: Datum, index: number, outerIndex?: number) => Primitive),
key
) => {
if (key === 'class') {
const fn = functor(value);
return (d: Datum, i: number) => {
const classNames = fn(d, i);
if (classNames !== className) {
return join(' ', [className, classNames]);
}
return classNames;
};
}
return value;
}
);
}