react-financial-charts
Version:
React charts specific to finance.
45 lines • 2.03 kB
JavaScript
import * as React from "react";
import { AreaOnlySeries } from "./AreaOnlySeries";
import { LineSeries } from "./LineSeries";
export class BollingerSeries extends React.Component {
constructor() {
super(...arguments);
this.yAccessorForScalledBottom = (scale, d) => {
const { yAccessor } = this.props;
return scale(yAccessor(d) && yAccessor(d).bottom);
};
this.yAccessorForBottom = (d) => {
const { yAccessor } = this.props;
return yAccessor(d) && yAccessor(d).bottom;
};
this.yAccessorForMiddle = (d) => {
const { yAccessor } = this.props;
return yAccessor(d) && yAccessor(d).middle;
};
this.yAccessorForTop = (d) => {
const { yAccessor } = this.props;
return yAccessor(d) && yAccessor(d).top;
};
}
render() {
const { areaClassName, className, opacity, stroke = BollingerSeries.defaultProps.stroke, fill, } = this.props;
return (React.createElement("g", { className: className },
React.createElement(LineSeries, { yAccessor: this.yAccessorForTop, stroke: stroke.top, fill: "none" }),
React.createElement(LineSeries, { yAccessor: this.yAccessorForMiddle, stroke: stroke.middle, fill: "none" }),
React.createElement(LineSeries, { yAccessor: this.yAccessorForBottom, stroke: stroke.bottom, fill: "none" }),
React.createElement(AreaOnlySeries, { className: areaClassName, yAccessor: this.yAccessorForTop, base: this.yAccessorForScalledBottom, stroke: "none", fill: fill, opacity: opacity })));
}
}
BollingerSeries.defaultProps = {
areaClassName: "react-financial-charts-bollinger-band-series-area",
className: "react-financial-charts-bollinger-band-series",
fill: "#26a69a",
opacity: 0.05,
stroke: {
top: "#26a69a",
middle: "#812828",
bottom: "#26a69a",
},
yAccessor: (data) => data.bb,
};
//# sourceMappingURL=BollingerSeries.js.map