UNPKG

victory-chart

Version:
223 lines (68 loc) 9.87 kB
Object.defineProperty(exports,"__esModule",{value:true});var _partialRight2=require("lodash/partialRight");var _partialRight3=_interopRequireDefault(_partialRight2);var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _react=require("react");var _react2=_interopRequireDefault(_react); var _victoryCore=require("victory-core"); var _helperMethods=require("./helper-methods");var _helperMethods2=_interopRequireDefault(_helperMethods);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;} var fallbackProps={ width:450, height:300, padding:50, candleColors:{ positive:"#ffffff", negative:"#252525"}}; var defaultData=[ {x:new Date(2016,6,1),open:5,close:10,high:15,low:0}, {x:new Date(2016,6,2),open:10,close:15,high:20,low:5}, {x:new Date(2016,6,3),open:15,close:20,high:25,low:10}, {x:new Date(2016,6,4),open:20,close:25,high:30,low:15}, {x:new Date(2016,6,5),open:25,close:30,high:35,low:20}, {x:new Date(2016,6,6),open:30,close:35,high:40,low:25}, {x:new Date(2016,6,7),open:35,close:40,high:45,low:30}, {x:new Date(2016,6,8),open:40,close:45,high:50,low:35}];var VictoryCandlestick=function(_React$Component){_inherits(VictoryCandlestick,_React$Component);function VictoryCandlestick(){_classCallCheck(this,VictoryCandlestick);return _possibleConstructorReturn(this,(VictoryCandlestick.__proto__||Object.getPrototypeOf(VictoryCandlestick)).apply(this,arguments));}_createClass(VictoryCandlestick,[{key:"renderData",value:function renderData( props){var dataComponent=props.dataComponent,labelComponent=props.labelComponent,groupComponent=props.groupComponent; var dataComponents=[]; var labelComponents=[]; for(var index=0,len=this.dataKeys.length;index<len;index++){ var dataProps=this.getComponentProps(dataComponent,"data",index); dataComponents[index]=_react2.default.cloneElement(dataComponent,dataProps); var labelProps=this.getComponentProps(labelComponent,"labels",index); if(labelProps&&labelProps.text!==undefined&&labelProps.text!==null){ labelComponents[index]=_react2.default.cloneElement(labelComponent,labelProps); } } return labelComponents.length>0? _react2.default.cloneElement.apply(_react2.default,[groupComponent,{}].concat(dataComponents,labelComponents)): dataComponents; }},{key:"renderContainer",value:function renderContainer( props,group){var containerComponent=props.containerComponent; var parentProps=this.getComponentProps(containerComponent,"parent","parent"); return _react2.default.cloneElement(containerComponent,parentProps,group); }},{key:"renderGroup",value:function renderGroup( children,style){ return _react2.default.cloneElement( this.props.groupComponent, {role:"presentation",style:style}, children); }},{key:"shouldAnimate",value:function shouldAnimate() { return!!this.props.animate; }},{key:"render",value:function render() { var props=_victoryCore.Helpers.modifyProps(this.props,fallbackProps,"candlestick");var animate=props.animate,standalone=props.standalone,style=props.style,theme=props.theme; if(this.shouldAnimate()){ var whitelist=[ "data","domain","height","padding","samples","size", "style","width","x","y"]; return( _react2.default.createElement(_victoryCore.VictoryTransition,{animate:animate,animationWhitelist:whitelist}, _react2.default.createElement(this.constructor,props))); } var styleObject=theme&&theme.candlestick&&theme.candlestick.style? theme.candlestick.style:{}; var baseStyle=_victoryCore.Helpers.getStyles(style,styleObject,"auto","100%"); var group=this.renderGroup(this.renderData(props),baseStyle.parent); return standalone?this.renderContainer(props,group):group; }}]);return VictoryCandlestick;}(_react2.default.Component);VictoryCandlestick.displayName="VictoryCandlestick";VictoryCandlestick.role="candlestick";VictoryCandlestick.defaultTransitions=_victoryCore.DefaultTransitions.discreteTransitions();VictoryCandlestick.propTypes={animate:_react.PropTypes.object,candleColors:_react.PropTypes.shape({positive:_react.PropTypes.string,negative:_react.PropTypes.string}),categories:_react.PropTypes.oneOfType([_react.PropTypes.arrayOf(_react.PropTypes.string),_react.PropTypes.shape({x:_react.PropTypes.arrayOf(_react.PropTypes.string),y:_react.PropTypes.arrayOf(_react.PropTypes.string)})]),close:_react.PropTypes.oneOfType([_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string,_react.PropTypes.arrayOf(_react.PropTypes.string)]),containerComponent:_react.PropTypes.element,data:_react.PropTypes.array,domainPadding:_react.PropTypes.oneOfType([_react.PropTypes.shape({x:_react.PropTypes.oneOfType([_react.PropTypes.number,_victoryCore.PropTypes.domain]),y:_react.PropTypes.oneOfType([_react.PropTypes.number,_victoryCore.PropTypes.domain])}),_react.PropTypes.number]),dataComponent:_react.PropTypes.element,domain:_react.PropTypes.oneOfType([_victoryCore.PropTypes.domain,_react.PropTypes.shape({x:_victoryCore.PropTypes.domain,y:_victoryCore.PropTypes.domain})]),events:_react.PropTypes.arrayOf(_react.PropTypes.shape({target:_react.PropTypes.oneOf(["data","labels","parent"]),eventKey:_react.PropTypes.oneOfType([_react.PropTypes.array,_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string]),eventHandlers:_react.PropTypes.object})),eventKey:_react.PropTypes.oneOfType([_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string]),groupComponent:_react.PropTypes.element,height:_victoryCore.PropTypes.nonNegative,high:_react.PropTypes.oneOfType([_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string,_react.PropTypes.arrayOf(_react.PropTypes.string)]),labels:_react.PropTypes.oneOfType([_react.PropTypes.func,_react.PropTypes.array]),labelComponent:_react.PropTypes.element,low:_react.PropTypes.oneOfType([_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string,_react.PropTypes.arrayOf(_react.PropTypes.string)]),name:_react.PropTypes.string,open:_react.PropTypes.oneOfType([_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string,_react.PropTypes.arrayOf(_react.PropTypes.string)]),padding:_react.PropTypes.oneOfType([_react.PropTypes.number,_react.PropTypes.shape({top:_react.PropTypes.number,bottom:_react.PropTypes.number,left:_react.PropTypes.number,right:_react.PropTypes.number})]),samples:_victoryCore.PropTypes.nonNegative,scale:_react.PropTypes.oneOfType([_victoryCore.PropTypes.scale,_react.PropTypes.shape({x:_victoryCore.PropTypes.scale,y:_victoryCore.PropTypes.scale})]),sharedEvents:_react.PropTypes.shape({events:_react.PropTypes.array,getEventState:_react.PropTypes.func}),size:_react.PropTypes.oneOfType([_victoryCore.PropTypes.nonNegative,_react.PropTypes.func]),standalone:_react.PropTypes.bool,style:_react.PropTypes.shape({parent:_react.PropTypes.object,data:_react.PropTypes.object,labels:_react.PropTypes.object}),theme:_react.PropTypes.object,width:_victoryCore.PropTypes.nonNegative,x:_react.PropTypes.oneOfType([_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string,_react.PropTypes.arrayOf(_react.PropTypes.string)])};VictoryCandlestick.defaultProps={samples:50,scale:"linear",data:defaultData,standalone:true,dataComponent:_react2.default.createElement(_victoryCore.Candle,null),labelComponent:_react2.default.createElement(_victoryCore.VictoryLabel,null),containerComponent:_react2.default.createElement(_victoryCore.VictoryContainer,null),groupComponent:_react2.default.createElement("g",null),theme:_victoryCore.VictoryTheme.grayscale};VictoryCandlestick.getDomain=_helperMethods2.default.getDomain.bind(_helperMethods2.default);VictoryCandlestick.getData=_helperMethods2.default.getData.bind(_helperMethods2.default);VictoryCandlestick.getBaseProps=(0,_partialRight3.default)(_helperMethods2.default.getBaseProps.bind(_helperMethods2.default),fallbackProps);VictoryCandlestick.expectedComponents=["dataComponent","labelComponent","groupComponent","containerComponent"];exports.default= (0,_victoryCore.addEvents)(VictoryCandlestick);