UNPKG

victory-chart

Version:
98 lines (77 loc) 3.58 kB
Object.defineProperty(exports,"__esModule",{value:true});var _last2=require("lodash/last");var _last3=_interopRequireDefault(_last2);var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2); var _victoryCore=require("victory-core");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i];}return arr2;}else{return Array.from(arr);}}exports.default= { getBaseProps:function getBaseProps(props,fallbackProps){ props=_victoryCore.Helpers.modifyProps(props,fallbackProps,"area");var _getCalculatedValues= this.getCalculatedValues(props,fallbackProps),scale=_getCalculatedValues.scale,style=_getCalculatedValues.style,data=_getCalculatedValues.data;var _props= props,interpolation=_props.interpolation,label=_props.label,width=_props.width,height=_props.height,groupComponent=_props.groupComponent; var dataProps={ groupComponent:groupComponent, key:"area", data:data, scale:scale, interpolation:_victoryCore.Helpers.evaluateProp(interpolation,data), style:_victoryCore.Helpers.evaluateStyle(style.data,data)}; var baseProps={ parent:{style:style.parent,width:width,height:height,scale:scale,data:data}, all:{ data:dataProps}}; var text=_victoryCore.Helpers.evaluateProp(label,data); if(text!==undefined&&text!==null||props.events||props.sharedEvents){ baseProps.all.labels=this.getLabelProps(dataProps,text,style); } return baseProps; }, getLabelProps:function getLabelProps(dataProps,text,calculatedStyle){var data=dataProps.data,scale=dataProps.scale; var lastData=(0,_last3.default)(data); var labelStyle=_victoryCore.Helpers.evaluateStyle(calculatedStyle.labels,data)||{}; var labelPadding=labelStyle.padding||0; return{ key:"area-label", x:lastData?scale.x(lastData.x)+labelPadding:0, y:lastData?scale.y(lastData.y1):0, y0:lastData?scale.y(lastData.y0):0, style:labelStyle, textAnchor:labelStyle.textAnchor||"start", verticalAnchor:labelStyle.verticalAnchor||"middle", angle:labelStyle.angle, data:data, scale:scale, text:text}; }, getScale:function getScale(props,fallbackProps){ props=_victoryCore.Helpers.modifyProps(props,fallbackProps,"area"); var range={ x:_victoryCore.Helpers.getRange(props,"x"), y:_victoryCore.Helpers.getRange(props,"y")}; var domain={ x:_victoryCore.Domain.getDomainWithZero(props,"x"), y:_victoryCore.Domain.getDomainWithZero(props,"y")}; return{ x:_victoryCore.Scale.getBaseScale(props,"x").domain(domain.x).range(range.x), y:_victoryCore.Scale.getBaseScale(props,"y").domain(domain.y).range(range.y)}; }, getCalculatedValues:function getCalculatedValues(props){var theme=props.theme; var defaultStyles=theme&&theme.area&&theme.area.style?theme.area.style:{}; var style=_victoryCore.Helpers.getStyles(props.style,defaultStyles,"auto","100%"); var scale=this.getScale(props); var data=this.getDataWithBaseline(props,scale); return{style:style,data:data,scale:scale}; }, getDataWithBaseline:function getDataWithBaseline(props,scale){ var data=_victoryCore.Data.getData(props); if(data.length<2){ _victoryCore.Log.warn("Area requires at least two data points."); data=[]; } var defaultMin=_victoryCore.Scale.getType(scale.y)==="log"?1/Number.MAX_SAFE_INTEGER:0; var domainY=scale.y.domain(); var minY=Math.min.apply(Math,_toConsumableArray(domainY))>0?Math.min.apply(Math,_toConsumableArray(domainY)):defaultMin; return data.map(function(datum){ var y1=datum.y1||datum.y; var y0=datum.y0||minY; return(0,_assign3.default)({},datum,{y0:y0,y1:y1}); }); }};