@polygon.io/charts
Version:
A set of React components for charting financial market data.
1 lines • 2.43 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault"),_typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _react=_interopRequireWildcard(require("react")),_styledComponents=require("styled-components"),_d3Selection=require("d3-selection"),_d3Ease=require("d3-ease"),_d3Interpolate=require("d3-interpolate"),_d3Scale=require("d3-scale"),_d3Array=require("d3-array"),_useTimeAxis=_interopRequireDefault(require("../../hooks/useTimeAxis"));function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!==_typeof(a)&&"function"!=typeof a)return{default:a};var c=_getRequireWildcardCache(b);if(c&&c.has(a))return c.get(a);var d={},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!=f&&Object.prototype.hasOwnProperty.call(a,f)){var g=e?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(d,f,g):d[f]=a[f]}return d["default"]=a,c&&c.set(a,d),d}var __jsx=_react["default"].createElement;require("d3-transition");var VolumeChart=function(a){var b=a.data,c=a.width,e=a.height,f=a.transitionDuration,g=(0,_react.useRef)(null),h=(0,_styledComponents.useTheme)(),i=(0,_react.useCallback)(function(a){var b=a.t;return b},[]),j=(0,_react.useCallback)(function(a){var b=a.v;return b},[]),k=(0,_useTimeAxis["default"])(c,b),l=(0,_d3Scale.scaleLinear)().range([e,0]).domain([0,(0,_d3Array.max)(b,j)]);return(0,_react.useEffect)(function(){if(b.length){var a=(0,_d3Selection.select)(g.current),c=a.selectAll("rect"),d=c.data(b),m=function(a){return a.transition().delay(function(a,c){return c*(f/b.length)}).duration(f/2).ease(_d3Ease.easeLinear).attrTween("height",function(a){return(0,_d3Interpolate.interpolate)(0,e-l(j(a)))}).attrTween("y",function(a){return(0,_d3Interpolate.interpolate)(l(0),l(j(a)))})};d.enter().append("rect").merge(d).call(m).attr("x",function(a){return k(i(a))}).attr("width",k.bandwidth()).attr("fill",h.color.background.secondary),d.exit().remove()}},[b,c,e,f,k,h.color.background.secondary,i,l,j]),__jsx("svg",{ref:g,height:e,width:c})};VolumeChart.defaultProps={data:[]};var _default=VolumeChart;exports["default"]=_default;