victory-chart
Version:
Chart Component for Victory
173 lines (53 loc) • 8 kB
JavaScript
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 _helperMethods=require("./helper-methods");var _helperMethods2=_interopRequireDefault(_helperMethods);
var _victoryCore=require("victory-core");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,
interpolation:"linear"};var
VictoryArea=function(_React$Component){_inherits(VictoryArea,_React$Component);function VictoryArea(){_classCallCheck(this,VictoryArea);return _possibleConstructorReturn(this,(VictoryArea.__proto__||Object.getPrototypeOf(VictoryArea)).apply(this,arguments));}_createClass(VictoryArea,[{key:"renderData",value:function renderData(
props){var
dataComponent=props.dataComponent,labelComponent=props.labelComponent,groupComponent=props.groupComponent;
var dataProps=this.getComponentProps(dataComponent,"data","all");
var areaComponent=_react2.default.cloneElement(dataComponent,dataProps);
var labelProps=this.getComponentProps(labelComponent,"labels","all");
if(labelProps&&labelProps.text!==undefined&&labelProps.text!==null){
var areaLabel=_react2.default.cloneElement(labelComponent,labelProps);
return _react2.default.cloneElement(groupComponent,{},areaComponent,areaLabel);
}
return areaComponent;
}},{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
role=this.constructor.role;
var props=_victoryCore.Helpers.modifyProps(this.props,fallbackProps,role);var
animate=props.animate,style=props.style,standalone=props.standalone,theme=props.theme;
if(this.shouldAnimate()){
var whitelist=[
"data","domain","height","padding","style","width",
"x","y"];
return(
_react2.default.createElement(_victoryCore.VictoryTransition,{animate:animate,animationWhitelist:whitelist},
_react2.default.createElement(this.constructor,props)));
}
var styleObject=theme&&theme.area?theme.area.style:{};
var baseStyles=_victoryCore.Helpers.getStyles(style,styleObject,"auto","100%");
var group=this.renderGroup(this.renderData(props),baseStyles.parent);
return standalone?this.renderContainer(props,group):group;
}}]);return VictoryArea;}(_react2.default.Component);VictoryArea.propTypes={animate:_react.PropTypes.object,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)})]),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.oneOf(["all"]),eventHandlers:_react.PropTypes.object})),groupComponent:_react.PropTypes.element,height:_victoryCore.PropTypes.nonNegative,interpolation:_react.PropTypes.oneOf(["basis","bundle","cardinal","catmullRom","linear","monotoneX","monotoneY","natural","radial","step","stepAfter","stepBefore"]),label:_react.PropTypes.string,labelComponent:_react.PropTypes.element,name:_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}),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)]),y:_react.PropTypes.oneOfType([_react.PropTypes.func,_victoryCore.PropTypes.allOfType([_victoryCore.PropTypes.integer,_victoryCore.PropTypes.nonNegative]),_react.PropTypes.string,_react.PropTypes.arrayOf(_react.PropTypes.string)])};VictoryArea.defaultProps={dataComponent:_react2.default.createElement(_victoryCore.Area,null),labelComponent:_react2.default.createElement(_victoryCore.VictoryLabel,null),scale:"linear",samples:50,standalone:true,containerComponent:_react2.default.createElement(_victoryCore.VictoryContainer,null),groupComponent:_react2.default.createElement(_victoryCore.VictoryClipContainer,null),theme:_victoryCore.VictoryTheme.grayscale};VictoryArea.displayName="VictoryArea";VictoryArea.role="area";VictoryArea.continuous=true;VictoryArea.defaultTransitions=_victoryCore.DefaultTransitions.continuousTransitions();VictoryArea.getDomain=_victoryCore.Domain.getDomainWithZero.bind(_victoryCore.Domain);VictoryArea.getData=_victoryCore.Data.getData.bind(_victoryCore.Data);VictoryArea.getBaseProps=(0,_partialRight3.default)(_helperMethods2.default.getBaseProps.bind(_helperMethods2.default),fallbackProps);VictoryArea.getScale=(0,_partialRight3.default)(_helperMethods2.default.getScale.bind(_helperMethods2.default),fallbackProps);VictoryArea.expectedComponents=["dataComponent","labelComponent","groupComponent","containerComponent"];exports.default=
(0,_victoryCore.addEvents)(VictoryArea);