UNPKG

victory-chart

Version:
99 lines (82 loc) 4.36 kB
Object.defineProperty(exports,"__esModule",{value:true});var _without2=require("lodash/without");var _without3=_interopRequireDefault(_without2);var _defaults2=require("lodash/defaults");var _defaults3=_interopRequireDefault(_defaults2);var _omit2=require("lodash/omit");var _omit3=_interopRequireDefault(_omit2);var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2); var _victoryCore=require("victory-core"); var _d3Voronoi=require("d3-voronoi");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,"tooltip");var _getCalculatedValues= this.getCalculatedValues(props),data=_getCalculatedValues.data,style=_getCalculatedValues.style,scale=_getCalculatedValues.scale,polygons=_getCalculatedValues.polygons; var childProps={parent:{ style:style.parent,scale:scale,data:data,height:props.height,width:props.width}}; for(var index=0,len=data.length;index<len;index++){ var datum=data[index]; var polygon=(0,_without3.default)(polygons[index],"data"); var eventKey=datum.eventKey; var x=scale.x(datum.x1||datum.x); var y=scale.y(datum.y1||datum.y); var dataProps={ x:x,y:y,datum:datum,data:data,index:index,scale:scale,polygon:polygon, size:props.size, style:this.getDataStyles(datum,style.data)}; childProps[eventKey]={data:dataProps}; var text=this.getLabelText(props,datum,index); if(text!==undefined&&text!==null||props.events||props.sharedEvents){ childProps[eventKey].labels=(0,_assign3.default)( {}, this.getFlyoutProps(dataProps,text,style)); } } return childProps; }, getFlyoutProps:function getFlyoutProps(dataProps,text,style){var x=dataProps.x,y=dataProps.y,index=dataProps.index,scale=dataProps.scale,datum=dataProps.datum,data=dataProps.data; return{ x:x,y:y,text:text,index:index,scale:scale,datum:datum,data:data, flyoutStyle:_victoryCore.Helpers.evaluateStyle(style.flyout,datum), style:_victoryCore.Helpers.evaluateStyle(style.labels,datum)}; }, getStyles:function getStyles(style,styleObject){ style=style||{}; styleObject=styleObject||{}; var parentStyleProps={height:"auto",width:"100%"}; return{ parent:(0,_defaults3.default)(parentStyleProps,style.parent,styleObject.parent), data:(0,_defaults3.default)({},style.data,styleObject.data), labels:(0,_defaults3.default)({},style.labels,styleObject.labels), flyout:(0,_defaults3.default)({},style.flyout,styleObject.flyout)}; }, getCalculatedValues:function getCalculatedValues(props){ var defaultStyles=props.theme&&props.theme.tooltip&&props.theme.tooltip.style? props.theme.tooltip.style:{}; var style=this.getStyles(props.style,defaultStyles,"auto","100%"); var data=_victoryCore.Data.getData(props); var range={ x:_victoryCore.Helpers.getRange(props,"x"), y:_victoryCore.Helpers.getRange(props,"y")}; var domain={ x:_victoryCore.Domain.getDomain(props,"x"), y:_victoryCore.Domain.getDomain(props,"y")}; var scale={ x:_victoryCore.Scale.getBaseScale(props,"x").domain(domain.x).range(range.x), y:_victoryCore.Scale.getBaseScale(props,"y").domain(domain.y).range(range.y)}; var polygons=props.polygons||this.getPolygons(range,scale,data); return{data:data,scale:scale,style:style,polygons:polygons}; }, getPolygons:function getPolygons(range,scale,data){ var minRange=[Math.min.apply(Math,_toConsumableArray(range.x)),Math.min.apply(Math,_toConsumableArray(range.y))]; var maxRange=[Math.max.apply(Math,_toConsumableArray(range.x)),Math.max.apply(Math,_toConsumableArray(range.y))]; var voronoi=(0,_d3Voronoi.voronoi)(). x(function(d){return scale.x(d.x1||d.x);}). y(function(d){return scale.y(d.y1||d.y);}). extent([minRange,maxRange]); return voronoi.polygons(data); }, getDataStyles:function getDataStyles(datum,style){ var stylesFromData=(0,_omit3.default)(datum,[ "x","y","name","label"]); var baseDataStyle=(0,_defaults3.default)({},stylesFromData,style); return _victoryCore.Helpers.evaluateStyle(baseDataStyle,datum); }, getLabelText:function getLabelText(props,datum,index){ return datum.label||(Array.isArray(props.labels)? props.labels[index]:_victoryCore.Helpers.evaluateProp(props.labels,datum)); }};