UNPKG

@nepwork/dashboards

Version:

Dashboards for emergencies and monitoring

59 lines (53 loc) 1.91 kB
import {interpolateTransformCss as interpolateTransform} from "d3-interpolate"; import {style} from "d3-selection"; import {tweenValue} from "./tween"; import interpolate from "./interpolate"; function styleRemove(name, interpolate) { var value00, value10, interpolate0; return function() { var value0 = style(this, name), value1 = (this.style.removeProperty(name), style(this, name)); return value0 === value1 ? null : value0 === value00 && value1 === value10 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value10 = value1); }; } function styleRemoveEnd(name) { return function() { this.style.removeProperty(name); }; } function styleConstant(name, interpolate, value1) { var value00, interpolate0; return function() { var value0 = style(this, name); return value0 === value1 ? null : value0 === value00 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value1); }; } function styleFunction(name, interpolate, value) { var value00, value10, interpolate0; return function() { var value0 = style(this, name), value1 = value(this); if (value1 == null) value1 = (this.style.removeProperty(name), style(this, name)); return value0 === value1 ? null : value0 === value00 && value1 === value10 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value10 = value1); }; } export default function(name, value, priority) { var i = (name += "") === "transform" ? interpolateTransform : interpolate; return value == null ? this .styleTween(name, styleRemove(name, i)) .on("end.style." + name, styleRemoveEnd(name)) : this.styleTween(name, typeof value === "function" ? styleFunction(name, i, tweenValue(this, "style." + name, value)) : styleConstant(name, i, value + ""), priority); }