{"version":3,"sources":["webpack:///./node_modules/reaviz/dist/index.cjs.js"],"names":["_toConsumableArray","_slicedToArray","_defineProperty","_classCallCheck","_createClass","_inherits","_possibleConstructorReturn","_getPrototypeOf","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","from","test","_unsupportedIterableToArray","length","i","F","s","done","value","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e3","return","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_isNativeReflectConstruct","result","Super","NewTarget","this","arguments","apply","defineProperty","exports","React","rdk","ellipsize","d3Array","calculateSize","d3Scale","bind","transformationMatrix","classNames","useDimensions","bigInt","humanFormat","d3Shape","chroma","realayers","memoize","isEqual","framerMotion","d3Interpolate","d3Geo","d3Sankey","CountUp","venn_js","_interopDefaultLegacy","React__default","ellipsize__default","calculateSize__default","bind__default","classNames__default","useDimensions__default","bigInt__default","humanFormat__default","chroma__default","memoize__default","isEqual__default","CountUp__default","LinearAxisTickLabel","_React$Component","_super","key","_this$props","props","align","half","line","size","position","_ref","_this$props2","padding","rotation","orientation","adjustedPadding","fromAxis","alongAxis","spacing","getTickLineSpacing","offset1","getAlign","offset2","horz","_this$props3","angle","transform","textAnchor","alignmentBaseline","concat","_this$props4","fill","text","fullText","fontSize","fontFamily","className","_this$getOffset","getOffset","x","y","textPosition","getTextPosition","createElement","assign","Component","defaultProps","LinearAxisTickLine","_React$PureComponent","_super2","_this$props5","isVertical","tickSize","start","end","x1","x2","y1","y2","_this$props6","strokeColor","strokeWidth","path","positionTick","stroke","PureComponent","locale","window","navigator","languages","userLanguage","language","browserLanguage","options","year","month","day","hour12","formatMatcher","formatValue","undefined","toLocaleDateString","toLocaleString","DURATION_TICK_STEPS","reduceTicks","ticks","maxTicks","reduced","modulus","Math","floor","push","getMaxTicks","dimension","tickWidth","max","getDurationTicks","domain","_step","domainWidth","tickStep","_iterator","numDayTicks","ceil","_getTicks","scale","tickValues","type","interval","calculateDimensions","document","width","height","font","LinearAxisTickSeries","_React$Component2","_super3","bandwidth","offset","round","d","scaledTick","_this$props7","label","getDimension","maxTicksLength","tick","baseWidth","maxBaseWidth","cos","PI","_this$props8","format","tickFormat","v","_this","_this$props9","axis","adjustedScale","getAdjustedScale","getLabelFormat","midpoint","map","getPosition","_this$props10","getTicks","getRotationAngle","Fragment","CloneElement","element","axisLineId","LinearAxisLine","_React$Component3","_super4","_this2","state","id","_this$props11","strokeGradient","_scale$range","range","_scale$range2","range0","range1","LinearAxis","_React$Component4","_super5","_this3","ref","createRef","updateDimensions","prevProps","_this$props12","_this$props13","onDimensionsChange","dims","current","getBoundingClientRect","setState","_this$props14","translateY","translateX","_this$props15","axisLine","tickSeries","_this$getPosition","scaled","roundDomains","LinearXAxisTickLabel","_React$Component5","_super6","LinearXAxisTickLine","_React$Component6","_super7","LinearXAxisTickSeries","_React$Component7","_super8","LinearXAxis","_React$Component8","_super9","LinearYAxisTickLabel","_React$Component9","_super10","LinearYAxisTickLine","_React$Component10","_super11","LinearYAxisTickSeries","_React$Component11","_super12","LinearYAxis","_React$Component12","_super13","isAxisVisible","RadialAxisTickLine","_React$PureComponent2","_super14","_this$props16","innerRadius","outerRadius","style","pointerEvents","RadialAxisTickLabel","_React$PureComponent3","_super15","_this$props17","point","autoRotate","l","r","shouldRotate","_translate","_this$props18","data","lineSize","index","_this$getPosition2","dy","RadialAxisTick","_React$Component13","_super16","_this$props19","RadialAxisTickSeries","_React$Component14","_super17","_this$props20","count","RadialAxisArc","_React$Component15","_super18","_this$props21","strokeDasharray","strokeDash","cx","cy","RadialAxisArcSeries","_React$Component16","_super19","_this$props22","arc","scaleLinear","arcs","RadialAxis","_React$Component17","_super20","_this$props23","xScale","min","scaleBandInvert","paddingOuter","eachBand","_scale$range3","getClosestPoint","pos","attr","invert","bisect","bisector","right","minIndex","before","maxIndex","after","beforeVal","afterVal","prop","_domain","mariemkoInvert","idx","indexOf","getParentSVG","event","node","target","ownerSVGElement","getPositionForTarget","_ref2","clientX","clientY","_target$getBoundingCl","top","left","clientLeft","clientTop","getPointFromMatrix","matrix","parent","_parent$getBoundingCl","applyToPoint","inverse","getLimitMatrix","applyToPoints","constrainMatrix","_getLimitMatrix","_getLimitMatrix2","isZoomLevelGoingOutOfBounds","scaleFactor","a","scaleFactorMin","lessThanScaleFactorMin","b","scaleFactorMax","moreThanScaleFactorMax","toggleTextSelection","allowSelection","forEach","body","Move","_React$Component18","_super21","_this4","started","deltaX","deltaY","prevXPosition","prevYPosition","onMouseMove","preventDefault","stopPropagation","movementX","movementY","checkThreshold","disableText","setCursor","onMoveStart","nativeEvent","rqf","requestAnimationFrame","onMove","onMouseUp","disposeHandlers","onMoveEnd","onMoveCancel","onTouchMove","_this4$getTouchCoords","getTouchCoords","onTouchEnd","cancelAnimationFrame","removeEventListener","shouldDisable","set","cursor","threshold","abs","_event$touches$","touches","_this$props24","preventRightClick","disabled","which","addEventListener","_this5","Children","children","child","cloneElement","onMouseDown","onTouchStart","styleInject","css","insertAt","head","getElementsByTagName","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","BrushHandle","_React$PureComponent4","_super22","_this6","isDragging","onHandleDrag","css$1","BrushSlice","_React$PureComponent5","_super23","_this7","_this$props25","_ref3","_this$props26","onBrushChange","_this$props27","direction","_this$props28","_this$props29","sliceWidth","endSliceWidth","hasNoSlice","opacity","Brush","_React$PureComponent6","_super24","_this8","isSlicing","isPanning","_this$props30","startUpdated","endUpdated","ensurePositionInBounds","_this$getPositionsFor","getPositionsForPanEvent","initial","eventObj","newStart","newEnd","positions","_this9","prev","_this9$getStartEnd","getStartEnd","val","_this10","_this$props31","_this$state","_ref4","onSliceChange","__rest","t","p","hasOwnProperty","getOwnPropertySymbols","propertyIsEnumerable","ChartBrush","_React$Component19","_super25","_this$props32","_this$props33","_a","rest","getBrushOffset","_ref5","xOffset","yOffset","parsedMargins","margins","bottom","parseMargins","marginDims","calculateMarginOffsets","chartWidth","chartHeight","xMargin","yMargin","ChartContainer","center","centerX","centerY","xAxisVisible","yAxisVisible","curId","useId","_React$useState","useState","_React$useState2","xAxisSized","setXAxisSized","_React$useState3","_React$useState4","yAxisSized","setYAxisSized","_React$useState5","_React$useState6","setYOffset","_React$useState7","_React$useState8","setXOffset","_useDimensions__defau","chartSized","useMemo","onUpdateAxes","useCallback","childProps","updateAxes","styleHeight","styleWidth","humanFormatScale","Scale","k","M","B","humanFormatMillionScale","T","bigIntegerToLocaleString","bigInteger","_step2","formattedString","_iterator2","split","reverse","c","normalizeValue","maxBigInt","isInstance","greater","divideBy","divide","toJSNumber","normalizeValueForFormatting","getMaxBigIntegerForNested","series","_step3","maxBigInteger","one","_iterator3","maxBigIntegerForGroup","getMaxBigIntegerForShallow","_step4","_iterator4","buildNestedChartData","_step5","sort","_iterator5","_step6","_iterator6","_loop","nestedPoint","findIndex","getTime","metadata","x0","y0","median","addToChartType","add","valueOf","Error","buildShallowChartData","_step7","binSize","_iterator7","isTuple","k1","k0","v0","v1","xProp","yProp","uniqueBy","_len","accessors","_key","ittr","depth","_step8","_iterator8","acc","includes","transformDataToStack","_step9","_iterator9","_loop2","_step10","category","_iterator10","formattedValues","transformStackToData","stackData","_step11","_iterator11","_step12","_iterator12","_loop3","categoryKey","_point","buildBarStackData","keys","stackFn","stack","stackOffsetExpand","stackOffsetDiverging","buildMarimekkoData","_step13","sums","totalSum","_iterator13","sum","reduce","cur","_step14","_iterator14","_series","_step15","_iterator15","transformDataToStack$1","_step16","_iterator16","_step17","_iterator17","_loop4","transformStackToData$1","_step18","_iterator18","_step19","_iterator19","_point2","buildStackData","normalized","buildWaterfall","_step20","cumulative","_iterator20","Pan","_React$Component20","_super26","_this11","childRef","globalPanning","classList","contains","onPanStart","pan","onPanEnd","onPanCancel","source","passive","onPanMove","_this$props34","constrain","newMatrix","smoothMatrix","translate","shouldConstrain","getTouchPoints","_node$getBoundingClie","_map","touch","_map2","pointA","pointB","distance","sqrt","pow","getDistanceBetweenPoints","getMidpoint","Zoom","_React$Component21","_super27","_this12","onMouseWheel","_this12$props","disableMouseWheel","requireZoomModifier","onZoomEnd","hasModifier","metaKey","ctrlKey","getStep","clearTimeout","timeout","setTimeout","firstTouch","lastDistance","distanceFactor","_this$props35","delta","_this$props36","minZoom","maxZoom","onZoom","outside","_this$props37","css$2","DiscreteLegend","_React$Component22","_super28","_classNames__default$2","_this$props38","entries","entry","css$3","DiscreteLegendSymbol","_React$PureComponent7","_super29","_this$props39","color","background","css$4","DiscreteLegendEntry","_React$Component23","_super30","_classNames__default$3","_this$props40","symbol","onMouseEnter","onMouseLeave","title","onClick","css$5","SequentialLegend","_React$PureComponent8","_super31","_classNames__default$4","_this$props41","colorScheme","colors","join","_d3Array$extent","extent","_d3Array$extent2","gradientDir","container","vertical","horizontal","gradient","css$6","Gridline","_ref6","_ref6$strokeWidth","_ref6$direction","_ref6$strokeColor","coords","GridlineSeries","_React$Component24","_super32","_this$props42","yScale","yAxis","xAxis","yAxisGrid","xAxisGrid","_this$props43","shouldRenderY","renderGroup","shouldRenderX","_this$props44","grid","_this$props45","skipIdx","getSkipIndex","_this$props46","stripe","_this$getGridlines","getGridlines","renderSeries","css$7","css$8","MarkLine","_ref8","pointX","_ref8$strokeWidth","_ref8$strokeColor","vectorEffect","GradientStop","_ref9","_ref9$stopOpacity","stopOpacity","stopColor","Gradient","_ref10","_ref10$direction","_ref10$stops","stops","spreadMethod","stop","RadialGradient","_ref11","_ref11$radius","radius","_ref11$stops","gradientUnits","Mask","_React$PureComponent9","_super33","_this$props47","Stripes","_React$PureComponent10","_super34","_this$props48","patternUnits","patternTransform","css$9","TooltipTemplate","_ref12","isMultiple","role","excessCount","pagedValues","backgroundColor","renderMultiple","ChartTooltip","_a$content","content","_content","Tooltip","TooltipArea","_React$Component25","_super35","_this13","transformData","_this13$props","isHorizontal","_step21","_iterator21","seriesPoint","_step22","_iterator22","_loop5","_step23","_iterator23","_point3","shallowPoint","_this$props49","isRadial","rad","atan2","_this$props50","onValueEnter","placement","transformed","newPlacement","keyScale","valueScale","coord","_getPositionForTarget","getXCoord","newValue","pointY","marginX","marginY","isNaN","prevX","prevY","_target$getBoundingCl2","offsetX","offsetY","sin","visible","onValueLeave","_this$state2","_this$props51","startAngle","endAngle","_this$props52","_this$props53","tooltip","_this$state3","renderRadial","renderLinear","modifiers","reference","getTooltipReference","accessor","fn","vv","getYDomain","_ref13","_ref13$scaled","_ref13$isDiverging","isDiverging","_extent","_extent2","startY","endY","_extent3","_extent4","startY1","endY1","posStart","maxNum","getXDomain","_ref14","_ref14$scaled","_ref14$isDiverging","startX0","endX1","interpolate","curveMonotoneX","curveStep","curveLinear","calculateShowStroke","showLine","getDegrees","radians","functionProps","constructFunctionProps","ZoomPan","_React$Component26","_super36","_this14","zoomRef","panRef","isZooming","identity","onZoomPan","_this$props54","pannable","zoomable","zoomStep","_this$state4","selection","fromObject","userSelect","fromDefinition","tx","ty","sx","sy","getXScale","_ref15","_ref15$isMultiSeries","isMultiSeries","_ref15$isDiverging","scaleTime","rangeRound","scaleBand","nice","getYScale","_ref16","_ref16$roundDomains","_ref16$scaled","_ref16$padding","_ref16$isMultiSeries","_ref16$isDiverging","getRadialYScale","ChartZoomPan","_React$Component27","_super37","_this$props55","axisType","copy","clamp","isZoomed","zoomOffset","_this$props56","_this$getOffset2","DEFAULT_TRANSITION","velocity","damping","MotionPath","custom","transition","useMotionValue","exit","prevPath","spring","useSpring","to","useEffect","interpolator","get","enter","unsub","onChange","_b","enterD","enterRest","exitRest","motion","animate","schemes","cybertron","correctLightness","brewer","_getColor","_Object$assign","attribute","scaleOrdinal","active","rangeHelper","css$a","ScatterPoint","_a$active","_a$tooltip","_a$cursor","_a$size","_a$color","_a$animated","animated","_a$onClick","_onClick","_a$onMouseEnter","_onMouseEnter","_a$onMouseLeave","_onMouseLeave","rectRef","useRef","_React$useState9","_React$useState10","tooltipVisible","setTooltipVisible","extras","renderedSymbol","transitionProps","delay","enterProps","exitProps","_yScale$domain","yStartDomain","g","circle","ScatterSeries","activeIds","_a$point","renderPoint","pointData","pointId","PADDING","clipPath","css$b","ScatterPlot","_React$Component28","_super38","_this15","getData","zoom","zoomPan","zoomControlled","zoomDomain","_this$props57","_this16","preventAnimation","containerProps","_this17","_this$props58","gridlines","brush","secondaryAxis","_this$state5","_this$getScales","getScales","_this18","_this$props59","renderChart","css$c","PointSeries","_ref20","_ref20$show","show","_ref20$point","activeValues","isActive","Area","_ref21","mask","_ref21$gradient","_ref21$interpolation","interpolation","getAreaPath","shallowData","area","curve","item","renderArea","maskPath","areaPath","getAreaEnter","maxY","getAreaExit","Line","_ref22","_ref22$showZeroStroke","showZeroStroke","_ref22$strokeWidth","hasArea","_React__default$defau","_React__default$defau2","pathLength","setPathLength","ghostPathRef","getTotalLength","getLinePath","defined","getCoords","linePath","strokeDashoffset","getLineEnter","getLineExit","initialAreaState","activePoint","AreaSeries","_ref23","_ref23$colorScheme","_ref23$animated","_ref23$interpolation","_ref23$type","_ref23$line","_ref23$area","_ref23$markLine","markLine","_ref23$tooltip","_ref23$symbols","symbols","_React$useState11","_React$useState12","areaState","setAreaState","getColor$1","renderSymbols","activeSymbols","isAnimated","renderMarkLine","renderSingleSeries","renderMultiSeries","nestedData","isMulti","PADDING$1","StackedNormalizedAreaSeries","_React$Component29","_super39","StackedAreaSeries","_React$Component30","_super40","css$d","AreaChart","_React$Component31","_super41","_this19","_this$props60","_this20","_this21","_this$props61","_this$state6","seriesType","_this$getScales2","_this22","_this$props62","StackedAreaChart","_React$Component32","_super42","StackedNormalizedAreaChart","_React$Component33","_super43","Bar","_React$Component34","_super44","_this23","rect","_ref24","_this$props63","getIsVertical","newX","newY","sizeOverride","isCategorical","calc","calculateLinearScalePadding","c0","c1","minSize","minHeight","layout","_this$props64","xScale1","xCoords","getKeyCoords","yCoords","getValueCoords","_yCoords","_xCoords","_this$props65","barCount","groupIndex","totalSize","multiplier","_this$props66","_this$props67","_this$props68","_this$props69","_this$props70","_this$props71","currentColorShade","_this$props72","rx","ry","getFill","initialExit","getExit","getTransition","attrX","attrY","onMouseClick","_Object$assign2","_this$props73","barIndex","guide","console","error","_valueScale$domain","_valueScale$domain2","attrStart","endPoint","startPoint","_this$props74","activeBrightness","rangeLines","brighten","hex","rangeLineColor","rangeLineColorShade","tooltipData","getTooltipData","barLabel","renderGuideBar","renderBar","BarSeries","_React$Component35","_super45","_this24","_this$props75","xPos","yPos","_this$props76","getIsMulti","_this$props77","bar","barElements","getColor","_this25","barData","_this26","_this$props78","groupData","getTransform","renderBarGroup","groupPadding","followCursor","RangeLines","_React$Component36","_super46","rangeLineHeight","_this$props79","isTop","_this$props80","minX","_this$props81","_this$props82","_this$props83","getLineHeight","getEnter","_this$getHeightWidth","getHeightWidth","getDelay","StackedBarSeries","_React$Component37","_super47","StackedNormalizedBarSeries","_React$Component38","_super48","MarimekkoBarSeries","_React$Component39","_super49","BarLabel","_React$PureComponent11","_super50","_this$props84","_this$props85","_this$props86","_this$props87","HistogramBarSeries","_React$Component40","_super51","css$e","BarChart","_React$Component41","_super52","_this$props88","_series$props","isMarimekko","isGrouped","isStacked","distroType","_this$getMultiGroupSc","getMultiGroupScales","groupScale","_this$getMarimekkoGro","getMarimekkoGroupScales","_keyScale","getKeyScale","getValueScale","_this$getMultiGroupSc2","_keyScale2","_this$props89","getMarimekkoScale","_ref17","xMultiplier","getXRange","arg","_getXRange","found","_getXRange2","getMarimekkoGroupScale","_series$props2","_ref18","_ref18$direction","paddingInner","getGroupScale","_ref19","_ref19$prop","getInnerScale","getIsDiverging","_this27","_this$props90","_this$getScalesAndDat","getScalesAndData","getKeyAxis","_this28","_this$props91","barChart","StackedBarChart","_a$series2","css$f","HiveNode","_ref25","onMouseOver","onMouseOut","css$g","HiveAxis","_ref26","_radius$range","_radius$range2","axisStart","axisEnd","axisLength","css$h","HiveLink","_ref27","link","prepareData","hive","_this29","startRadius","endRadius","arcOffset","a1","a2","r0","r1","method","thiz","hiveLayout","hiveAngle","hiveRadius","_React$useMemo","css$i","HiveLabel","_ref28","res","css$j","HiveTooltip","_ref29","nodes","filter","LineSeries","_React$Component42","_super53","LineChart","_React$Component43","_super54","css$k","PieArc","_ref40","_ref40$cursor","_ref40$animated","_ref40$disabled","_ref40$onClick","_onClick2","_ref40$onMouseEnter","_onMouseEnter2","_ref40$onMouseLeave","_onMouseLeave2","_ref40$tooltip","arcRef","_useInterpolate","_ref39","prevEnter","previousEnter","useInterpolate","_React$useState23","_React$useState24","setActive","PieArcLabel","_React$PureComponent12","_super55","_ref45","_this$props92","centroid","lineStroke","fontFill","_position","posX","posY","minRadius","innerPoint","breakPoint","_ref41","_ref42","_ref43","startX","_ref44","endX","sign","maxScale","_scale","_minScale","findBreakPoint","duration","shapeRendering","points","midAngle","PieArcSeries","_React$Component44","_super56","_this30","calculateLabelPositions","minDistance","cornerRadius","padAngle","padRadius","outerArcRadius","outerArc","shouldDisplayLabel","_positions$i","aPosX","aPosY","j","_positions$j","bPosX","bPosY","overlap","_this$props93","doughnut","arcWidth","minDimension","labelWidth","arcData","displayAllLabels","_this31","newOuter","calculateOuterRadius","_this$props94","explode","maxVal","_this32","_this33","_this$props95","_this$calculateRadius","calculateRadius","innerArc","JUSTIFICATION","justify","sankeyJustify","sankeyCenter","sankeyLeft","sankeyRight","Sankey","_React$Component45","_super57","_this34","activeNodes","activeLinks","_this$props96","sourceLinks","sourceLink","sourceLinkTarget","targetLinks","targetLink","targetLinkSource","computedNode","some","onNodeActive","onInactive","_this35","nodeMap","Map","aX0","aY0","bX0","bY0","renderNode","computedLink","chartId","_this$props97","links","onLinkActive","_this36","_this$props98","justification","nodeWidth","nodePadding","nodesCopy","getNodeColor","linksCopy","_sankeyChart","sankey","nodeAlign","nodeId","sankeyChart","renderLink","renderNodes","_this37","_this$props99","css$l","SankeyLabel","_React$Component46","_super58","_this$props100","nodePositions","showRightSide","location","css$m","SankeyLink","_React$Component47","_super59","_this38","sankeyLinkHorizontal","getLink","_this$props101","_this$props102","hovered","_this$props103","getStroke","strokeOpacity","_this$props104","_this$props105","linkSource","linkTarget","renderTooltipContent","css$n","SankeyNode","_React$Component48","_super60","_this39","_this$props106","_this$props107","nodeHeight","fillOpacity","_this$props108","_this$props109","showLabel","getNode","SparklineChart","_React$Component49","_super61","AreaSparklineChart","_React$Component50","_super62","BarSparklineChart","_React$Component51","_super63","RadialArea","_ref48","_ref48$gradient","getPath","curveCardinalClosed","curveLinearClosed","radialArea","dd","_","radialFn","_yScale$domain3","yStart","RadialLine","_ref49","_ref49$strokeWidth","_ref49$animated","preData","radialLine","_yScale$domain5","css$o","RadialScatterPoint","_React$Component52","_super64","_this40","_this$props110","_this$props111","_this$props112","_this$props113","_path$slice$slice$spl","_path$slice$slice$spl2","parseFloat","_this$props114","_this$props115","getTranslate","sizeVal","_yScale$domain7","exitTransform","RadialScatterSeries","_React$Component53","_super65","_this41","_ref50","dataId","_this$props116","warn","_this42","RadialScatterPlot","_React$Component54","_super66","_this43","yDomain","xDomain","_this$props117","_this$getScales3","_this$props118","RadialPointSeries","_ref51","_ref51$show","_ref51$point","isVisible","RadialAreaSeries","_React$Component55","_super67","_this44","_this$props119","_this$props120","_this$props121","_this$props122","_this$props123","renderLine","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","tan","acos","t01","t21","a0","ccw","dx","cw","da","w","h","MotionBar","RadialGuideBar","_ref53","_ref53$fill","_ref53$opacity","variants","hidden","RadialBar","_React$Component56","_super68","_this$props124","_this$props125","_this$props126","_this$props127","_this$props128","curved","arcFn","_startAngle","_endAngle","innerAngleDistance","halfAngleDistanceDelta","pathFn","_this$props129","_this$props130","_yScale$domain9","_yScale$domain10","yEnd","guidePath","getArc","_this$props131","RadialBarSeries","_React$Component57","_super69","_this45","_this$props132","_this$props133","RadialBarChart","_React$Component58","_super70","_this46","_this$props134","_this$getScales4","_this47","_this$props135","RadialGaugeArc","_ref54","_ref54$cornerRadius","_ref54$padAngle","_ref54$padRadius","_ref54$color","_ref54$animated","_ref54$disabled","_ref54$onClick","_ref54$onMouseEnter","_ref54$onMouseLeave","_ref54$tooltip","arcGenerator","css$p","RadialGaugeLabel","_React$PureComponent13","_super71","_this$props136","_onClick3","css$q","RadialGaugeValueLabel","_React$PureComponent14","_super72","_this$props137","separator","_ref55","countUpRef","RadialGaugeSeries","_a$arcWidth","_a$outerArc","_a$innerArc","_a$label","_a$valueLabel","valueLabel","_a$colorScheme","_a$padding","_a$minGaugeWidth","minGaugeWidth","_getWidths","rows","columns","getWidths","dataEndAngle","labelOffset","renderGauge","css$r","StackedRadialGaugeLabel","_ref56","_ref56$yOffset","css$s","modifiers$1","HeatmapCell","_a$cursor2","_a$tooltip2","_a$onClick2","_a$onMouseEnter2","_a$onMouseLeave2","cellIndex","cellCount","_React$useState25","_React$useState26","isTransparent","HeatmapSeries","_React$Component59","_super73","_this48","emptyColor","valueDomain","scaleQuantile","_ref59","row","cell","rowIndex","_this$props138","cellElement","_this49","_this$props139","renderCell","base","Heatmap","_ref60","_ref60$data","_ref60$margins","_ref60$series","_ref60$yAxis","_ref60$xAxis","getScalesData","_getScalesData","scalesData","addWeeksToDate","date","weeks","setDate","getDate","getStartOfDay","setHours","weekDays","UTC","weekday","buildDataScales","rawData","view","startDate","getFullYear","getMonth","xDomainRange","dates","firstDayOfStart","getDay","curDate","num","getNewDayFromDay","week","dayValue","find","xAxisLabelFormat","LinearGaugeBar","LinearGaugeOuterBar","outerBar","LinearGaugeSeries","LinearGauge","_React$Component60","_super74","minValue","maxValue","_ref61","_this$props140","transformedData","_this$getScales5","_this50","_this$props141","VennArc","_ref63","_ref63$active","_ref63$inactiveStyle","inactiveStyle","_ref63$activeStyle","activeStyle","_ref63$initialStyle","initialStyle","_ref63$strokeWidth","_ref63$gradient","_ref63$tooltip","_ref63$onClick","_onClick4","_ref63$onMouseEnter","_onMouseEnter3","_ref63$onMouseLeave","_onMouseLeave3","_React$useState27","_React$useState28","internalActive","setInternalActive","_useInterpolate$","_ref62","useInterpolate$1","currentStyle","arcFill","sets","VennLabel","_ref65","_c","_ref65$labelType","labelType","_ref65$showAll","showAll","_ref65$wrap","wrap","_ref65$animated","_ref65$fill","_ref65$fontSize","_ref65$fontFamily","large","_ref64","circles","_step26","words","curText","lineNum","_iterator26","word","wordWidth","dominantBaseline","baselineShift","wrapText","VennOuterLabel","_ref66","_ref66$animated","_ref66$fill","_ref66$fontSize","_ref66$fontFamily","isElement","isValidElement","showIcon","icon","verticalAlign","getSafeKey","replace","VennSeries","_ref67","selections","_ref67$animated","_ref67$disabled","_ref67$colorScheme","_ref67$outerLabel","outerLabel","_ref67$arc","_ref67$label","_React$useState29","_React$useState30","actives","setActives","_React$useState31","_React$useState32","setHovered","onActivate","renderArc","safeKey","isSelected","isHovered","arcStroke","darken","topArcs","xlinkHref","shapes","intersections","bb","mode","sweep","isEllipse","buildData","array","uniqueSets","uniqueSetKeys","u","_e1","_e2","limit","diff","keyedData","uniqueCount","combo","lookup","starEulerLayout","_ref68","box","shape","mx","my","shapeSets","refs","rot","buildLayout","CalendarHeatmap","_a$view","_a$series5","dataDomains","domainData","xTickValues","yAxisLabelFormat","GridStripe","_ref7","_ref7$fill","stripeFill","dim","GuideBar","_a$fill","_a$opacity","other","HistogramBarChart","_a$series4","HivePlot","_ref30","_ref30$axis","_ref30$nodes","_ref30$links","_ref30$disabled","_ref30$activeIds","_ref30$label","_ref30$innerRadius","_ref30$onNodeClick","onNodeClick","_ref30$onNodeMouseOve","onNodeMouseOver","_ref30$onLinkMouseOve","onLinkMouseOver","_ref30$onNodeMouseOut","onNodeMouseOut","_ref30$onLinkMouseOut","onLinkMouseOut","_ref30$tooltip","formatter","_ref30$colorScheme","_React$useState13","_React$useState14","tooltipReference","setTooltipReference","_React$useState15","_React$useState16","nodeTooltipData","setNodeTooltipData","_React$useState17","_React$useState18","linkTooltipData","setLinkTooltipData","_React$useState19","_React$useState20","onNodeMouseOverLocal","_step24","activeNodeIndex","_iterator24","accumulator","getLinksForNode","activateAdjacentLinks","childLink","activateLink","activeLinkIndex","activeLinksMap","_step25","_iterator25","activeLink","onLinkMouseOverLocal","resetActive","onNodeMouseOutLocal","onLinkMouseOutLocal","onNodeClickLocal","_ref31","scalePoint","axisColor","domainColor","renderAxis","_ref32","nodeOrLink","renderLinks","_ref33","_ref34","renderTooltip","_ref35","containerHeight","containerWidth","_ref36","markers","_ref36$fill","getProjection","_ref37","geoMercator","fitSize","renderMarker","marker","projection","coordinates","renderCountry","geoPath","features","MapMarker","_ref38","_ref38$size","_ref38$onClick","_React$useState21","_React$useState22","MarimekkoChart","_a$series","_a$xAxis","_a$yAxis","PieChart","_ref46","_ref46$displayAllLabe","_ref46$data","_ref46$margins","_ref46$series","pieLayout","pie","Number","_ref47","RadialAreaChart","_ref52","_ref52$innerRadius","_ref52$series","_ref52$axis","_ref52$margins","_xDomain","_getScales","RadialGauge","_ref58","_ref58$minValue","_ref58$maxValue","_ref58$startAngle","_ref58$endAngle","_ref58$series","SonarChart","StackedNormalizedBarChart","_a$series3","_a$yAxis2","StackedRadialGaugeSeries","_ref57","_ref57$outerArc","_ref57$innerArc","_ref57$label","_ref57$colorScheme","_ref57$fillFactor","fillFactor","_ref57$arcPadding","arcPadding","rAxis","renderStackedGauges","VennDiagram","_ref69","_ref69$type","_ref69$series","layoutData","distinct","buildBins","thresholds","histogram","bin","humanFormatBigInteger"],"mappings":"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JppC,UAAW,GACXmB,KAAM,CACJO,GAAI,EACJC,EAAG,KAELnC,MAAO,MACP62D,cAAe,OACd,CACDtnD,IAAK,KACLC,IAAK,MACLm6B,GAAI,IACJC,GAAI,EACJppC,UAAW,GACXmB,KAAM,CACJO,GAAI,IACJC,GAAI,KAENnC,MAAO,MACP62D,cAAe,WAgef8B,cA9doB,CAAC,CACrBnE,KAAM,CAAC,GACPtxD,GAAI,EACJE,IAAK,KACL2M,KAAM,CAAC,CACL5F,IAAK,EACL0uD,KAAM,IACN11D,GAAI,MACJE,IAAK,MACLy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,GAAI,MACJE,IAAK,MACLiyD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,GAAI,EACJE,IAAK,KACLiyD,OAAO,IAET3zD,KAAM,CACJO,EAAG,MACHC,GAAI,QAEL,CACDqyD,KAAM,CAAC,GACPtxD,GAAI,MACJE,IAAK,MACL2M,KAAM,CAAC,CACL5F,IAAK,EACL0uD,KAAM,IACN11D,GAAI,EACJE,GAAI,MACJy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,GAAI,MACJE,GAAI,OACH,CACD8G,IAAK,EACL0uD,KAAM,IACN11D,GAAI,MACJE,IAAK,MACJ,CACD8G,IAAK,EACL0uD,KAAM,IACN11D,GAAI,MACJE,IAAK,QAEP1B,KAAM,CACJO,EAAG,MACHC,GAAI,QAEL,CACDqyD,KAAM,CAAC,GACPtxD,GAAI,EACJE,GAAI,MACJ2M,KAAM,CAAC,CACL5F,IAAK,EACL0uD,KAAM,IACN11D,IAAK,MACLE,IAAK,MACLy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,IAAK,MACLE,IAAK,MACJ,CACD8G,IAAK,EACL0uD,KAAM,IACN11D,IAAK,MACLE,GAAI,OACH,CACD8G,IAAK,EACL0uD,KAAM,IACN11D,GAAI,EACJE,GAAI,QAEN1B,KAAM,CACJO,GAAI,MACJC,GAAI,QAEL,CACDqyD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EACL0uD,KAAM,IACN11D,GAAI,EACJE,GAAI,MACJy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,GAAI,KACJE,GAAI,MACJy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,GAAI,MACJE,GAAI,MACJy1D,OAAO,EACPxD,OAAO,IAET3zD,KAAM,CACJO,EAAG,KACHC,EAAG,OAEJ,CACDqyD,KAAM,CAAC,EAAG,EAAG,EAAG,GAChBtxD,GAAI,EACJE,GAAI,KACJ2M,KAAM,CAAC,CACL5F,IAAK,EACL0uD,KAAM,IACN11D,GAAI,KACJE,GAAI,MACJy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,GAAI,EACJE,GAAI,MACJy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,IAAK,KACLE,GAAI,MACJy1D,OAAO,EACPxD,OAAO,GACN,CACDnrD,IAAK,EACL0uD,KAAM,IACN11D,GAAI,EACJE,GAAI,KACJy1D,OAAO,IAETn3D,KAAM,CACJO,EAAG,EACHC,EAAG,QAYLy2D,GATS,CACT12D,GAAI,IACJC,GAAI,EACJuE,MAAO,GACPC,OAAQ,KAykCE,CACV6tD,KAnkCW,CAAC,CACZjlD,GAAI,GACJC,IAAK,EACLm6B,GAAI,IACJC,GAAI,EACJppC,SAAU,EACVmB,KAAM,CACJO,EAAG,KACHC,GAAI,GAENy0D,KAAM,CACJ10D,EAAG,EACHC,GAAI,KAENnC,MAAO,QACP62D,cAAe,UACd,CACDtnD,GAAI,MACJC,GAAI,KACJm6B,GAAI,IACJC,GAAI,EACJppC,SAAU,GACVmB,KAAM,CACJO,EAAG,IACHC,EAAG,KAELy0D,KAAM,CACJ10D,EAAG,IACHC,GAAI,KAENnC,MAAO,QACP62D,cAAe,OACd,CACDtnD,GAAI,KACJC,GAAI,MACJm6B,GAAI,IACJC,GAAI,EACJppC,SAAU,IACVo2D,KAAM,CACJ10D,EAAG,IACHC,EAAG,GAELR,KAAM,CACJO,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","file":"785ac2fc-e9887035b18b9116b523.js","sourcesContent":["'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nvar _toConsumableArray = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/toConsumableArray\");\n\nvar _slicedToArray = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nvar _defineProperty = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/defineProperty\");\n\nvar _classCallCheck = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _inherits = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/inherits\");\n\nvar _possibleConstructorReturn = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar React = require('react');\n\nvar rdk = require('rdk');\n\nvar ellipsize = require('ellipsize');\n\nvar d3Array = require('d3-array');\n\nvar calculateSize = require('calculate-size');\n\nvar d3Scale = require('d3-scale');\n\nvar bind = require('memoize-bind');\n\nvar transformationMatrix = require('transformation-matrix');\n\nvar classNames = require('classnames');\n\nvar useDimensions = require('react-cool-dimensions');\n\nvar bigInt = require('big-integer');\n\nvar humanFormat = require('human-format');\n\nvar d3Shape = require('d3-shape');\n\nvar chroma = require('chroma-js');\n\nvar realayers = require('realayers');\n\nvar memoize = require('memoize-one');\n\nvar isEqual = require('react-fast-compare');\n\nvar framerMotion = require('framer-motion');\n\nvar d3Interpolate = require('d3-interpolate');\n\nvar d3Geo = require('d3-geo');\n\nvar d3Sankey = require('d3-sankey');\n\nvar CountUp = require('react-countup');\n\nvar venn_js = require('@upsetjs/venn.js');\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\n\nvar React__default = /*#__PURE__*/_interopDefaultLegacy(React);\n\nvar ellipsize__default = /*#__PURE__*/_interopDefaultLegacy(ellipsize);\n\nvar calculateSize__default = /*#__PURE__*/_interopDefaultLegacy(calculateSize);\n\nvar bind__default = /*#__PURE__*/_interopDefaultLegacy(bind);\n\nvar classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);\n\nvar useDimensions__default = /*#__PURE__*/_interopDefaultLegacy(useDimensions);\n\nvar bigInt__default = /*#__PURE__*/_interopDefaultLegacy(bigInt);\n\nvar humanFormat__default = /*#__PURE__*/_interopDefaultLegacy(humanFormat);\n\nvar chroma__default = /*#__PURE__*/_interopDefaultLegacy(chroma);\n\nvar memoize__default = /*#__PURE__*/_interopDefaultLegacy(memoize);\n\nvar isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);\n\nvar CountUp__default = /*#__PURE__*/_interopDefaultLegacy(CountUp);\n\nvar LinearAxisTickLabel = /*#__PURE__*/function (_React$Component) {\n _inherits(LinearAxisTickLabel, _React$Component);\n\n var _super = _createSuper(LinearAxisTickLabel);\n\n function LinearAxisTickLabel() {\n _classCallCheck(this, LinearAxisTickLabel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LinearAxisTickLabel, [{\n key: \"getAlign\",\n value: function getAlign() {\n var _this$props = this.props,\n align = _this$props.align,\n half = _this$props.half;\n\n if ((align === 'inside' || align === 'outside') && half === 'center') {\n return 'center';\n }\n\n if (align === 'inside') {\n return half === 'start' ? 'end' : 'start';\n }\n\n if (align === 'outside') {\n return half === 'start' ? 'start' : 'end';\n }\n\n return align;\n }\n }, {\n key: \"getTickLineSpacing\",\n value: function getTickLineSpacing() {\n var line = this.props.line;\n\n if (!line) {\n return [0, 0];\n }\n\n var size = line.props.size;\n var position = line.props.position;\n\n if (position === 'start') {\n return [size * -1, 0];\n } else if (position === 'end') {\n return [0, size];\n } else {\n return [size * -0.5, size * 0.5];\n }\n }\n }, {\n key: \"getOffset\",\n value: function getOffset() {\n var _ref;\n\n var _this$props2 = this.props,\n padding = _this$props2.padding,\n position = _this$props2.position,\n rotation = _this$props2.rotation,\n orientation = _this$props2.orientation;\n var adjustedPadding = typeof padding === 'number' ? {\n fromAxis: padding,\n alongAxis: padding\n } : padding;\n var spacing = this.getTickLineSpacing();\n var offset1 = position === 'start' ? spacing[0] - adjustedPadding.fromAxis : position === 'end' ? spacing[1] + adjustedPadding.fromAxis : 0;\n var align = this.getAlign();\n var offset2 = rotation === true ? -5 : 0;\n offset2 += align === 'center' ? 0 : align === 'start' ? -adjustedPadding.alongAxis : adjustedPadding.alongAxis;\n var horz = orientation === 'horizontal';\n return _ref = {}, _defineProperty(_ref, horz ? 'x' : 'y', offset2), _defineProperty(_ref, horz ? 'y' : 'x', offset1), _ref;\n }\n }, {\n key: \"getTextPosition\",\n value: function getTextPosition() {\n var _this$props3 = this.props,\n angle = _this$props3.angle,\n orientation = _this$props3.orientation,\n position = _this$props3.position;\n var transform = '';\n var textAnchor = '';\n var alignmentBaseline = 'middle';\n\n if (angle !== 0) {\n transform = \"rotate(\".concat(angle, \")\");\n textAnchor = 'end';\n } else {\n var align = this.getAlign();\n\n if (orientation === 'horizontal') {\n textAnchor = align === 'center' ? 'middle' : align === 'start' ? 'end' : 'start';\n\n if (position === 'start') {\n alignmentBaseline = 'baseline';\n } else if (position === 'end') {\n alignmentBaseline = 'hanging';\n }\n } else {\n alignmentBaseline = align === 'center' ? 'middle' : align === 'start' ? 'baseline' : 'hanging';\n\n if (position === 'start') {\n textAnchor = 'end';\n } else if (position === 'end') {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n }\n }\n\n return {\n transform: transform,\n textAnchor: this.props.textAnchor || textAnchor,\n alignmentBaseline: alignmentBaseline\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n fill = _this$props4.fill,\n text = _this$props4.text,\n fullText = _this$props4.fullText,\n fontSize = _this$props4.fontSize,\n fontFamily = _this$props4.fontFamily,\n className = _this$props4.className;\n\n var _this$getOffset = this.getOffset(),\n x = _this$getOffset.x,\n y = _this$getOffset.y;\n\n var textPosition = this.getTextPosition();\n return React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(x, \", \").concat(y, \")\"),\n fontSize: fontSize,\n fontFamily: fontFamily\n }, React__default['default'].createElement(\"title\", null, fullText), React__default['default'].createElement(\"text\", Object.assign({}, textPosition, {\n fill: fill,\n className: className\n }), text));\n }\n }]);\n\n return LinearAxisTickLabel;\n}(React.Component);\n\nLinearAxisTickLabel.defaultProps = {\n fill: '#8F979F',\n fontSize: 11,\n fontFamily: 'sans-serif',\n rotation: true,\n padding: 0,\n align: 'center'\n};\n\nvar LinearAxisTickLine = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(LinearAxisTickLine, _React$PureComponent);\n\n var _super2 = _createSuper(LinearAxisTickLine);\n\n function LinearAxisTickLine() {\n _classCallCheck(this, LinearAxisTickLine);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(LinearAxisTickLine, [{\n key: \"positionTick\",\n value: function positionTick() {\n var _this$props5 = this.props,\n size = _this$props5.size,\n position = _this$props5.position,\n orientation = _this$props5.orientation;\n var isVertical = orientation === 'vertical';\n var tickSize = size || 0;\n var start = position === 'start' ? tickSize * -1 : position === 'center' ? tickSize * -0.5 : 0;\n var end = start + tickSize;\n return {\n x1: isVertical ? end : 0,\n x2: isVertical ? start : 0,\n y1: isVertical ? 0 : start,\n y2: isVertical ? 0 : end\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n strokeColor = _this$props6.strokeColor,\n strokeWidth = _this$props6.strokeWidth,\n className = _this$props6.className;\n var path = this.positionTick();\n return React__default['default'].createElement(\"line\", Object.assign({\n className: className,\n strokeWidth: strokeWidth,\n stroke: strokeColor\n }, path));\n }\n }]);\n\n return LinearAxisTickLine;\n}(React.PureComponent);\n\nLinearAxisTickLine.defaultProps = {\n strokeColor: '#8F979F',\n strokeWidth: 1,\n size: 5\n}; // https://stackoverflow.com/questions/673905/best-way-to-determine-users-locale-within-browser\n\nvar getNavigatorLanguage = function getNavigatorLanguage() {\n if (typeof window === 'undefined') {\n return 'en';\n }\n\n if (navigator.languages && navigator.languages.length) {\n return navigator.languages[0];\n }\n\n if (navigator.userLanguage || navigator.language || navigator.browserLanguage) {\n return 'en';\n }\n};\n\nvar locale = getNavigatorLanguage();\nvar options = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour12: true,\n formatMatcher: 'best fit'\n};\n/**\r\n * Format a value based on type.\r\n */\n\nfunction formatValue(value) {\n if (value !== undefined) {\n if (value instanceof Date) {\n return value.toLocaleDateString(locale, options);\n } else if (typeof value === 'number') {\n return value.toLocaleString();\n }\n\n return value;\n }\n\n return 'No value';\n}\n\nvar ONE_DAY = 60 * 60 * 24;\nvar DURATION_TICK_STEPS = [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10, 15, 60, 60 * 15, 60 * 30, 60 * 60, 60 * 60 * 2, 60 * 60 * 4, 60 * 60 * 6, 60 * 60 * 8, 60 * 60 * 12, ONE_DAY // 24 h\n];\n/**\r\n * Reduce the ticks to the max number of ticks.\r\n */\n\nfunction reduceTicks(ticks, maxTicks) {\n if (ticks.length > maxTicks) {\n var reduced = [];\n var modulus = Math.floor(ticks.length / maxTicks);\n\n for (var i = 0; i < ticks.length; i++) {\n if (i % modulus === 0) {\n reduced.push(ticks[i]);\n }\n }\n\n ticks = reduced;\n }\n\n return ticks;\n}\n/**\r\n * Determine the max ticks for the available width.\r\n */\n\n\nfunction getMaxTicks(size, dimension) {\n var tickWidth = Math.max(size, 0);\n return Math.floor(dimension / tickWidth);\n}\n/**\r\n * Formats the ticks in a duration format.\r\n */\n\n\nfunction getDurationTicks(domain, maxTicks) {\n var domainWidth = domain[1] - domain[0];\n var tickStep = null;\n\n var _iterator = _createForOfIteratorHelper(DURATION_TICK_STEPS),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n\n if (domainWidth / s < maxTicks) {\n tickStep = s;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (tickStep === null) {\n var numDayTicks = domainWidth / ONE_DAY;\n var dayStep = Math.ceil(numDayTicks / maxTicks);\n tickStep = ONE_DAY * dayStep;\n }\n\n var ticks = [domain[0]];\n\n while (ticks[ticks.length - 1] + tickStep <= domain[1]) {\n ticks.push(ticks[ticks.length - 1] + tickStep);\n }\n\n return ticks;\n}\n/**\r\n * Get the tick values from the scale.\r\n */\n\n\nfunction _getTicks(scale, tickValues, type) {\n var maxTicks = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 100;\n var interval = arguments.length > 4 ? arguments[4] : undefined;\n var result;\n\n if (tickValues) {\n result = tickValues;\n } else {\n if (scale.ticks) {\n if (type === 'duration') {\n result = getDurationTicks(scale.domain(), maxTicks);\n } else if (interval) {\n result = scale.ticks(interval);\n } else {\n if (type === 'time') {\n // If its time, we need to handle the time count\n // manually because d3 does this odd rounding\n result = scale.ticks();\n result = reduceTicks(result, maxTicks);\n } else {\n result = scale.ticks(maxTicks);\n }\n }\n } else {\n tickValues = scale.domain();\n result = reduceTicks(tickValues, maxTicks);\n }\n }\n\n return result;\n}\n\nvar calculateDimensions = function calculateDimensions(text, fontFamily, fontSize) {\n // SSR Rendering doesn't support canvas measurements\n // we have to make a guess in this case...\n if (typeof document === 'undefined') {\n return {\n width: text.length * 8,\n height: 25\n };\n }\n\n return calculateSize__default['default'](text, {\n font: fontFamily,\n fontSize: \"\".concat(fontSize, \"px\")\n });\n};\n\nvar LinearAxisTickSeries = /*#__PURE__*/function (_React$Component2) {\n _inherits(LinearAxisTickSeries, _React$Component2);\n\n var _super3 = _createSuper(LinearAxisTickSeries);\n\n function LinearAxisTickSeries() {\n _classCallCheck(this, LinearAxisTickSeries);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(LinearAxisTickSeries, [{\n key: \"getAdjustedScale\",\n value:\n /**\r\n * Gets the adjusted scale given offsets.\r\n */\n function getAdjustedScale() {\n var scale = this.props.scale;\n\n if (scale.bandwidth) {\n var offset = scale.bandwidth() / 2;\n\n if (scale.round()) {\n offset = Math.round(offset);\n }\n\n return function (d) {\n return +scale(d) + offset;\n };\n } else {\n return function (d) {\n return +scale(d);\n };\n }\n }\n /**\r\n * Gets the x/y position for a given tick.\r\n */\n\n }, {\n key: \"getPosition\",\n value: function getPosition(scaledTick) {\n var orientation = this.props.orientation;\n\n if (orientation === 'horizontal') {\n return {\n x: scaledTick,\n y: 0\n };\n } else {\n return {\n x: 0,\n y: scaledTick\n };\n }\n }\n /**\r\n * Gets the dimension (height/width) this axis is calculating on.\r\n */\n\n }, {\n key: \"getDimension\",\n value: function getDimension() {\n var _this$props7 = this.props,\n height = _this$props7.height,\n width = _this$props7.width,\n orientation = _this$props7.orientation;\n return orientation === 'vertical' ? height : width;\n }\n /**\r\n * Calculates the rotation angle that the ticks need to be shifted to.\r\n * This equation will measure the length of the text in a external canvas\r\n * object and determine what the longest label is and rotate until they fit.\r\n */\n\n }, {\n key: \"getRotationAngle\",\n value: function getRotationAngle(ticks) {\n if (!this.props.label) {\n return 0;\n }\n\n var label = this.props.label.props;\n var dimension = this.getDimension();\n var maxTicksLength = d3Array.max(ticks, function (tick) {\n return tick.width;\n });\n var angle = 0;\n\n if (label.rotation) {\n if (label.rotation === true) {\n var baseWidth = maxTicksLength;\n var maxBaseWidth = Math.floor(dimension / ticks.length);\n\n while (baseWidth > maxBaseWidth && angle > -90) {\n angle -= 30;\n baseWidth = Math.cos(angle * (Math.PI / 180)) * maxTicksLength;\n }\n } else {\n angle = label.rotation;\n }\n }\n\n return angle;\n }\n /**\r\n * Gets the formatted label of the tick.\r\n */\n\n }, {\n key: \"getLabelFormat\",\n value: function getLabelFormat() {\n var _this$props8 = this.props,\n label = _this$props8.label,\n scale = _this$props8.scale;\n\n if (label && label.props.format) {\n return label.props.format;\n } else if (scale.tickFormat) {\n return scale.tickFormat.apply(scale, [5]);\n } else {\n return function (v) {\n return formatValue(v);\n };\n }\n }\n /**\r\n * Gets the ticks given the dimensions and scales and returns\r\n * the text and position.\r\n */\n\n }, {\n key: \"getTicks\",\n value: function getTicks() {\n var _this = this;\n\n var _this$props9 = this.props,\n scale = _this$props9.scale,\n tickSize = _this$props9.tickSize,\n tickValues = _this$props9.tickValues,\n interval = _this$props9.interval,\n axis = _this$props9.axis,\n label = _this$props9.label;\n var dimension = this.getDimension();\n var maxTicks = getMaxTicks(tickSize, dimension);\n\n var ticks = _getTicks(scale, tickValues, axis.type, maxTicks, interval);\n\n var adjustedScale = this.getAdjustedScale();\n var format = this.getLabelFormat();\n var midpoint = dimension / 2;\n return ticks.map(function (tick) {\n var fullText = format(tick);\n var scaledTick = adjustedScale(tick);\n\n var position = _this.getPosition(scaledTick);\n\n var text = ellipsize__default['default'](fullText, 18);\n var size = label ? calculateDimensions(text, label.props.fontFamily, label.props.fontSize.toString()) : {};\n return Object.assign(Object.assign(Object.assign({}, position), size), {\n text: text,\n fullText: fullText,\n half: scaledTick === midpoint ? 'center' : scaledTick < midpoint ? 'start' : 'end'\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n label = _this$props10.label,\n line = _this$props10.line,\n height = _this$props10.height,\n width = _this$props10.width,\n orientation = _this$props10.orientation;\n var ticks = this.getTicks();\n var angle = this.getRotationAngle(ticks);\n return React__default['default'].createElement(React.Fragment, null, ticks.map(function (tick, i) {\n return React__default['default'].createElement(\"g\", {\n key: i,\n transform: \"translate(\".concat(tick.x, \", \").concat(tick.y, \")\")\n }, line && React__default['default'].createElement(rdk.CloneElement, {\n element: line,\n height: height,\n width: width,\n orientation: orientation\n }), label && React__default['default'].createElement(rdk.CloneElement, {\n element: label,\n text: tick.text,\n fullText: tick.fullText,\n half: tick.half,\n angle: angle,\n orientation: orientation,\n line: line\n }));\n }));\n }\n }]);\n\n return LinearAxisTickSeries;\n}(React.Component);\n\nLinearAxisTickSeries.defaultProps = {\n line: React__default['default'].createElement(LinearAxisTickLine, null),\n label: React__default['default'].createElement(LinearAxisTickLabel, null),\n tickSize: 30\n};\nvar axisLineId = 0;\n\nvar LinearAxisLine = /*#__PURE__*/function (_React$Component3) {\n _inherits(LinearAxisLine, _React$Component3);\n\n var _super4 = _createSuper(LinearAxisLine);\n\n function LinearAxisLine() {\n var _this2;\n\n _classCallCheck(this, LinearAxisLine);\n\n _this2 = _super4.apply(this, arguments);\n _this2.state = {\n id: (axisLineId++).toString()\n };\n return _this2;\n }\n\n _createClass(LinearAxisLine, [{\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n strokeColor = _this$props11.strokeColor,\n strokeGradient = _this$props11.strokeGradient,\n scale = _this$props11.scale,\n orientation = _this$props11.orientation,\n className = _this$props11.className;\n var id = this.state.id;\n\n var _scale$range = scale.range(),\n _scale$range2 = _slicedToArray(_scale$range, 2),\n range0 = _scale$range2[0],\n range1 = _scale$range2[1];\n\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"line\", {\n className: className,\n x1: orientation === 'vertical' ? 0 : range0,\n // Workaround for a Chrome/Firefox bug where it won't render gradients for straight lines\n x2: orientation === 'vertical' ? 0.00001 : range1,\n y1: orientation === 'vertical' ? range0 : 0,\n y2: orientation === 'vertical' ? range1 : 0.00001,\n strokeWidth: 1,\n stroke: strokeGradient ? \"url(#axis-gradient-\".concat(id, \")\") : strokeColor\n }), strokeGradient && React__default['default'].createElement(rdk.CloneElement, {\n element: strokeGradient,\n id: \"axis-gradient-\".concat(id)\n }));\n }\n }]);\n\n return LinearAxisLine;\n}(React.Component);\n\nLinearAxisLine.defaultProps = {\n strokeColor: '#8F979F',\n strokeWidth: 1\n};\n\nvar LinearAxis = /*#__PURE__*/function (_React$Component4) {\n _inherits(LinearAxis, _React$Component4);\n\n var _super5 = _createSuper(LinearAxis);\n\n function LinearAxis(props) {\n var _this3;\n\n _classCallCheck(this, LinearAxis);\n\n _this3 = _super5.call(this, props);\n _this3.ref = React.createRef();\n _this3.state = {\n height: props.height,\n width: props.width\n };\n return _this3;\n }\n\n _createClass(LinearAxis, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateDimensions();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props12 = this.props,\n height = _this$props12.height,\n width = _this$props12.width,\n scale = _this$props12.scale;\n\n if (width !== prevProps.width || height !== prevProps.height || scale !== prevProps.scale) {\n this.updateDimensions();\n }\n }\n }, {\n key: \"updateDimensions\",\n value: function updateDimensions() {\n var _this$props13 = this.props,\n onDimensionsChange = _this$props13.onDimensionsChange,\n orientation = _this$props13.orientation,\n position = _this$props13.position;\n var shouldOffset = position !== 'center';\n var height;\n var width;\n\n if (shouldOffset) {\n var dims = this.ref.current.getBoundingClientRect();\n width = Math.floor(dims.width);\n height = Math.floor(dims.height);\n }\n\n if (orientation === 'vertical') {\n if (this.state.width !== width) {\n this.setState({\n width: width\n });\n onDimensionsChange({\n width: width\n });\n }\n } else {\n if (this.state.height !== height) {\n this.setState({\n height: height\n });\n onDimensionsChange({\n height: height\n });\n }\n }\n }\n }, {\n key: \"getPosition\",\n value: function getPosition() {\n var _this$props14 = this.props,\n position = _this$props14.position,\n width = _this$props14.width,\n height = _this$props14.height,\n orientation = _this$props14.orientation;\n var translateY = 0;\n var translateX = 0;\n\n if (position === 'end' && orientation === 'horizontal') {\n translateY = height;\n } else if (position === 'center' && orientation === 'horizontal') {\n translateY = height / 2;\n } else if (position === 'end' && orientation === 'vertical') {\n translateX = width;\n } else if (position === 'center' && orientation === 'vertical') {\n translateX = width / 2;\n }\n\n return {\n translateX: translateX,\n translateY: translateY\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props15 = this.props,\n scale = _this$props15.scale,\n height = _this$props15.height,\n width = _this$props15.width,\n orientation = _this$props15.orientation,\n axisLine = _this$props15.axisLine,\n tickSeries = _this$props15.tickSeries;\n\n var _this$getPosition = this.getPosition(),\n translateX = _this$getPosition.translateX,\n translateY = _this$getPosition.translateY;\n\n return React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(translateX, \", \").concat(translateY, \")\"),\n ref: this.ref\n }, axisLine && React__default['default'].createElement(rdk.CloneElement, {\n element: axisLine,\n height: height,\n width: width,\n scale: scale,\n orientation: orientation\n }), (tickSeries.props.line || tickSeries.props.label) && React__default['default'].createElement(rdk.CloneElement, {\n element: tickSeries,\n height: height,\n width: width,\n scale: scale,\n orientation: orientation,\n axis: this.props\n }));\n }\n }]);\n\n return LinearAxis;\n}(React.Component);\n\nLinearAxis.defaultProps = {\n axisLine: React__default['default'].createElement(LinearAxisLine, null),\n tickSeries: React__default['default'].createElement(LinearAxisTickSeries, null),\n scaled: false,\n roundDomains: false,\n onDimensionsChange: function onDimensionsChange() {\n return undefined;\n }\n};\n\nvar LinearXAxisTickLabel = /*#__PURE__*/function (_React$Component5) {\n _inherits(LinearXAxisTickLabel, _React$Component5);\n\n var _super6 = _createSuper(LinearXAxisTickLabel);\n\n function LinearXAxisTickLabel() {\n _classCallCheck(this, LinearXAxisTickLabel);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(LinearXAxisTickLabel, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxisTickLabel, Object.assign({}, this.props));\n }\n }]);\n\n return LinearXAxisTickLabel;\n}(React.Component);\n\nLinearXAxisTickLabel.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLabel.defaultProps), {\n rotation: true,\n position: 'end',\n align: 'center'\n});\n\nvar LinearXAxisTickLine = /*#__PURE__*/function (_React$Component6) {\n _inherits(LinearXAxisTickLine, _React$Component6);\n\n var _super7 = _createSuper(LinearXAxisTickLine);\n\n function LinearXAxisTickLine() {\n _classCallCheck(this, LinearXAxisTickLine);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(LinearXAxisTickLine, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxisTickLine, Object.assign({}, this.props));\n }\n }]);\n\n return LinearXAxisTickLine;\n}(React.Component);\n\nLinearXAxisTickLine.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLine.defaultProps), {\n position: 'end'\n});\n\nvar LinearXAxisTickSeries = /*#__PURE__*/function (_React$Component7) {\n _inherits(LinearXAxisTickSeries, _React$Component7);\n\n var _super8 = _createSuper(LinearXAxisTickSeries);\n\n function LinearXAxisTickSeries() {\n _classCallCheck(this, LinearXAxisTickSeries);\n\n return _super8.apply(this, arguments);\n }\n\n _createClass(LinearXAxisTickSeries, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxisTickSeries, Object.assign({}, this.props));\n }\n }]);\n\n return LinearXAxisTickSeries;\n}(React.Component);\n\nLinearXAxisTickSeries.defaultProps = Object.assign(Object.assign({}, LinearAxisTickSeries.defaultProps), {\n tickSize: 75,\n line: React__default['default'].createElement(LinearXAxisTickLine, null),\n label: React__default['default'].createElement(LinearXAxisTickLabel, null)\n});\n\nvar LinearXAxis = /*#__PURE__*/function (_React$Component8) {\n _inherits(LinearXAxis, _React$Component8);\n\n var _super9 = _createSuper(LinearXAxis);\n\n function LinearXAxis() {\n _classCallCheck(this, LinearXAxis);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(LinearXAxis, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxis, Object.assign({}, this.props));\n }\n }]);\n\n return LinearXAxis;\n}(React.Component);\n\nLinearXAxis.defaultProps = Object.assign(Object.assign({}, LinearAxis.defaultProps), {\n position: 'end',\n roundDomains: false,\n scaled: false,\n type: 'value',\n orientation: 'horizontal',\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, null)\n});\n\nvar LinearYAxisTickLabel = /*#__PURE__*/function (_React$Component9) {\n _inherits(LinearYAxisTickLabel, _React$Component9);\n\n var _super10 = _createSuper(LinearYAxisTickLabel);\n\n function LinearYAxisTickLabel() {\n _classCallCheck(this, LinearYAxisTickLabel);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(LinearYAxisTickLabel, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxisTickLabel, Object.assign({}, this.props));\n }\n }]);\n\n return LinearYAxisTickLabel;\n}(React.Component);\n\nLinearYAxisTickLabel.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLabel.defaultProps), {\n rotation: false,\n position: 'start',\n align: 'center'\n});\n\nvar LinearYAxisTickLine = /*#__PURE__*/function (_React$Component10) {\n _inherits(LinearYAxisTickLine, _React$Component10);\n\n var _super11 = _createSuper(LinearYAxisTickLine);\n\n function LinearYAxisTickLine() {\n _classCallCheck(this, LinearYAxisTickLine);\n\n return _super11.apply(this, arguments);\n }\n\n _createClass(LinearYAxisTickLine, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxisTickLine, Object.assign({}, this.props));\n }\n }]);\n\n return LinearYAxisTickLine;\n}(React.Component);\n\nLinearYAxisTickLine.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLine.defaultProps), {\n position: 'start'\n});\n\nvar LinearYAxisTickSeries = /*#__PURE__*/function (_React$Component11) {\n _inherits(LinearYAxisTickSeries, _React$Component11);\n\n var _super12 = _createSuper(LinearYAxisTickSeries);\n\n function LinearYAxisTickSeries() {\n _classCallCheck(this, LinearYAxisTickSeries);\n\n return _super12.apply(this, arguments);\n }\n\n _createClass(LinearYAxisTickSeries, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxisTickSeries, Object.assign({}, this.props));\n }\n }]);\n\n return LinearYAxisTickSeries;\n}(React.Component);\n\nLinearYAxisTickSeries.defaultProps = Object.assign(Object.assign({}, LinearAxisTickSeries.defaultProps), {\n tickSize: 30,\n line: React__default['default'].createElement(LinearYAxisTickLine, null),\n label: React__default['default'].createElement(LinearYAxisTickLabel, null)\n});\n\nvar LinearYAxis = /*#__PURE__*/function (_React$Component12) {\n _inherits(LinearYAxis, _React$Component12);\n\n var _super13 = _createSuper(LinearYAxis);\n\n function LinearYAxis() {\n _classCallCheck(this, LinearYAxis);\n\n return _super13.apply(this, arguments);\n }\n\n _createClass(LinearYAxis, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LinearAxis, Object.assign({}, this.props));\n }\n }]);\n\n return LinearYAxis;\n}(React.Component);\n\nLinearYAxis.defaultProps = Object.assign(Object.assign({}, LinearAxis.defaultProps), {\n orientation: 'vertical',\n scaled: false,\n roundDomains: false,\n type: 'value',\n position: 'start',\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, null)\n});\n/**\r\n * Returns whether the axis has a visual element or not.\r\n */\n\nvar isAxisVisible = function isAxisVisible(axis) {\n return !!axis.tickSeries.props.label || !!axis.tickSeries.props.line;\n};\n\nvar RadialAxisTickLine = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(RadialAxisTickLine, _React$PureComponent2);\n\n var _super14 = _createSuper(RadialAxisTickLine);\n\n function RadialAxisTickLine() {\n _classCallCheck(this, RadialAxisTickLine);\n\n return _super14.apply(this, arguments);\n }\n\n _createClass(RadialAxisTickLine, [{\n key: \"render\",\n value: function render() {\n var _this$props16 = this.props,\n stroke = _this$props16.stroke,\n size = _this$props16.size,\n position = _this$props16.position,\n innerRadius = _this$props16.innerRadius,\n outerRadius = _this$props16.outerRadius;\n var x1 = position === 'outside' ? size : -(outerRadius - innerRadius);\n return React__default['default'].createElement(\"line\", {\n x1: x1,\n x2: 0,\n stroke: stroke,\n style: {\n pointerEvents: 'none'\n }\n });\n }\n }]);\n\n return RadialAxisTickLine;\n}(React.PureComponent);\n\nRadialAxisTickLine.defaultProps = {\n stroke: 'rgba(113, 128, 141, .5)',\n size: 10,\n position: 'inside'\n};\n\nvar rad2deg = function rad2deg(angle) {\n return angle * 180 / Math.PI;\n};\n\nvar RadialAxisTickLabel = /*#__PURE__*/function (_React$PureComponent3) {\n _inherits(RadialAxisTickLabel, _React$PureComponent3);\n\n var _super15 = _createSuper(RadialAxisTickLabel);\n\n function RadialAxisTickLabel() {\n _classCallCheck(this, RadialAxisTickLabel);\n\n return _super15.apply(this, arguments);\n }\n\n _createClass(RadialAxisTickLabel, [{\n key: \"getPosition\",\n value: function getPosition() {\n var _this$props17 = this.props,\n point = _this$props17.point,\n autoRotate = _this$props17.autoRotate,\n rotation = _this$props17.rotation,\n padding = _this$props17.padding;\n var textAnchor;\n var transform;\n\n if (autoRotate) {\n var l = point >= Math.PI;\n var r = point < 2 * Math.PI; // TODO: This centers the text, determine better way later\n\n if (rotation >= 85 && rotation <= 95 || rotation <= -85 && rotation >= -95) {\n textAnchor = 'middle';\n } else if (l && r) {\n textAnchor = 'end';\n } else {\n textAnchor = 'start';\n }\n\n transform = \"rotate(\".concat(90 - rad2deg(point), \", \").concat(padding, \", 0)\");\n } else {\n var shouldRotate = rotation > 100 && rotation;\n var rotate = shouldRotate ? 180 : 0;\n\n var _translate = shouldRotate ? -30 : 0;\n\n textAnchor = shouldRotate ? 'end' : 'start';\n transform = \"rotate(\".concat(rotate, \") translate(\").concat(_translate, \")\");\n }\n\n return {\n transform: transform,\n textAnchor: textAnchor\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props18 = this.props,\n data = _this$props18.data,\n fill = _this$props18.fill,\n fontFamily = _this$props18.fontFamily,\n fontSize = _this$props18.fontSize,\n format = _this$props18.format,\n lineSize = _this$props18.lineSize,\n index = _this$props18.index;\n var text = format ? format(data, index) : formatValue(data);\n\n var _this$getPosition2 = this.getPosition(),\n transform = _this$getPosition2.transform,\n textAnchor = _this$getPosition2.textAnchor;\n\n return React__default['default'].createElement(\"g\", {\n transform: transform\n }, React__default['default'].createElement(\"title\", null, text), React__default['default'].createElement(\"text\", {\n dy: \"0.35em\",\n x: lineSize + 5,\n textAnchor: textAnchor,\n fill: fill,\n fontFamily: fontFamily,\n fontSize: fontSize\n }, text));\n }\n }]);\n\n return RadialAxisTickLabel;\n}(React.PureComponent);\n\nRadialAxisTickLabel.defaultProps = {\n fill: '#71808d',\n fontSize: 11,\n padding: 15,\n fontFamily: 'sans-serif',\n autoRotate: true\n};\n\nvar RadialAxisTick = /*#__PURE__*/function (_React$Component13) {\n _inherits(RadialAxisTick, _React$Component13);\n\n var _super16 = _createSuper(RadialAxisTick);\n\n function RadialAxisTick() {\n _classCallCheck(this, RadialAxisTick);\n\n return _super16.apply(this, arguments);\n }\n\n _createClass(RadialAxisTick, [{\n key: \"render\",\n value: function render() {\n var _this$props19 = this.props,\n line = _this$props19.line,\n label = _this$props19.label,\n scale = _this$props19.scale,\n outerRadius = _this$props19.outerRadius,\n data = _this$props19.data,\n index = _this$props19.index,\n padding = _this$props19.padding,\n innerRadius = _this$props19.innerRadius;\n var point = scale(data);\n var rotation = point * 180 / Math.PI - 90;\n var transform = \"rotate(\".concat(rotation, \") translate(\").concat(outerRadius + padding, \",0)\");\n var lineSize = line ? line.props.size : 0;\n return React__default['default'].createElement(\"g\", {\n transform: transform\n }, line && React__default['default'].createElement(rdk.CloneElement, {\n element: line,\n innerRadius: innerRadius,\n outerRadius: outerRadius\n }), label && React__default['default'].createElement(rdk.CloneElement, {\n element: label,\n index: index,\n point: point,\n rotation: rotation,\n lineSize: lineSize,\n data: data\n }));\n }\n }]);\n\n return RadialAxisTick;\n}(React.Component);\n\nRadialAxisTick.defaultProps = {\n outerRadius: 0,\n padding: 0,\n line: React__default['default'].createElement(RadialAxisTickLine, null),\n label: React__default['default'].createElement(RadialAxisTickLabel, null)\n};\n\nvar RadialAxisTickSeries = /*#__PURE__*/function (_React$Component14) {\n _inherits(RadialAxisTickSeries, _React$Component14);\n\n var _super17 = _createSuper(RadialAxisTickSeries);\n\n function RadialAxisTickSeries() {\n _classCallCheck(this, RadialAxisTickSeries);\n\n return _super17.apply(this, arguments);\n }\n\n _createClass(RadialAxisTickSeries, [{\n key: \"render\",\n value: function render() {\n var _this$props20 = this.props,\n scale = _this$props20.scale,\n count = _this$props20.count,\n outerRadius = _this$props20.outerRadius,\n tick = _this$props20.tick,\n tickValues = _this$props20.tickValues,\n innerRadius = _this$props20.innerRadius,\n interval = _this$props20.interval,\n type = _this$props20.type;\n\n var ticks = _getTicks(scale, tickValues, type, count, interval || count);\n\n return React__default['default'].createElement(React.Fragment, null, ticks.map(function (data, i) {\n return React__default['default'].createElement(rdk.CloneElement, {\n element: tick,\n key: i,\n index: i,\n scale: scale,\n data: data,\n innerRadius: innerRadius,\n outerRadius: outerRadius\n });\n }));\n }\n }]);\n\n return RadialAxisTickSeries;\n}(React.Component);\n\nRadialAxisTickSeries.defaultProps = {\n count: 12,\n type: 'time',\n tick: React__default['default'].createElement(RadialAxisTick, null)\n};\n\nvar RadialAxisArc = /*#__PURE__*/function (_React$Component15) {\n _inherits(RadialAxisArc, _React$Component15);\n\n var _super18 = _createSuper(RadialAxisArc);\n\n function RadialAxisArc() {\n _classCallCheck(this, RadialAxisArc);\n\n return _super18.apply(this, arguments);\n }\n\n _createClass(RadialAxisArc, [{\n key: \"render\",\n value: function render() {\n var _this$props21 = this.props,\n index = _this$props21.index,\n stroke = _this$props21.stroke,\n strokeDasharray = _this$props21.strokeDasharray,\n scale = _this$props21.scale;\n var r = scale(index);\n var strokeColor = typeof stroke === 'string' ? stroke : stroke(index);\n var strokeDash = typeof strokeDasharray === 'string' ? strokeDasharray : strokeDasharray(index);\n return React__default['default'].createElement(\"circle\", {\n fill: \"none\",\n strokeDasharray: strokeDash,\n stroke: strokeColor,\n style: {\n pointerEvents: 'none'\n },\n cx: \"0\",\n cy: \"0\",\n r: r\n });\n }\n }]);\n\n return RadialAxisArc;\n}(React.Component);\n\nRadialAxisArc.defaultProps = {\n stroke: '#71808d',\n strokeDasharray: '1,4'\n};\n\nvar RadialAxisArcSeries = /*#__PURE__*/function (_React$Component16) {\n _inherits(RadialAxisArcSeries, _React$Component16);\n\n var _super19 = _createSuper(RadialAxisArcSeries);\n\n function RadialAxisArcSeries() {\n _classCallCheck(this, RadialAxisArcSeries);\n\n return _super19.apply(this, arguments);\n }\n\n _createClass(RadialAxisArcSeries, [{\n key: \"render\",\n value: function render() {\n var _this$props22 = this.props,\n count = _this$props22.count,\n innerRadius = _this$props22.innerRadius,\n outerRadius = _this$props22.outerRadius,\n arc = _this$props22.arc;\n var scale = d3Scale.scaleLinear().domain([0, count]).range([innerRadius, outerRadius]);\n var arcs = scale.ticks(count);\n return React__default['default'].createElement(React.Fragment, null, arcs.map(function (d) {\n return React__default['default'].createElement(rdk.CloneElement, {\n element: arc,\n key: d,\n index: d,\n scale: scale\n });\n }));\n }\n }]);\n\n return RadialAxisArcSeries;\n}(React.Component);\n\nRadialAxisArcSeries.defaultProps = {\n count: 12,\n arc: React__default['default'].createElement(RadialAxisArc, null)\n};\n\nvar RadialAxis = /*#__PURE__*/function (_React$Component17) {\n _inherits(RadialAxis, _React$Component17);\n\n var _super20 = _createSuper(RadialAxis);\n\n function RadialAxis() {\n _classCallCheck(this, RadialAxis);\n\n return _super20.apply(this, arguments);\n }\n\n _createClass(RadialAxis, [{\n key: \"render\",\n value: function render() {\n var _this$props23 = this.props,\n arcs = _this$props23.arcs,\n ticks = _this$props23.ticks,\n xScale = _this$props23.xScale,\n height = _this$props23.height,\n width = _this$props23.width,\n innerRadius = _this$props23.innerRadius,\n type = _this$props23.type;\n var outerRadius = Math.min(height, width) / 2;\n return React__default['default'].createElement(React.Fragment, null, arcs && React__default['default'].createElement(rdk.CloneElement, {\n element: arcs,\n outerRadius: outerRadius,\n innerRadius: innerRadius\n }), ticks && React__default['default'].createElement(rdk.CloneElement, {\n element: ticks,\n scale: xScale,\n type: type,\n innerRadius: innerRadius,\n outerRadius: outerRadius\n }));\n }\n }]);\n\n return RadialAxis;\n}(React.Component);\n\nRadialAxis.defaultProps = {\n innerRadius: 10,\n type: 'value',\n arcs: React__default['default'].createElement(RadialAxisArcSeries, null),\n ticks: React__default['default'].createElement(RadialAxisTickSeries, null)\n};\n/**\r\n * Add ability to calculate scale band position.\r\n * Reference: https://stackoverflow.com/questions/38633082/d3-getting-invert-value-of-band-scales\r\n */\n\nvar scaleBandInvert = function scaleBandInvert(scale) {\n var domain = scale.domain();\n var paddingOuter = scale(domain[0]);\n var eachBand = scale.step();\n\n var _scale$range3 = scale.range(),\n _scale$range4 = _slicedToArray(_scale$range3, 2),\n end = _scale$range4[1];\n\n return function (offset) {\n var index = Math.floor((offset - paddingOuter) / eachBand); // Handle horizontal charts...\n\n if (end === 0) {\n index = index * -1;\n }\n\n return domain[Math.max(0, Math.min(index, domain.length - 1))];\n };\n};\n/**\r\n * Given a point position, get the closes data point in the dataset.\r\n */\n\n\nvar getClosestPoint = function getClosestPoint(pos, scale, data) {\n var attr = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'x';\n\n if (scale.invert) {\n var domain = scale.invert(pos); // Select the index\n\n var bisect = d3Array.bisector(function (d) {\n return d[attr];\n }).right;\n var index = bisect(data, domain); // Determine min index\n\n var minIndex = Math.max(0, index - 1);\n var before = data[minIndex]; // Determine max index\n\n var maxIndex = Math.min(data.length - 1, index);\n var after = data[maxIndex]; // Determine which is closest to the point\n\n var beforeVal = before[attr];\n var afterVal = after[attr];\n beforeVal = domain - beforeVal;\n afterVal = afterVal - domain;\n return beforeVal < afterVal ? before : after;\n } else {\n // If we have a band scale, handle that special\n var _domain = scale.domain();\n\n var prop; // Of course the Marimekko is a pain...\n\n if (scale.mariemkoInvert) {\n prop = scale.mariemkoInvert(pos);\n } else {\n prop = scaleBandInvert(scale)(pos);\n }\n\n var idx = _domain.indexOf(prop);\n\n return data[idx];\n }\n};\n/**\r\n * Given an event, get the parent svg element;\r\n */\n\n\nvar getParentSVG = function getParentSVG(event) {\n // set node to targets owner svg\n var node = event.target.ownerSVGElement; // find the outermost svg\n\n if (node) {\n while (node.ownerSVGElement) {\n node = node.ownerSVGElement;\n }\n }\n\n return node;\n};\n/**\r\n * Given an event, get the relative X/Y position for a target.\r\n */\n\n\nvar getPositionForTarget = function getPositionForTarget(_ref2) {\n var target = _ref2.target,\n clientX = _ref2.clientX,\n clientY = _ref2.clientY;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n top = _target$getBoundingCl.top,\n left = _target$getBoundingCl.left;\n\n return {\n x: clientX - left - target.clientLeft,\n y: clientY - top - target.clientTop\n };\n};\n/**\r\n * Gets the point from q given matrix.\r\n */\n\n\nvar getPointFromMatrix = function getPointFromMatrix(event, matrix) {\n var parent = getParentSVG(event);\n\n if (!parent) {\n return null;\n } // Determines client coordinates relative to the editor component\n\n\n var _parent$getBoundingCl = parent.getBoundingClientRect(),\n top = _parent$getBoundingCl.top,\n left = _parent$getBoundingCl.left;\n\n var x = event.clientX - left;\n var y = event.clientY - top; // Transforms the coordinate to world coordinate (in the SVG/DIV world)\n\n return transformationMatrix.applyToPoint(transformationMatrix.inverse(matrix), {\n x: x,\n y: y\n });\n};\n/**\r\n * Get the start/end matrix.\r\n */\n\n\nvar getLimitMatrix = function getLimitMatrix(height, width, matrix) {\n return transformationMatrix.applyToPoints(matrix, [{\n x: 0,\n y: 0\n }, {\n x: width,\n y: height\n }]);\n};\n/**\r\n * Constrain the matrix.\r\n */\n\n\nvar constrainMatrix = function constrainMatrix(height, width, matrix) {\n var _getLimitMatrix = getLimitMatrix(height, width, matrix),\n _getLimitMatrix2 = _slicedToArray(_getLimitMatrix, 2),\n min = _getLimitMatrix2[0],\n max = _getLimitMatrix2[1];\n\n if (max.x < width || max.y < height) {\n return true;\n }\n\n if (min.x > 0 || min.y > 0) {\n return true;\n }\n\n return false;\n};\n/**\r\n * Determine if scale factor is less than allowed.\r\n */\n\n\nvar lessThanScaleFactorMin = function lessThanScaleFactorMin(value, scaleFactor) {\n return value.scaleFactorMin && value.d * scaleFactor <= value.scaleFactorMin;\n};\n/**\r\n * Determine if scale factor is larger than allowed.\r\n */\n\n\nvar moreThanScaleFactorMax = function moreThanScaleFactorMax(value, scaleFactor) {\n return value.scaleFactorMax && value.d * scaleFactor >= value.scaleFactorMax;\n};\n/**\r\n * Determine if both min and max scale fctors are going out of bounds.\r\n */\n\n\nvar isZoomLevelGoingOutOfBounds = function isZoomLevelGoingOutOfBounds(value, scaleFactor) {\n var a = lessThanScaleFactorMin(value, scaleFactor) && scaleFactor < 1;\n var b = moreThanScaleFactorMax(value, scaleFactor) && scaleFactor > 1;\n return a || b;\n};\n/**\r\n * Toggle the text selection of the body.\r\n */\n\n\nfunction toggleTextSelection(allowSelection) {\n var style = allowSelection ? '' : 'none';\n ['-webkit-touch-callout', '-webkit-user-select', '-khtml-user-select', '-moz-user-select', '-ms-user-select', 'user-select'].forEach(function (prop) {\n return document.body.style[prop] = style;\n });\n}\n\nvar Move = /*#__PURE__*/function (_React$Component18) {\n _inherits(Move, _React$Component18);\n\n var _super21 = _createSuper(Move);\n\n function Move() {\n var _this4;\n\n _classCallCheck(this, Move);\n\n _this4 = _super21.apply(this, arguments);\n _this4.started = false;\n _this4.deltaX = 0;\n _this4.deltaY = 0;\n _this4.prevXPosition = 0;\n _this4.prevYPosition = 0;\n\n _this4.onMouseMove = function (event) {\n event.preventDefault();\n event.stopPropagation();\n var movementX = event.movementX,\n movementY = event.movementY;\n _this4.deltaX = _this4.deltaX + movementX;\n _this4.deltaY = _this4.deltaY + movementY;\n\n if (_this4.checkThreshold()) {\n _this4.disableText(true);\n\n _this4.setCursor(true);\n\n _this4.deltaX = 0;\n _this4.deltaY = 0;\n _this4.started = true;\n\n _this4.props.onMoveStart({\n nativeEvent: event,\n type: 'mouse'\n });\n } else {\n _this4.rqf = requestAnimationFrame(function () {\n _this4.props.onMove({\n nativeEvent: event,\n type: 'mouse',\n x: movementX,\n y: movementY\n });\n });\n }\n };\n\n _this4.onMouseUp = function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this4.disposeHandlers();\n\n if (_this4.started) {\n _this4.props.onMoveEnd({\n nativeEvent: event,\n type: 'mouse'\n });\n } else {\n _this4.props.onMoveCancel({\n nativeEvent: event,\n type: 'mouse'\n });\n }\n };\n\n _this4.onTouchMove = function (event) {\n event.preventDefault();\n event.stopPropagation(); // Calculate delta from previous position and current\n\n var _this4$getTouchCoords = _this4.getTouchCoords(event),\n clientX = _this4$getTouchCoords.clientX,\n clientY = _this4$getTouchCoords.clientY;\n\n var deltaX = clientX - _this4.prevXPosition;\n var deltaY = clientY - _this4.prevYPosition; // Track the delta\n\n _this4.deltaX = _this4.deltaX + deltaX;\n _this4.deltaY = _this4.deltaY + deltaY;\n\n if (_this4.checkThreshold()) {\n _this4.disableText(true);\n\n _this4.setCursor(true);\n\n _this4.deltaX = 0;\n _this4.deltaY = 0;\n _this4.started = true;\n\n _this4.props.onMoveStart({\n // TODO: Come back and clean this up...\n nativeEvent: Object.assign(Object.assign({}, event), {\n clientX: clientX,\n clientY: clientY\n }),\n type: 'touch'\n });\n } else {\n _this4.rqf = requestAnimationFrame(function () {\n _this4.props.onMove({\n // TODO: Come back and clean this up...\n nativeEvent: Object.assign(Object.assign({}, event), {\n clientX: clientX,\n clientY: clientY\n }),\n type: 'touch',\n x: deltaX,\n y: deltaY\n });\n });\n }\n\n _this4.prevXPosition = clientX;\n _this4.prevYPosition = clientY;\n };\n\n _this4.onTouchEnd = function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this4.disposeHandlers();\n\n if (_this4.started) {\n _this4.props.onMoveEnd({\n nativeEvent: event,\n type: 'touch'\n });\n } else {\n _this4.props.onMoveCancel({\n nativeEvent: event,\n type: 'touch'\n });\n }\n };\n\n return _this4;\n }\n\n _createClass(Move, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelAnimationFrame(this.rqf);\n this.disposeHandlers();\n }\n }, {\n key: \"disposeHandlers\",\n value: function disposeHandlers() {\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseup', this.onMouseUp);\n window.removeEventListener('touchmove', this.onTouchMove);\n window.removeEventListener('touchend', this.onTouchEnd);\n this.setCursor(false);\n this.disableText(true);\n }\n }, {\n key: \"disableText\",\n value: function disableText(shouldDisable) {\n if (this.props.disableText) {\n toggleTextSelection(shouldDisable);\n }\n }\n }, {\n key: \"setCursor\",\n value: function setCursor(set) {\n var cursor = this.props.cursor;\n\n if (cursor) {\n if (!set) {\n cursor = 'inherit';\n }\n\n document.body.style['cursor'] = cursor;\n }\n }\n }, {\n key: \"checkThreshold\",\n value: function checkThreshold() {\n var threshold = this.props.threshold;\n return !this.started && (Math.abs(this.deltaX) > threshold || Math.abs(this.deltaY) > threshold);\n }\n }, {\n key: \"getTouchCoords\",\n value: function getTouchCoords(event) {\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n return {\n clientX: clientX,\n clientY: clientY\n };\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n var _this$props24 = this.props,\n preventRightClick = _this$props24.preventRightClick,\n disabled = _this$props24.disabled;\n var shouldCancel = event.nativeEvent.which === 3 && preventRightClick;\n\n if (shouldCancel || disabled) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.started = false; // Always bind event so we cancel movement even if no action was taken\n\n window.addEventListener('mousemove', this.onMouseMove);\n window.addEventListener('mouseup', this.onMouseUp);\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event) {\n var disabled = this.props.disabled;\n\n if (disabled || event.touches.length !== 1) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.started = false;\n this.prevXPosition = event.touches[0].clientX;\n this.prevYPosition = event.touches[0].clientY; // Always bind event so we cancel movement even if no action was taken\n\n window.addEventListener('touchmove', this.onTouchMove);\n window.addEventListener('touchend', this.onTouchEnd);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n return React.Children.map(this.props.children, function (child) {\n return React.cloneElement(child, Object.assign(Object.assign({}, child.props), {\n onMouseDown: function onMouseDown(e) {\n _this5.onMouseDown(e);\n\n if (child.props.onMouseDown) {\n child.props.onMouseDown(e);\n }\n },\n onTouchStart: function onTouchStart(e) {\n _this5.onTouchStart(e);\n\n if (child.props.onTouchStart) {\n child.props.onTouchStart(e);\n }\n }\n }));\n });\n }\n }]);\n\n return Move;\n}(React.Component);\n\nMove.defaultProps = {\n preventRightClick: true,\n disableText: true,\n threshold: 0,\n onMoveStart: function onMoveStart() {\n return undefined;\n },\n onMove: function onMove() {\n return undefined;\n },\n onMoveEnd: function onMoveEnd() {\n return undefined;\n },\n onMoveCancel: function onMoveCancel() {\n return undefined;\n }\n};\n\nfunction styleInject(css, ref) {\n if (ref === void 0) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') {\n return;\n }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".BrushHandle-module_handle__1HtKb {\\n fill: var(--color-background);\\n stroke: var(--color-handle);\\n}\\n\\n.BrushHandle-module_dragging__k86sG {\\n fill: var(--color-handle-drag);\\n}\\n\\n.BrushHandle-module_dot__vx-R8 {\\n fill: var(--color-on-background);\\n}\\n\\n.BrushHandle-module_line__1jJ7Y {\\n stroke: var(--color-handle);\\n}\\n\";\nvar css = {\n \"handle\": \"BrushHandle-module_handle__1HtKb\",\n \"dragging\": \"BrushHandle-module_dragging__k86sG\",\n \"dot\": \"BrushHandle-module_dot__vx-R8\",\n \"line\": \"BrushHandle-module_line__1jJ7Y\"\n};\nstyleInject(css_248z);\n\nvar BrushHandle = /*#__PURE__*/function (_React$PureComponent4) {\n _inherits(BrushHandle, _React$PureComponent4);\n\n var _super22 = _createSuper(BrushHandle);\n\n function BrushHandle() {\n var _this6;\n\n _classCallCheck(this, BrushHandle);\n\n _this6 = _super22.apply(this, arguments);\n _this6.state = {\n isDragging: false\n };\n return _this6;\n }\n\n _createClass(BrushHandle, [{\n key: \"onMoveStart\",\n value: function onMoveStart() {\n this.setState({\n isDragging: true\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(event) {\n this.props.onHandleDrag(event.x);\n }\n }, {\n key: \"onMoveEnd\",\n value: function onMoveEnd() {\n this.setState({\n isDragging: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var height = this.props.height;\n var isDragging = this.state.isDragging;\n return React__default['default'].createElement(Move, {\n cursor: \"ew-resize\",\n onMoveStart: bind__default['default'](this.onMoveStart, this),\n onMove: bind__default['default'](this.onMove, this),\n onMoveEnd: bind__default['default'](this.onMoveEnd, this)\n }, React__default['default'].createElement(\"g\", null, React__default['default'].createElement(\"line\", {\n className: css.line,\n y1: \"0\",\n y2: height,\n x1: \"5\",\n x2: \"5\"\n }), React__default['default'].createElement(\"rect\", {\n className: classNames__default['default'](css.handle, _defineProperty({}, css.dragging, isDragging)),\n height: height - 10,\n style: {\n cursor: 'ew-resize'\n },\n width: 8,\n y: \"5\",\n y1: height - 5\n }), React__default['default'].createElement(\"g\", {\n transform: \"translate(-1, \".concat(height / 2 - 10, \")\"),\n style: {\n pointerEvents: 'none'\n }\n }, d3Array.range(5).map(function (i) {\n return React__default['default'].createElement(\"circle\", {\n cy: i * 5,\n cx: \"5\",\n r: \".5\",\n key: i,\n className: css.dot\n });\n }))));\n }\n }]);\n\n return BrushHandle;\n}(React.PureComponent);\n\nvar css_248z$1 = \".BrushSlice-module_slice__sa839 {\\n fill: var(--color-primary);\\n}\\n\\n.BrushSlice-module_unsliced__1Ls_5 {\\n fill: var(--color-background);\\n opacity: 0.5;\\n pointer-events: none;\\n}\\n\";\nvar css$1 = {\n \"slice\": \"BrushSlice-module_slice__sa839\",\n \"unsliced\": \"BrushSlice-module_unsliced__1Ls_5\"\n};\nstyleInject(css_248z$1);\n\nvar BrushSlice = /*#__PURE__*/function (_React$PureComponent5) {\n _inherits(BrushSlice, _React$PureComponent5);\n\n var _super23 = _createSuper(BrushSlice);\n\n function BrushSlice() {\n var _this7;\n\n _classCallCheck(this, BrushSlice);\n\n _this7 = _super23.apply(this, arguments);\n _this7.state = {\n isDragging: false\n };\n return _this7;\n }\n\n _createClass(BrushSlice, [{\n key: \"onMoveStart\",\n value: function onMoveStart() {\n var _this$props25 = this.props,\n start = _this$props25.start,\n end = _this$props25.end,\n width = _this$props25.width;\n var hasNoSlice = start === 0 && end === width;\n\n if (!hasNoSlice) {\n this.setState({\n isDragging: true\n });\n }\n }\n }, {\n key: \"onMove\",\n value: function onMove(_ref3) {\n var x = _ref3.x;\n var _this$props26 = this.props,\n onBrushChange = _this$props26.onBrushChange,\n width = _this$props26.width;\n var _this$props27 = this.props,\n start = _this$props27.start,\n end = _this$props27.end;\n start = start + x;\n end = end + x;\n\n if (start >= 0 && end <= width) {\n onBrushChange({\n start: start,\n end: end\n });\n }\n }\n }, {\n key: \"onMoveEnd\",\n value: function onMoveEnd() {\n this.setState({\n isDragging: false\n });\n }\n }, {\n key: \"onHandleDrag\",\n value: function onHandleDrag(direction, deltaX) {\n var onBrushChange = this.props.onBrushChange;\n var _this$props28 = this.props,\n start = _this$props28.start,\n end = _this$props28.end;\n start = direction === 'start' ? start + deltaX : start;\n end = direction !== 'start' ? end + deltaX : end;\n onBrushChange({\n start: start,\n end: end\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props29 = this.props,\n height = _this$props29.height,\n start = _this$props29.start,\n end = _this$props29.end,\n width = _this$props29.width;\n var isDragging = this.state.isDragging;\n var sliceWidth = Math.max(end - start, 0);\n var endSliceWidth = Math.max(width - end, 0);\n var hasNoSlice = start === 0 && end === width;\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"rect\", {\n className: css$1.unsliced,\n height: height,\n width: start\n }), React__default['default'].createElement(\"rect\", {\n transform: \"translate(\".concat(end, \", 0)\"),\n className: css$1.unsliced,\n height: height,\n width: endSliceWidth\n }), React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(start, \", 0)\")\n }, React__default['default'].createElement(Move, {\n cursor: \"grabbing\",\n onMoveStart: bind__default['default'](this.onMoveStart, this),\n onMove: bind__default['default'](this.onMove, this),\n onMoveEnd: bind__default['default'](this.onMoveEnd, this)\n }, React__default['default'].createElement(\"rect\", {\n className: css$1.slice,\n height: height,\n width: sliceWidth,\n style: {\n cursor: isDragging ? 'grabbing' : 'grab',\n opacity: hasNoSlice ? 0 : 0.1,\n pointerEvents: !hasNoSlice ? 'initial' : 'none'\n }\n })), React__default['default'].createElement(\"g\", {\n transform: 'translate(-4, 0)'\n }, React__default['default'].createElement(BrushHandle, {\n height: height,\n onHandleDrag: bind__default['default'](this.onHandleDrag, this, 'start')\n })), React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(sliceWidth - 5, \", 0)\")\n }, React__default['default'].createElement(BrushHandle, {\n height: height,\n onHandleDrag: bind__default['default'](this.onHandleDrag, this, 'end')\n }))));\n }\n }]);\n\n return BrushSlice;\n}(React.PureComponent);\n\nvar Brush = /*#__PURE__*/function (_React$PureComponent6) {\n _inherits(Brush, _React$PureComponent6);\n\n var _super24 = _createSuper(Brush);\n\n function Brush(props) {\n var _this8;\n\n _classCallCheck(this, Brush);\n\n _this8 = _super24.call(this, props);\n _this8.state = {\n isSlicing: false,\n isPanning: false,\n start: props.start || 0,\n end: props.end || props.width\n };\n return _this8;\n }\n\n _createClass(Brush, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // If no brush is defined and width updates, update the offset of the end handle.\n if (prevProps.width !== this.props.width && this.state.end === prevProps.width) {\n this.setState({\n end: this.props.width\n });\n } // Don't update if we are doing the slicing\n\n\n if (!this.state.isSlicing && !this.state.isPanning) {\n var _this$props30 = this.props,\n start = _this$props30.start,\n end = _this$props30.end;\n var startUpdated = start !== prevProps.start && start !== this.state.start;\n var endUpdated = end !== prevProps.end && end !== this.state.end;\n\n if (startUpdated || endUpdated) {\n this.setState(Object.assign({}, this.ensurePositionInBounds(start, end)));\n }\n }\n }\n }, {\n key: \"getStartEnd\",\n value: function getStartEnd(event) {\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n var _this$getPositionsFor = this.getPositionsForPanEvent(event),\n x = _this$getPositionsFor.x;\n\n var start;\n var end;\n\n if (x < state.initial) {\n start = x;\n end = state.initial;\n } else {\n start = state.initial;\n end = x;\n }\n\n return this.ensurePositionInBounds(start, end, state);\n }\n }, {\n key: \"getPositionsForPanEvent\",\n value: function getPositionsForPanEvent(event) {\n var eventObj = {\n target: this.ref,\n clientX: event.clientX,\n clientY: event.clientY\n };\n return getPositionForTarget(eventObj);\n }\n }, {\n key: \"ensurePositionInBounds\",\n value: function ensurePositionInBounds(newStart, newEnd) {\n var state = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.state;\n var width = this.props.width;\n var start = newStart;\n var end = newEnd;\n\n if (start === undefined || start <= 0) {\n start = 0;\n }\n\n if (end === undefined) {\n end = width;\n }\n\n if (start > end) {\n start = state.start;\n }\n\n if (end < start) {\n end = state.end;\n }\n\n if (end >= width) {\n end = width;\n }\n\n return {\n start: start,\n end: end\n };\n }\n }, {\n key: \"onMoveStart\",\n value: function onMoveStart(event) {\n var positions = this.getPositionsForPanEvent(event.nativeEvent);\n this.setState({\n isSlicing: true,\n initial: positions.x\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(event) {\n var _this9 = this;\n\n this.setState(function (prev) {\n var onBrushChange = _this9.props.onBrushChange; // Use setState callback so we can get the true previous value\n // rather than the bulk updated value react will trigger\n\n var _this9$getStartEnd = _this9.getStartEnd(event.nativeEvent, prev),\n start = _this9$getStartEnd.start,\n end = _this9$getStartEnd.end;\n\n if (onBrushChange) {\n onBrushChange({\n start: start,\n end: end\n });\n }\n\n return {\n start: start,\n end: end\n };\n });\n }\n }, {\n key: \"onMoveEnd\",\n value: function onMoveEnd() {\n this.setState({\n isSlicing: false\n });\n }\n }, {\n key: \"onMoveCancel\",\n value: function onMoveCancel() {\n var val = {\n start: 0,\n end: this.props.width\n };\n this.setState(val);\n\n if (this.props.onBrushChange) {\n this.props.onBrushChange(val);\n }\n }\n }, {\n key: \"onSliceChange\",\n value: function onSliceChange(event) {\n var val = this.ensurePositionInBounds(event.start, event.end);\n this.setState(val);\n\n if (this.props.onBrushChange) {\n this.props.onBrushChange(val);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n var _this$props31 = this.props,\n children = _this$props31.children,\n disabled = _this$props31.disabled,\n height = _this$props31.height,\n width = _this$props31.width;\n var _this$state = this.state,\n isSlicing = _this$state.isSlicing,\n start = _this$state.start,\n end = _this$state.end;\n return React__default['default'].createElement(Move, {\n cursor: \"crosshair\",\n onMoveStart: bind__default['default'](this.onMoveStart, this),\n onMove: bind__default['default'](this.onMove, this),\n onMoveEnd: bind__default['default'](this.onMoveEnd, this),\n onMoveCancel: bind__default['default'](this.onMoveCancel, this)\n }, React__default['default'].createElement(\"g\", {\n style: {\n pointerEvents: isSlicing ? 'none' : 'auto',\n cursor: disabled ? '' : 'crosshair'\n }\n }, children, !disabled && React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"rect\", {\n ref: function ref(_ref4) {\n return _this10.ref = _ref4;\n },\n height: height,\n width: width,\n opacity: 0\n }), start !== undefined && end !== undefined && React__default['default'].createElement(BrushSlice, {\n start: start,\n end: end,\n height: height,\n width: width,\n onBrushChange: bind__default['default'](this.onSliceChange, this)\n }))));\n }\n }]);\n\n return Brush;\n}(React.PureComponent);\n\nBrush.defaultProps = {\n disabled: false,\n height: 0,\n width: 0,\n onBrushChange: function onBrushChange() {\n return undefined;\n }\n};\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nvar ChartBrush = /*#__PURE__*/function (_React$Component19) {\n _inherits(ChartBrush, _React$Component19);\n\n var _super25 = _createSuper(ChartBrush);\n\n function ChartBrush() {\n _classCallCheck(this, ChartBrush);\n\n return _super25.apply(this, arguments);\n }\n\n _createClass(ChartBrush, [{\n key: \"getBrushOffset\",\n value: function getBrushOffset() {\n var start;\n var end;\n var _this$props32 = this.props,\n disabled = _this$props32.disabled,\n domain = _this$props32.domain,\n scale = _this$props32.scale;\n\n if (!disabled && domain) {\n start = scale(domain[0]);\n end = scale(domain[1]);\n }\n\n return {\n start: start,\n end: end\n };\n }\n }, {\n key: \"onBrushChange\",\n value: function onBrushChange(event) {\n var _this$props33 = this.props,\n onBrushChange = _this$props33.onBrushChange,\n scale = _this$props33.scale,\n width = _this$props33.width;\n\n if (onBrushChange) {\n var domain;\n\n if (event.start !== undefined && event.end !== undefined && (event.start !== 0 || event.end !== width)) {\n var start = scale.invert(event.start);\n var end = scale.invert(event.end);\n domain = [start, end];\n }\n\n onBrushChange({\n domain: domain\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _a = this.props,\n scale = _a.scale,\n height = _a.height,\n width = _a.width,\n children = _a.children,\n rest = __rest(_a, [\"scale\", \"height\", \"width\", \"children\"]);\n\n return React__default['default'].createElement(Brush, Object.assign({}, rest, this.getBrushOffset(), {\n height: height,\n width: width,\n onBrushChange: bind__default['default'](this.onBrushChange, this)\n }), children);\n }\n }]);\n\n return ChartBrush;\n}(React.Component);\n\nChartBrush.defaultProps = {};\n/**\r\n * Given a margins object, returns the top/left/right/bottom positions.\r\n */\n\nfunction parseMargins(margins) {\n var top = 0;\n var right = 0;\n var bottom = 0;\n var left = 0;\n\n if (Array.isArray(margins)) {\n if (margins.length === 2) {\n top = margins[0];\n bottom = margins[0];\n left = margins[1];\n right = margins[1];\n } else if (margins.length === 4) {\n top = margins[0];\n right = margins[1];\n bottom = margins[2];\n left = margins[3];\n }\n } else if (margins !== undefined) {\n top = margins;\n right = margins;\n bottom = margins;\n left = margins;\n }\n\n return {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n}\n/**\r\n * Calculates the margins for the chart.\r\n */\n\n\nfunction calculateMarginOffsets(height, width, margins) {\n var left = margins.left,\n right = margins.right,\n bottom = margins.bottom,\n top = margins.top;\n var newHeight = height - top - bottom;\n var newWidth = width - left - right;\n return {\n height: newHeight,\n width: newWidth\n };\n}\n/**\r\n * Calculates the dimensions for the chart.\r\n */\n\n\nfunction getDimension(_ref5) {\n var xOffset = _ref5.xOffset,\n yOffset = _ref5.yOffset,\n height = _ref5.height,\n width = _ref5.width,\n margins = _ref5.margins;\n var parsedMargins = parseMargins(margins);\n var marginDims = calculateMarginOffsets(height, width, parsedMargins);\n var chartWidth = marginDims.width - xOffset;\n var chartHeight = marginDims.height - yOffset;\n return {\n xOffset: xOffset,\n yOffset: yOffset,\n height: height,\n width: width,\n chartWidth: chartWidth,\n chartHeight: chartHeight,\n xMargin: xOffset + parsedMargins.left,\n yMargin: parsedMargins.top\n };\n}\n\nvar ChartContainer = function ChartContainer(_a) {\n var className = _a.className,\n children = _a.children,\n center = _a.center,\n centerX = _a.centerX,\n centerY = _a.centerY,\n style = _a.style,\n margins = _a.margins,\n xAxisVisible = _a.xAxisVisible,\n yAxisVisible = _a.yAxisVisible,\n id = _a.id,\n rest = __rest(_a, [\"className\", \"children\", \"center\", \"centerX\", \"centerY\", \"style\", \"margins\", \"xAxisVisible\", \"yAxisVisible\", \"id\"]);\n\n var curId = id || rdk.useId();\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n xAxisSized = _React$useState2[0],\n setXAxisSized = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n yAxisSized = _React$useState4[0],\n setYAxisSized = _React$useState4[1];\n\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n xOffset = _React$useState6[0],\n setYOffset = _React$useState6[1];\n\n var _React$useState7 = React.useState(0),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n yOffset = _React$useState8[0],\n setXOffset = _React$useState8[1];\n\n var _useDimensions__defau = useDimensions__default['default'](),\n ref = _useDimensions__defau.ref,\n width = _useDimensions__defau.width,\n height = _useDimensions__defau.height;\n\n var chartSized = React.useMemo(function () {\n if (!height || !width) {\n return false;\n } // TODO: @amcdnl refactor this to account for 0-2 axises on x/y\n\n\n if (xAxisVisible && !xAxisSized) {\n return false;\n }\n\n if (yAxisVisible && !yAxisSized) {\n return false;\n }\n\n return true;\n }, [height, width, xAxisSized, xAxisVisible, yAxisVisible, yAxisSized]);\n var onUpdateAxes = React.useCallback(function (orientation, event) {\n if (orientation === 'horizontal') {\n setXAxisSized(true);\n } else {\n setYAxisSized(true);\n }\n\n if (event.height) {\n setYOffset(event.height);\n }\n\n if (event.width) {\n setXOffset(event.width);\n }\n }, []);\n var childProps = React.useMemo(function () {\n return Object.assign({\n chartSized: chartSized,\n id: curId,\n updateAxes: onUpdateAxes,\n yAxisSized: yAxisSized,\n xAxisSized: xAxisSized\n }, getDimension({\n margins: margins,\n height: height,\n width: width,\n yOffset: yOffset,\n xOffset: xOffset\n }));\n }, [chartSized, id, onUpdateAxes, yAxisSized, xAxisSized, margins, height, width, yOffset, xOffset]);\n var translateX = center || centerX ? width / 2 : childProps.xMargin;\n var translateY = center || centerY ? height / 2 : childProps.yMargin;\n var styleHeight = rest.height || '100%';\n var styleWidth = rest.width || '100%';\n return React__default['default'].createElement(\"div\", {\n ref: ref,\n style: {\n height: styleHeight,\n width: styleWidth\n }\n }, height > 0 && width > 0 && React__default['default'].createElement(\"svg\", {\n width: width,\n height: height,\n className: className,\n style: style\n }, React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(translateX, \", \").concat(translateY, \")\")\n }, children(childProps))));\n};\n\nvar humanFormatScale = new humanFormat__default['default'].Scale({\n k: 1000,\n M: 1000000,\n B: 1000000000\n});\nvar humanFormatMillionScale = new humanFormat__default['default'].Scale({\n M: 1,\n B: 1000,\n T: 1000000\n});\nvar ONE_MILLION = 1000000;\nvar ONE_BILLION = 1000000000;\n\nvar humanFormatBigInteger = function humanFormatBigInteger(bigInteger) {\n if (bigInteger.greater(ONE_BILLION)) {\n return humanFormat__default['default'](bigInteger.divide(ONE_MILLION).toJSNumber(), {\n scale: humanFormatMillionScale\n });\n }\n\n return humanFormat__default['default'](bigInteger.toJSNumber(), {\n scale: humanFormatScale\n });\n};\n\nvar bigIntegerToLocaleString = function bigIntegerToLocaleString(bigInteger) {\n var i = 0;\n var formattedString = '';\n\n var _iterator2 = _createForOfIteratorHelper(bigInteger.toString().split('').reverse()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var c = _step2.value;\n\n if (i > 0 && i % 3 === 0) {\n formattedString = ',' + formattedString;\n }\n\n formattedString = c + formattedString;\n i++;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return formattedString;\n};\n\nfunction normalizeValue(value, maxBigInt) {\n if (bigInt__default['default'].isInstance(value)) {\n if (maxBigInt.greater(1000000)) {\n var divideBy = maxBigInt.divide(1000000);\n return value.divide(divideBy).toJSNumber();\n } else {\n return value.toJSNumber();\n }\n } else {\n return value;\n }\n}\n\nfunction normalizeValueForFormatting(value) {\n if (bigInt__default['default'].isInstance(value)) {\n return bigIntegerToLocaleString(value);\n }\n\n return value;\n}\n\nfunction getMaxBigIntegerForNested(series) {\n var maxBigInteger = bigInt__default['default'].one;\n\n var _iterator3 = _createForOfIteratorHelper(series),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var group = _step3.value;\n var maxBigIntegerForGroup = getMaxBigIntegerForShallow(group.data);\n\n if (maxBigIntegerForGroup.greater(maxBigInteger)) {\n maxBigInteger = maxBigIntegerForGroup;\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return maxBigInteger;\n}\n\nfunction getMaxBigIntegerForShallow(series) {\n var maxBigInteger = bigInt__default['default'].one;\n\n var _iterator4 = _createForOfIteratorHelper(series),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var point = _step4.value;\n\n if (bigInt__default['default'].isInstance(point.data)) {\n var bigInteger = point.data;\n\n if (bigInteger.greater(maxBigInteger)) {\n maxBigInteger = bigInteger;\n }\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return maxBigInteger;\n}\n/**\r\n * Accepts a `ChartDataShape` and transforms it to a chart readable data shape.\r\n *\r\n * Example:\r\n *\r\n * [{\r\n * key: 'Threat Intel',\r\n * data: [{ key:'2011', data: 25 }]\r\n * }]\r\n *\r\n * will be transformed to:\r\n *\r\n * [{\r\n * key: 'Threat Intel',\r\n * data: [\r\n * key: 'Threat Intel',\r\n * x: '2011',\r\n * y: 25\r\n * ]\r\n * }]\r\n */\n\n\nfunction buildNestedChartData(series) {\n var sort = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'vertical';\n var result = [];\n var maxBigInteger = getMaxBigIntegerForNested(series);\n var isVertical = direction === 'vertical';\n\n var _iterator5 = _createForOfIteratorHelper(series),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var point = _step5.value;\n\n var _iterator6 = _createForOfIteratorHelper(point.data),\n _step6;\n\n try {\n var _loop = function _loop() {\n var nestedPoint = _step6.value;\n var key = normalizeValueForFormatting(point.key);\n var idx = result.findIndex(function (r) {\n var left = r.key;\n\n if (left instanceof Date && key instanceof Date) {\n return left.getTime() === key.getTime();\n }\n\n return left === key;\n });\n\n if (idx === -1) {\n result.push({\n key: key,\n metadata: point.metadata,\n data: []\n });\n idx = result.length - 1;\n }\n\n var x = normalizeValue(isVertical ? nestedPoint.key : nestedPoint.data, maxBigInteger);\n var y = normalizeValue(isVertical ? nestedPoint.data : nestedPoint.key, maxBigInteger);\n result[idx].data.push({\n key: key,\n value: normalizeValueForFormatting(nestedPoint.data),\n metadata: nestedPoint.metadata,\n id: point.id,\n x: x,\n x0: isVertical ? x : 0,\n x1: x,\n y: y,\n y0: isVertical ? 0 : y,\n y1: y\n });\n };\n\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n } // Sort the series data based on the median value\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n if (sort) {\n result = result.sort(function (a, b) {\n var aMax = d3Array.median(a.data, function (d) {\n return d.y;\n });\n var bMax = d3Array.median(b.data, function (d) {\n return d.y;\n });\n return aMax < bMax ? 1 : -1;\n });\n }\n\n return result;\n}\n\nfunction addToChartType(a, b) {\n if (bigInt__default['default'].isInstance(a) && bigInt__default['default'].isInstance(b)) {\n return a.add(b);\n } else if (a instanceof Date && typeof b === 'number') {\n return new Date(a.valueOf() + b);\n } else if (typeof a === 'number' && typeof b === 'number') {\n return a + b;\n } else {\n throw new Error('Invalid types to addToChartTypes');\n }\n}\n/**\r\n * Accepts a shallow shape and normalizes it to a chart readable format.\r\n */\n\n\nfunction buildShallowChartData(series) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'vertical';\n var binSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var result = [];\n var maxBigInteger = getMaxBigIntegerForShallow(series);\n var isVertical = direction === 'vertical';\n\n var _iterator7 = _createForOfIteratorHelper(series),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var point = _step7.value;\n var isTuple = Array.isArray(point.data);\n var k1 = point.key;\n\n if (binSize) {\n k1 = addToChartType(point.key, binSize);\n }\n\n var props = {\n k0: normalizeValue(point.key, maxBigInteger),\n k1: normalizeValue(k1, maxBigInteger),\n v0: normalizeValue(isTuple ? point.data[0] : 0, maxBigInteger),\n v1: normalizeValue(isTuple ? point.data[1] : point.data, maxBigInteger)\n };\n var xProp = isVertical ? 'k' : 'v';\n var yProp = isVertical ? 'v' : 'k';\n result.push({\n key: normalizeValueForFormatting(props.k0),\n value: normalizeValueForFormatting(props.v1),\n metadata: point.metadata,\n id: point.id,\n x: props[\"\".concat(xProp, \"1\")],\n x0: props[\"\".concat(xProp, \"0\")],\n x1: props[\"\".concat(xProp, \"1\")],\n y: props[\"\".concat(yProp, \"1\")],\n y0: props[\"\".concat(yProp, \"0\")],\n y1: props[\"\".concat(yProp, \"1\")]\n });\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return result;\n}\n/**\r\n * Build a histogram given data set.\r\n */\n\n\nfunction buildBins(xScale, thresholds, data) {\n var layout = d3Array.histogram().value(function (d) {\n return d.x;\n }).domain(xScale.domain()).thresholds(xScale.ticks(thresholds));\n var bins = layout(data);\n return bins.map(function (bin) {\n return {\n x0: bin.x0,\n x1: bin.x1,\n y: bin.length,\n y0: 0,\n y1: bin.length\n };\n });\n}\n/**\r\n * Given a dataset and a list of accessors, returns a unique collection.\r\n */\n\n\nfunction uniqueBy(data) {\n for (var _len = arguments.length, accessors = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n accessors[_key - 1] = arguments[_key];\n }\n\n var result = [];\n\n var ittr = function ittr(arr, depth) {\n var _iterator8 = _createForOfIteratorHelper(arr),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var a = _step8.value;\n var acc = accessors[depth];\n\n if (acc === undefined) {\n throw new Error(\"Accessor not found for depth: \".concat(depth));\n }\n\n var val = acc(a);\n\n if (Array.isArray(val)) {\n ittr(val, depth + 1);\n } else if (!result.includes(val)) {\n result.push(val);\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n };\n\n ittr(data, 0);\n return result;\n}\n/**\r\n * Given a dataset like:\r\n *\r\n * [{\r\n * key: 'Threat Intel',\r\n * data: [{ key:'2011', data: 25 }]\r\n * }]\r\n *\r\n * it will transform it to:\r\n *\r\n * [\r\n * { x: 'Theat Intel', '2011': 25 }\r\n * ]\r\n */\n\n\nfunction transformDataToStack(data) {\n var result = [];\n var maxBigInteger = getMaxBigIntegerForNested(data);\n\n var _iterator9 = _createForOfIteratorHelper(data),\n _step9;\n\n try {\n var _loop2 = function _loop2() {\n var category = _step9.value;\n\n var _iterator10 = _createForOfIteratorHelper(category.data),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var value = _step10.value;\n var idx = result.findIndex(function (r) {\n if (r.x instanceof Date && category.key instanceof Date) {\n return r.x.getTime() === category.key.getTime();\n }\n\n return r.x === category.key;\n });\n\n if (idx === -1) {\n result.push({\n metadata: category.metadata,\n x: category.key,\n formattedValues: {}\n });\n idx = result.length - 1;\n }\n\n result[idx][value.key] = normalizeValue(value.data, maxBigInteger);\n result[idx].formattedValues[value.key] = normalizeValueForFormatting(value.data);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n };\n\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n _loop2();\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return result;\n}\n/**\r\n * Translates the stack data to a chart standard dataset.\r\n */\n\n\nfunction transformStackToData(stackData) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'vertical';\n var result = [];\n var isVertical = direction === 'vertical'; // Transform the data from the d3 stack format to our internal format\n\n var _iterator11 = _createForOfIteratorHelper(stackData),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var category = _step11.value;\n\n var _iterator12 = _createForOfIteratorHelper(category),\n _step12;\n\n try {\n var _loop3 = function _loop3() {\n var point = _step12.value;\n var key = point.data.x;\n var idx = result.findIndex(function (r) {\n if (r.key instanceof Date && key instanceof Date) {\n return r.key.getTime() === key.getTime();\n }\n\n return r.key === key;\n });\n\n if (idx === -1) {\n result.push({\n key: key,\n data: []\n });\n idx = result.length - 1;\n }\n\n var categoryKey = category.key;\n var y = point.data[categoryKey];\n\n var _point = _slicedToArray(point, 2),\n y0 = _point[0],\n y1 = _point[1];\n\n result[idx].data.push({\n metadata: point.data.metadata,\n key: key,\n x: isVertical ? categoryKey : y1,\n x0: isVertical ? categoryKey : y0,\n x1: isVertical ? categoryKey : y1,\n y: isVertical ? y : categoryKey,\n y0: isVertical ? y0 : categoryKey,\n y1: isVertical ? y1 : categoryKey,\n value: point.data.formattedValues[categoryKey]\n });\n };\n\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n _loop3();\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n return result;\n}\n/**\r\n * Builds a stack dataset from the standard data format.\r\n */\n\n\nfunction buildBarStackData(data) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'vertical';\n var keys = uniqueBy(data, function (d) {\n return d.data;\n }, function (d) {\n return d.key;\n });\n var stackData = transformDataToStack(data);\n var stackFn = d3Shape.stack();\n\n if (offset === 'expand') {\n stackFn = stackFn.offset(d3Shape.stackOffsetExpand);\n } else if (offset === 'diverging') {\n stackFn = stackFn.offset(d3Shape.stackOffsetDiverging);\n }\n\n var result = stackFn.keys(keys)(stackData);\n return transformStackToData(result, direction);\n}\n/**\r\n * Builds a stack dataset from the standard data format.\r\n */\n\n\nfunction buildMarimekkoData(data) {\n var result = buildBarStackData(data, 'expand');\n var sums = {}; // Calculate the sum for each series and the total sum\n\n var totalSum = 0;\n\n var _iterator13 = _createForOfIteratorHelper(result),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var series = _step13.value;\n var sum = series.data.reduce(function (acc, cur) {\n return acc + cur.y;\n }, 0);\n sums[series.key] = sum;\n totalSum += sum;\n } // Calculate the x0/x1 for each series\n\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n var prev = 0;\n\n var _iterator14 = _createForOfIteratorHelper(result),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var _series = _step14.value;\n var x0 = prev;\n var x1 = prev + sums[_series.key] / totalSum;\n prev = x1;\n\n var _iterator15 = _createForOfIteratorHelper(_series.data),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var point = _step15.value;\n point.x0 = x0;\n point.x1 = x1;\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n return result;\n}\n/**\r\n * Given a dataset like:\r\n *\r\n * [{\r\n * key: 'Threat Intel',\r\n * data: [{ key:'2011', data: 25 }]\r\n * }]\r\n *\r\n * it will transform it to:\r\n *\r\n * [\r\n * { x: '2011', 'Theat Intel': 25 }\r\n * ]\r\n */\n\n\nfunction transformDataToStack$1(data) {\n var result = [];\n var maxBigInteger = getMaxBigIntegerForNested(data);\n\n var _iterator16 = _createForOfIteratorHelper(data),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var category = _step16.value;\n\n var _iterator17 = _createForOfIteratorHelper(category.data),\n _step17;\n\n try {\n var _loop4 = function _loop4() {\n var value = _step17.value;\n var idx = result.findIndex(function (r) {\n if (r.x instanceof Date && value.key instanceof Date) {\n return r.x.getTime() === value.key.getTime();\n }\n\n return r.x === value.key;\n });\n\n if (idx === -1) {\n result.push({\n x: value.key,\n formattedValues: {}\n });\n idx = result.length - 1;\n }\n\n result[idx][category.key] = normalizeValue(value.data, maxBigInteger);\n result[idx].formattedValues[category.key] = normalizeValueForFormatting(value.data);\n };\n\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n _loop4();\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n\n return result;\n}\n/**\r\n * Translates the stack data to a chart standard dataset.\r\n */\n\n\nfunction transformStackToData$1(stackData) {\n var result = [];\n\n var _iterator18 = _createForOfIteratorHelper(stackData),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var category = _step18.value;\n var series = [];\n\n var _iterator19 = _createForOfIteratorHelper(category),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var point = _step19.value;\n\n var _point2 = _slicedToArray(point, 2),\n y0 = _point2[0],\n y1 = _point2[1];\n\n var x = point.data.x;\n series.push({\n key: category.key,\n x: x,\n x0: x,\n x1: x,\n y: y1 - y0,\n y0: y0,\n y1: y1,\n value: point.data.formattedValues[category.key]\n });\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n\n result.push({\n key: category.key,\n data: series\n });\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n\n return result;\n}\n/**\r\n * Builds a stack dataset from the standard data format.\r\n */\n\n\nfunction buildStackData(data) {\n var normalized = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var keys = uniqueBy(data, function (d) {\n return d.key;\n });\n var stackData = transformDataToStack$1(data);\n var stackFn = !normalized ? d3Shape.stack() : d3Shape.stack().offset(d3Shape.stackOffsetExpand);\n var result = stackFn.keys(keys)(stackData);\n return transformStackToData$1(result);\n}\n\nvar buildWaterfall = function buildWaterfall(series) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'vertical';\n var binSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var data = buildShallowChartData(series, direction, binSize);\n var isVertical = direction === 'vertical';\n var v = isVertical ? 'y' : 'x';\n var cumulative = 0;\n\n var _iterator20 = _createForOfIteratorHelper(data),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var point = _step20.value;\n point[\"\".concat(v, \"0\")] = cumulative;\n cumulative += point[v];\n point[\"\".concat(v, \"1\")] = cumulative;\n point[v] = cumulative;\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n\n return data;\n};\n\nvar Pan = /*#__PURE__*/function (_React$Component20) {\n _inherits(Pan, _React$Component20);\n\n var _super26 = _createSuper(Pan);\n\n function Pan() {\n var _this11;\n\n _classCallCheck(this, Pan);\n\n _this11 = _super26.apply(this, arguments);\n _this11.prevXPosition = 0;\n _this11.prevYPosition = 0;\n _this11.started = false;\n _this11.deltaX = 0;\n _this11.deltaY = 0;\n _this11.childRef = React.createRef();\n\n _this11.onMouseDown = function (event) {\n // Stop at disabled\n if (_this11.props.disabled) {\n return;\n } // Ignore right click\n\n\n if (event.which === 3) {\n return;\n } // If global panning is turned off, it will only pan on the container\n\n\n if (!_this11.props.globalPanning && event.target && !event.target.classList.contains('pan-container')) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n toggleTextSelection(false);\n _this11.started = false; // Always bind event so we cancel movement even if no action was taken\n\n window.addEventListener('mousemove', _this11.onMouseMove);\n window.addEventListener('mouseup', _this11.onMouseUp);\n };\n\n _this11.onMouseMove = function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this11.deltaX = _this11.deltaX + event.movementX;\n _this11.deltaY = _this11.deltaY + event.movementY;\n\n if (_this11.checkThreshold()) {\n if (_this11.props.cursor) {\n document.body.style['cursor'] = _this11.props.cursor;\n }\n\n _this11.deltaX = 0;\n _this11.deltaY = 0;\n _this11.started = true;\n\n _this11.onPanStart(event, 'mouse');\n } else {\n _this11.pan(event.movementX, event.movementY, event, 'mouse');\n }\n };\n\n _this11.onMouseUp = function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this11.disposeHandlers();\n\n toggleTextSelection(true);\n\n if (_this11.started) {\n _this11.onPanEnd(event, 'mouse');\n } else {\n _this11.props.onPanCancel({\n nativeEvent: event,\n source: 'mouse'\n });\n }\n };\n\n _this11.onTouchStart = function (event) {\n // Stop at disabled\n if (_this11.props.disabled) {\n return;\n } // Reqquire more than one touch\n\n\n if (event.touches.length !== 1) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n toggleTextSelection(false);\n _this11.started = false;\n _this11.prevXPosition = event.touches[0].clientX;\n _this11.prevYPosition = event.touches[0].clientY; // Always bind event so we cancel movement even if no action was taken\n\n window.addEventListener('touchmove', _this11.onTouchMove);\n window.addEventListener('touchend', _this11.onTouchEnd);\n };\n\n _this11.onTouchMove = function (event) {\n event.preventDefault();\n event.stopPropagation(); // Calculate delta from previous position and current\n\n var x = event.touches[0].clientX;\n var y = event.touches[0].clientY;\n var deltaX = x - _this11.prevXPosition;\n var deltaY = y - _this11.prevYPosition;\n _this11.deltaX = _this11.deltaX + deltaX;\n _this11.deltaY = _this11.deltaY + deltaY;\n\n if (_this11.checkThreshold()) {\n _this11.deltaX = 0;\n _this11.deltaY = 0;\n _this11.started = true;\n\n _this11.onPanStart(event, 'touch');\n } else {\n var contrained = _this11.pan(deltaX, deltaY, event, 'touch');\n\n if (!contrained) {\n _this11.prevXPosition = x;\n _this11.prevYPosition = y;\n }\n }\n };\n\n _this11.onTouchEnd = function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this11.disposeHandlers();\n\n toggleTextSelection(true);\n\n if (_this11.started) {\n _this11.onPanEnd(event, 'touch');\n } else {\n _this11.props.onPanCancel({\n nativeEvent: event,\n source: 'touch'\n });\n }\n };\n\n return _this11;\n }\n\n _createClass(Pan, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.childRef.current) {\n this.childRef.current.addEventListener('mousedown', this.onMouseDown, {\n passive: false\n });\n this.childRef.current.addEventListener('touchstart', this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.disposeHandlers();\n\n if (this.childRef.current) {\n this.childRef.current.removeEventListener('mousedown', this.onMouseDown);\n this.childRef.current.removeEventListener('touchstart', this.onTouchStart);\n }\n }\n }, {\n key: \"disposeHandlers\",\n value: function disposeHandlers() {\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseup', this.onMouseUp);\n window.removeEventListener('touchmove', this.onTouchMove);\n window.removeEventListener('touchend', this.onTouchEnd); // Reset cursor on body back to original\n\n document.body.style['cursor'] = 'inherit';\n toggleTextSelection(true);\n }\n }, {\n key: \"checkThreshold\",\n value: function checkThreshold() {\n var threshold = this.props.threshold;\n return !this.started && (Math.abs(this.deltaX) > threshold || Math.abs(this.deltaY) > threshold);\n }\n }, {\n key: \"onPanStart\",\n value: function onPanStart(nativeEvent, source) {\n this.props.onPanStart({\n nativeEvent: nativeEvent,\n source: source\n });\n }\n }, {\n key: \"onPanMove\",\n value: function onPanMove(x, y, source, nativeEvent) {\n this.props.onPanMove({\n source: source,\n nativeEvent: nativeEvent,\n x: x,\n y: y\n });\n }\n }, {\n key: \"onPanEnd\",\n value: function onPanEnd(nativeEvent, source) {\n var onPanEnd = this.props.onPanEnd;\n onPanEnd({\n nativeEvent: nativeEvent,\n source: source\n });\n }\n }, {\n key: \"pan\",\n value: function pan(x, y, nativeEvent, source) {\n var _this$props34 = this.props,\n scale = _this$props34.scale,\n constrain = _this$props34.constrain,\n width = _this$props34.width,\n height = _this$props34.height,\n matrix = _this$props34.matrix;\n var newMatrix = transformationMatrix.smoothMatrix(transformationMatrix.transform(matrix, transformationMatrix.translate(x / scale, y / scale)), 100);\n var shouldConstrain = constrain && constrainMatrix(height, width, newMatrix);\n\n if (!shouldConstrain) {\n this.onPanMove(newMatrix.e, newMatrix.f, source, nativeEvent);\n }\n\n return shouldConstrain;\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(\"g\", {\n ref: this.childRef\n }, this.props.children);\n }\n }]);\n\n return Pan;\n}(React.Component);\n\nPan.defaultProps = {\n x: 0,\n y: 0,\n disabled: false,\n scale: 1,\n threshold: 10,\n globalPanning: true,\n onPanStart: function onPanStart() {\n return undefined;\n },\n onPanMove: function onPanMove() {\n return undefined;\n },\n onPanEnd: function onPanEnd() {\n return undefined;\n },\n onPanCancel: function onPanCancel() {\n return undefined;\n }\n};\n/**\r\n * Gets the position between a given set of points.\r\n */\n\nvar getMidpoint = function getMidpoint(pointA, pointB) {\n return {\n x: (pointA.x + pointB.x) / 2,\n y: (pointA.y + pointB.y) / 2\n };\n};\n/**\r\n * Gets the distance between a given set of points.\r\n */\n\n\nvar getDistanceBetweenPoints = function getDistanceBetweenPoints(pointA, pointB) {\n return Math.sqrt(Math.pow(pointB.y - pointA.y, 2) + Math.pow(pointB.x - pointA.x, 2));\n};\n/**\r\n * Get touch points.\r\n */\n\n\nfunction getTouchPoints(event, node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n left = _node$getBoundingClie.left,\n top = _node$getBoundingClie.top;\n\n var _map = _toConsumableArray(event.touches).map(function (touch) {\n return {\n x: touch.clientX - Math.round(left),\n y: touch.clientY - Math.round(top)\n };\n }),\n _map2 = _slicedToArray(_map, 2),\n pointA = _map2[0],\n pointB = _map2[1];\n\n var distance = getDistanceBetweenPoints(pointA, pointB);\n var midpoint = getMidpoint(pointA, pointB);\n return {\n pointA: pointA,\n pointB: pointB,\n distance: distance,\n midpoint: midpoint\n };\n}\n\nvar Zoom = /*#__PURE__*/function (_React$Component21) {\n _inherits(Zoom, _React$Component21);\n\n var _super27 = _createSuper(Zoom);\n\n function Zoom() {\n var _this12;\n\n _classCallCheck(this, Zoom);\n\n _this12 = _super27.apply(this, arguments);\n _this12.childRef = React.createRef();\n\n _this12.onMouseWheel = function (event) {\n var _this12$props = _this12.props,\n disableMouseWheel = _this12$props.disableMouseWheel,\n requireZoomModifier = _this12$props.requireZoomModifier,\n matrix = _this12$props.matrix,\n onZoomEnd = _this12$props.onZoomEnd;\n\n if (disableMouseWheel) {\n return false;\n }\n\n var hasModifier = event.metaKey || event.ctrlKey;\n\n if (requireZoomModifier && !hasModifier) {\n return false;\n }\n\n event.preventDefault();\n event.stopPropagation();\n var point = getPointFromMatrix(event, matrix);\n\n if (point) {\n var x = point.x,\n y = point.y;\n\n var step = _this12.getStep(event.deltaY);\n\n _this12.scale(x, y, step, event); // Do small timeout to 'guess' when its done zooming\n\n\n clearTimeout(_this12.timeout);\n _this12.timeout = setTimeout(function () {\n return onZoomEnd();\n }, 500);\n }\n };\n\n _this12.onTouchStart = function (event) {\n if (event.touches.length === 2) {\n event.preventDefault();\n event.stopPropagation();\n toggleTextSelection(false);\n _this12.firstTouch = getTouchPoints(event, _this12.childRef.current);\n _this12.lastDistance = _this12.firstTouch.distance;\n window.addEventListener('touchmove', _this12.onTouchMove);\n window.addEventListener('touchend', _this12.onTouchEnd);\n }\n };\n\n _this12.onTouchMove = function (event) {\n if (event.touches.length === 2) {\n event.preventDefault();\n event.stopPropagation();\n\n var _getTouchPoints = getTouchPoints(event, _this12.childRef.current),\n distance = _getTouchPoints.distance;\n\n var distanceFactor = distance / _this12.lastDistance;\n var point = transformationMatrix.applyToPoint(transformationMatrix.inverse(_this12.props.matrix), {\n x: _this12.firstTouch.midpoint.x,\n y: _this12.firstTouch.midpoint.y\n });\n\n if (point.x && point.y) {\n var outside = _this12.scale(point.x, point.y, distanceFactor, event);\n\n if (!outside) {\n _this12.lastDistance = distance;\n }\n }\n }\n };\n\n _this12.onTouchEnd = function (event) {\n event.preventDefault();\n event.stopPropagation();\n window.removeEventListener('touchmove', _this12.onTouchMove);\n window.removeEventListener('touchend', _this12.onTouchEnd);\n toggleTextSelection(true);\n\n _this12.props.onZoomEnd();\n };\n\n return _this12;\n }\n\n _createClass(Zoom, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props35 = this.props,\n disabled = _this$props35.disabled,\n disableMouseWheel = _this$props35.disableMouseWheel;\n var ref = this.childRef.current;\n\n if (!disabled && ref) {\n if (!disableMouseWheel) {\n ref.addEventListener('mousewheel', this.onMouseWheel, {\n passive: false\n });\n }\n\n ref.addEventListener('touchstart', this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('touchmove', this.onTouchMove);\n window.removeEventListener('touchend', this.onTouchEnd);\n cancelAnimationFrame(this.rqf);\n clearTimeout(this.timeout);\n var ref = this.childRef.current;\n\n if (ref) {\n ref.removeEventListener('mousewheel', this.onMouseWheel);\n ref.removeEventListener('touchstart', this.onTouchStart);\n }\n\n toggleTextSelection(true);\n }\n }, {\n key: \"getStep\",\n value: function getStep(delta) {\n var scaleFactor = this.props.scaleFactor;\n return -delta > 0 ? scaleFactor + 1 : 1 - scaleFactor;\n }\n }, {\n key: \"scale\",\n value: function scale(x, y, step, nativeEvent) {\n var _this$props36 = this.props,\n minZoom = _this$props36.minZoom,\n maxZoom = _this$props36.maxZoom,\n onZoom = _this$props36.onZoom,\n matrix = _this$props36.matrix;\n var outside = isZoomLevelGoingOutOfBounds({\n d: matrix.a,\n scaleFactorMin: minZoom,\n scaleFactorMax: maxZoom\n }, step);\n\n if (!outside) {\n var newMatrix = transformationMatrix.smoothMatrix(transformationMatrix.transform(matrix, transformationMatrix.translate(x, y), transformationMatrix.scale(step, step), transformationMatrix.translate(-x, -y)), 100);\n this.rqf = requestAnimationFrame(function () {\n onZoom({\n scale: newMatrix.a,\n x: newMatrix.e,\n y: newMatrix.f,\n nativeEvent: nativeEvent\n });\n });\n }\n\n return outside;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props37 = this.props,\n style = _this$props37.style,\n children = _this$props37.children;\n return React__default['default'].createElement(\"g\", {\n ref: this.childRef,\n style: style\n }, children);\n }\n }]);\n\n return Zoom;\n}(React.Component);\n\nZoom.defaultProps = {\n x: 0,\n y: 0,\n scale: 1,\n scaleFactor: 0.1,\n minZoom: 1,\n maxZoom: 10\n};\nvar css_248z$2 = \".DiscreteLegend-module_container__MpmKP {\\n display: flex;\\n overflow: auto;\\n}\\n\\n .DiscreteLegend-module_container__MpmKP.DiscreteLegend-module_horizontal__3Mt5B {\\n align-items: center;\\n flex-direction: row;\\n }\\n\\n .DiscreteLegend-module_container__MpmKP.DiscreteLegend-module_vertical__M1d-S {\\n flex-direction: column;\\n }\\n\";\nvar css$2 = {\n \"container\": \"DiscreteLegend-module_container__MpmKP\",\n \"horizontal\": \"DiscreteLegend-module_horizontal__3Mt5B\",\n \"vertical\": \"DiscreteLegend-module_vertical__M1d-S\"\n};\nstyleInject(css_248z$2);\n\nvar DiscreteLegend = /*#__PURE__*/function (_React$Component22) {\n _inherits(DiscreteLegend, _React$Component22);\n\n var _super28 = _createSuper(DiscreteLegend);\n\n function DiscreteLegend() {\n _classCallCheck(this, DiscreteLegend);\n\n return _super28.apply(this, arguments);\n }\n\n _createClass(DiscreteLegend, [{\n key: \"render\",\n value: function render() {\n var _classNames__default$2;\n\n var _this$props38 = this.props,\n entries = _this$props38.entries,\n orientation = _this$props38.orientation,\n style = _this$props38.style;\n var className = classNames__default['default'](css$2.container, this.props.className, (_classNames__default$2 = {}, _defineProperty(_classNames__default$2, css$2.horizontal, orientation === 'horizontal'), _defineProperty(_classNames__default$2, css$2.vertical, orientation === 'vertical'), _classNames__default$2));\n return React__default['default'].createElement(\"div\", {\n className: className,\n style: style\n }, entries.map(function (entry, index) {\n return React__default['default'].createElement(rdk.CloneElement, {\n element: entry,\n key: \"dle-\".concat(index)\n });\n }));\n }\n }]);\n\n return DiscreteLegend;\n}(React.Component);\n\nDiscreteLegend.defaultProps = {\n orientation: 'vertical'\n};\nvar css_248z$3 = \".DiscreteLegendSymbol-module_symbol__1n4Gb {\\n width: 15px;\\n height: 3px;\\n}\\n\";\nvar css$3 = {\n \"symbol\": \"DiscreteLegendSymbol-module_symbol__1n4Gb\"\n};\nstyleInject(css_248z$3);\n\nvar DiscreteLegendSymbol = /*#__PURE__*/function (_React$PureComponent7) {\n _inherits(DiscreteLegendSymbol, _React$PureComponent7);\n\n var _super29 = _createSuper(DiscreteLegendSymbol);\n\n function DiscreteLegendSymbol() {\n _classCallCheck(this, DiscreteLegendSymbol);\n\n return _super29.apply(this, arguments);\n }\n\n _createClass(DiscreteLegendSymbol, [{\n key: \"render\",\n value: function render() {\n var _this$props39 = this.props,\n className = _this$props39.className,\n color = _this$props39.color;\n return React__default['default'].createElement(\"div\", {\n className: classNames__default['default'](css$3.symbol, className),\n style: {\n background: color\n }\n });\n }\n }]);\n\n return DiscreteLegendSymbol;\n}(React.PureComponent);\n\nDiscreteLegendSymbol.defaultProps = {};\nvar css_248z$4 = \".DiscreteLegendEntry-module_entry__2kjdn {\\n display: flex;\\n color: var(--color-on-primary);\\n padding: 8px;\\n will-change: transparency;\\n transition: opacity 150ms ease-in;\\n}\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ {\\n flex-direction: column;\\n text-align: center;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ:first-child {\\n padding-top: 0;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ:last-child {\\n padding-bottom: 0;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ svg {\\n display: block;\\n margin: 0 auto;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv {\\n align-items: center;\\n flex-direction: row;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv:first-child {\\n padding-left: 0;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv:last-child {\\n padding-right: 0;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv .DiscreteLegendEntry-module_label__2e4-v {\\n margin-left: 8px;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn .DiscreteLegendEntry-module_label__2e4-v {\\n font-size: 12px;\\n }\\n\\n .DiscreteLegendEntry-module_entry__2kjdn svg {\\n width: 15px;\\n height: 15px;\\n }\\n\";\nvar css$4 = {\n \"entry\": \"DiscreteLegendEntry-module_entry__2kjdn\",\n \"vertical\": \"DiscreteLegendEntry-module_vertical__2LxhZ\",\n \"horizontal\": \"DiscreteLegendEntry-module_horizontal__37dGv\",\n \"label\": \"DiscreteLegendEntry-module_label__2e4-v\"\n};\nstyleInject(css_248z$4);\n\nvar DiscreteLegendEntry = /*#__PURE__*/function (_React$Component23) {\n _inherits(DiscreteLegendEntry, _React$Component23);\n\n var _super30 = _createSuper(DiscreteLegendEntry);\n\n function DiscreteLegendEntry() {\n _classCallCheck(this, DiscreteLegendEntry);\n\n return _super30.apply(this, arguments);\n }\n\n _createClass(DiscreteLegendEntry, [{\n key: \"render\",\n value: function render() {\n var _classNames__default$3;\n\n var _this$props40 = this.props,\n label = _this$props40.label,\n symbol = _this$props40.symbol,\n onMouseEnter = _this$props40.onMouseEnter,\n onMouseLeave = _this$props40.onMouseLeave,\n title = _this$props40.title,\n color = _this$props40.color,\n style = _this$props40.style,\n onClick = _this$props40.onClick,\n orientation = _this$props40.orientation;\n var className = classNames__default['default'](css$4.entry, this.props.className, (_classNames__default$3 = {}, _defineProperty(_classNames__default$3, css$4.vertical, orientation === 'vertical'), _defineProperty(_classNames__default$3, css$4.horizontal, orientation === 'horizontal'), _classNames__default$3));\n return React__default['default'].createElement(\"div\", {\n title: title,\n className: className,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n style: style\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: symbol,\n color: color\n }), React__default['default'].createElement(\"span\", {\n className: css$4.label\n }, label));\n }\n }]);\n\n return DiscreteLegendEntry;\n}(React.Component);\n\nDiscreteLegendEntry.defaultProps = {\n symbol: React__default['default'].createElement(DiscreteLegendSymbol, null),\n orientation: 'horizontal',\n onMouseEnter: function onMouseEnter() {\n return undefined;\n },\n onMouseLeave: function onMouseLeave() {\n return undefined;\n },\n onClick: function onClick() {\n return undefined;\n }\n};\nvar css_248z$5 = \".SequentialLegend-module_container__2EkZd {\\n display: flex;\\n height: 100%;\\n}\\n\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP {\\n flex-direction: column;\\n max-width: 55px;\\n }\\n\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP .SequentialLegend-module_start__1Pb9A,\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP .SequentialLegend-module_end__3RWw0 {\\n text-align: center;\\n padding: 5px 0;\\n width: 100%;\\n }\\n\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP .SequentialLegend-module_gradient__3aF0r {\\n width: 25px;\\n margin: 0 auto;\\n }\\n\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA {\\n flex-direction: row-reverse;\\n }\\n\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_start__1Pb9A,\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_end__3RWw0 {\\n max-width: 20%;\\n }\\n\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_start__1Pb9A {\\n text-align: right;\\n padding-left: 5px;\\n }\\n\\n .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_end__3RWw0 {\\n text-align: left;\\n padding-right: 5px;\\n }\\n\\n .SequentialLegend-module_container__2EkZd .SequentialLegend-module_gradient__3aF0r {\\n flex: 1;\\n width: 100%;\\n border-radius: 2px;\\n }\\n\\n .SequentialLegend-module_container__2EkZd .SequentialLegend-module_start__1Pb9A,\\n .SequentialLegend-module_container__2EkZd .SequentialLegend-module_end__3RWw0 {\\n color: var(--color-on-primary);\\n font-size: 12px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n }\\n\\n[dir=\\\"ltr\\\"] :export {\\n start-top: SequentialLegend-module_start__1Pb9A;\\n start-left: SequentialLegend-module_start__1Pb9A;\\n}\\n\\n[dir=\\\"rtl\\\"] :export {\\n start-top: SequentialLegend-module_start__1Pb9A;\\n start-right: SequentialLegend-module_start__1Pb9A;\\n}\\n\\n[dir=\\\"ltr\\\"] :export {\\n end-bottom: SequentialLegend-module_end__3RWw0;\\n end-right: SequentialLegend-module_end__3RWw0;\\n}\\n\\n[dir=\\\"rtl\\\"] :export {\\n end-bottom: SequentialLegend-module_end__3RWw0;\\n end-left: SequentialLegend-module_end__3RWw0;\\n}\\n\";\nvar css$5 = {\n \"container\": \"SequentialLegend-module_container__2EkZd\",\n \"vertical\": \"SequentialLegend-module_vertical__1DXNP\",\n \"gradient\": \"SequentialLegend-module_gradient__3aF0r\",\n \"horizontal\": \"SequentialLegend-module_horizontal__2Q9EA\"\n};\nstyleInject(css_248z$5);\n\nvar SequentialLegend = /*#__PURE__*/function (_React$PureComponent8) {\n _inherits(SequentialLegend, _React$PureComponent8);\n\n var _super31 = _createSuper(SequentialLegend);\n\n function SequentialLegend() {\n _classCallCheck(this, SequentialLegend);\n\n return _super31.apply(this, arguments);\n }\n\n _createClass(SequentialLegend, [{\n key: \"render\",\n value: function render() {\n var _classNames__default$4;\n\n var _this$props41 = this.props,\n orientation = _this$props41.orientation,\n className = _this$props41.className,\n style = _this$props41.style,\n colorScheme = _this$props41.colorScheme,\n data = _this$props41.data; // Generate the color gradient\n\n var color = chroma__default['default'].scale(colorScheme).colors(10).reverse().map(function (c, i) {\n return \"\".concat(c, \" \").concat(i * 10, \"%\");\n }).join(','); // Get the extent from the data passed\n\n var _d3Array$extent = d3Array.extent(uniqueBy(data, function (d) {\n return d.data;\n }, function (d) {\n return d.data;\n })),\n _d3Array$extent2 = _slicedToArray(_d3Array$extent, 2),\n end = _d3Array$extent2[0],\n start = _d3Array$extent2[1]; // Get direction\n\n\n var gradientDir = orientation === 'vertical' ? '' : 'to left,';\n return React__default['default'].createElement(\"div\", {\n style: style,\n className: classNames__default['default'](css$5.container, className, (_classNames__default$4 = {}, _defineProperty(_classNames__default$4, css$5.vertical, orientation === 'vertical'), _defineProperty(_classNames__default$4, css$5.horizontal, orientation === 'horizontal'), _classNames__default$4))\n }, React__default['default'].createElement(\"div\", {\n className: css$5.start\n }, formatValue(start)), React__default['default'].createElement(\"div\", {\n className: css$5.gradient,\n style: {\n background: \"linear-gradient(\".concat(gradientDir).concat(color, \")\")\n }\n }), React__default['default'].createElement(\"div\", {\n className: css$5.end\n }, formatValue(end)));\n }\n }]);\n\n return SequentialLegend;\n}(React.PureComponent);\n\nSequentialLegend.defaultProps = {\n colorScheme: ['rgba(28, 107, 86, 0.5)', '#2da283'],\n orientation: 'vertical'\n};\nvar css_248z$6 = \".Gridline-module_gridLine__1K6sy {\\n stroke-dasharray: 2 5;\\n shape-rendering: crispEdges;\\n pointer-events: none;\\n}\\n\";\nvar css$6 = {\n \"gridLine\": \"Gridline-module_gridLine__1K6sy\"\n};\nstyleInject(css_248z$6);\n\nvar Gridline = function Gridline(_ref6) {\n var _ref6$strokeWidth = _ref6.strokeWidth,\n strokeWidth = _ref6$strokeWidth === void 0 ? 1 : _ref6$strokeWidth,\n _ref6$direction = _ref6.direction,\n direction = _ref6$direction === void 0 ? 'all' : _ref6$direction,\n _ref6$strokeColor = _ref6.strokeColor,\n strokeColor = _ref6$strokeColor === void 0 ? 'rgba(153, 153, 153, 0.5)' : _ref6$strokeColor,\n data = _ref6.data,\n height = _ref6.height,\n width = _ref6.width,\n scale = _ref6.scale,\n strokeDasharray = _ref6.strokeDasharray;\n var coords = React.useMemo(function () {\n var pos = scale(data);\n\n if (direction === 'x') {\n return {\n x1: pos,\n x2: pos,\n y1: 0,\n y2: height\n };\n } else {\n return {\n y1: pos,\n y2: pos,\n x1: 0,\n x2: width\n };\n }\n }, [direction, data, height, width, scale]);\n return React__default['default'].createElement(\"line\", Object.assign({}, coords, {\n className: css$6.gridLine,\n strokeDasharray: strokeDasharray,\n strokeWidth: strokeWidth,\n stroke: strokeColor,\n fill: \"none\"\n }));\n};\n\nvar GridlineSeries = /*#__PURE__*/function (_React$Component24) {\n _inherits(GridlineSeries, _React$Component24);\n\n var _super32 = _createSuper(GridlineSeries);\n\n function GridlineSeries() {\n _classCallCheck(this, GridlineSeries);\n\n return _super32.apply(this, arguments);\n }\n\n _createClass(GridlineSeries, [{\n key: \"getGridlines\",\n value: function getGridlines() {\n var _this$props42 = this.props,\n yScale = _this$props42.yScale,\n xScale = _this$props42.xScale,\n yAxis = _this$props42.yAxis,\n xAxis = _this$props42.xAxis,\n height = _this$props42.height,\n width = _this$props42.width;\n return {\n yAxisGrid: _getTicks(yScale, yAxis.tickSeries.props.tickValues, yAxis.type, getMaxTicks(yAxis.tickSeries.props.tickSize, height), yAxis.tickSeries.props.interval),\n xAxisGrid: _getTicks(xScale, xAxis.tickSeries.props.tickValues, xAxis.type, getMaxTicks(xAxis.tickSeries.props.tickSize, width), xAxis.tickSeries.props.interval)\n };\n }\n }, {\n key: \"renderSeries\",\n value: function renderSeries(yAxisGrid, xAxisGrid, element, type) {\n var _this$props43 = this.props,\n xScale = _this$props43.xScale,\n yScale = _this$props43.yScale;\n return React__default['default'].createElement(React.Fragment, null, this.shouldRenderY(element.props.direction) && this.renderGroup(element, yAxisGrid, yScale, 'y', type), this.shouldRenderX(element.props.direction) && this.renderGroup(element, xAxisGrid, xScale, 'x', type));\n }\n }, {\n key: \"shouldRenderY\",\n value: function shouldRenderY(direction) {\n return direction === 'all' || direction === 'y';\n }\n }, {\n key: \"shouldRenderX\",\n value: function shouldRenderX(direction) {\n return direction === 'all' || direction === 'x';\n }\n }, {\n key: \"getSkipIndex\",\n value: function getSkipIndex(direction) {\n var _this$props44 = this.props,\n yAxis = _this$props44.yAxis,\n xAxis = _this$props44.xAxis;\n\n if (direction === 'x' && yAxis.axisLine !== null && yAxis.position === 'start' || direction === 'y' && xAxis.axisLine !== null && xAxis.position === 'end') {\n return 0;\n }\n\n return null;\n }\n }, {\n key: \"renderGroup\",\n value: function renderGroup(element, grid, scale, direction, type) {\n var _this$props45 = this.props,\n height = _this$props45.height,\n width = _this$props45.width;\n var skipIdx = this.getSkipIndex(direction);\n return grid.map(function (point, index) {\n return React__default['default'].createElement(React.Fragment, {\n key: \"\".concat(type, \"-\").concat(direction, \"-\").concat(index)\n }, index !== skipIdx && React__default['default'].createElement(rdk.CloneElement, {\n element: element,\n index: index,\n scale: scale,\n data: point,\n height: height,\n width: width,\n direction: direction\n }));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props46 = this.props,\n line = _this$props46.line,\n stripe = _this$props46.stripe;\n\n var _this$getGridlines = this.getGridlines(),\n yAxisGrid = _this$getGridlines.yAxisGrid,\n xAxisGrid = _this$getGridlines.xAxisGrid;\n\n return React__default['default'].createElement(\"g\", {\n style: {\n pointerEvents: 'none'\n }\n }, line && this.renderSeries(yAxisGrid, xAxisGrid, line, 'line'), stripe && this.renderSeries(yAxisGrid, xAxisGrid, stripe, 'stripe'));\n }\n }]);\n\n return GridlineSeries;\n}(React.Component);\n\nGridlineSeries.defaultProps = {\n line: React__default['default'].createElement(Gridline, {\n direction: \"all\"\n }),\n stripe: null\n};\nvar css_248z$7 = \".GridStripe-module_gridStripe__1UttV {\\n pointer-events: none;\\n}\\n\";\nvar css$7 = {\n \"gridStripe\": \"GridStripe-module_gridStripe__1UttV\"\n};\nstyleInject(css_248z$7);\n\nvar GridStripe = function GridStripe(_ref7) {\n var _ref7$fill = _ref7.fill,\n fill = _ref7$fill === void 0 ? '#393c3e' : _ref7$fill,\n position = _ref7.position,\n data = _ref7.data,\n height = _ref7.height,\n width = _ref7.width,\n scale = _ref7.scale,\n index = _ref7.index;\n var coords = React.useMemo(function () {\n var pos = scale(data);\n var stripeFill = index % 2 ? 'none' : fill;\n var dim = scale.bandwidth();\n\n if (position === 'vertical') {\n return {\n y: 0,\n x: pos,\n height: height,\n width: dim,\n fill: stripeFill\n };\n } else {\n return {\n y: pos,\n x: 0,\n height: dim,\n width: width,\n fill: stripeFill\n };\n }\n }, [scale, data, index, height, width, fill, position]);\n return React__default['default'].createElement(\"rect\", Object.assign({\n className: css$7.gridStripe\n }, coords));\n};\n\nvar css_248z$8 = \".MarkLine-module_markLine__2002U {\\n pointer-events: none;\\n stroke-dasharray: 4, 4;\\n stroke-linecap: round;\\n}\\n\";\nvar css$8 = {\n \"markLine\": \"MarkLine-module_markLine__2002U\"\n};\nstyleInject(css_248z$8);\n\nvar MarkLine = function MarkLine(_ref8) {\n var pointX = _ref8.pointX,\n height = _ref8.height,\n _ref8$strokeWidth = _ref8.strokeWidth,\n strokeWidth = _ref8$strokeWidth === void 0 ? 1 : _ref8$strokeWidth,\n _ref8$strokeColor = _ref8.strokeColor,\n strokeColor = _ref8$strokeColor === void 0 ? '#eee' : _ref8$strokeColor;\n return React__default['default'].createElement(\"line\", {\n stroke: strokeColor,\n strokeWidth: strokeWidth,\n y1: \"0\",\n vectorEffect: \"non-scaling-stroke\",\n y2: height,\n x1: pointX,\n x2: pointX,\n className: css$8.markLine\n });\n};\n\nvar GradientStop = function GradientStop(_ref9) {\n var color = _ref9.color,\n offset = _ref9.offset,\n _ref9$stopOpacity = _ref9.stopOpacity,\n stopOpacity = _ref9$stopOpacity === void 0 ? 1 : _ref9$stopOpacity;\n return React__default['default'].createElement(\"stop\", {\n offset: offset,\n stopOpacity: stopOpacity,\n stopColor: color\n });\n};\n\nvar Gradient = function Gradient(_ref10) {\n var id = _ref10.id,\n color = _ref10.color,\n _ref10$direction = _ref10.direction,\n direction = _ref10$direction === void 0 ? 'vertical' : _ref10$direction,\n _ref10$stops = _ref10.stops,\n stops = _ref10$stops === void 0 ? [React__default['default'].createElement(GradientStop, {\n offset: \"0%\",\n stopOpacity: 0.3,\n key: \"start\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"80%\",\n stopOpacity: 1,\n key: \"stop\"\n })] : _ref10$stops;\n var pos = direction === 'vertical' ? {\n x1: '10%',\n x2: '10%',\n y1: '100%',\n y2: '0%'\n } : {\n y1: '0%',\n y2: '0%',\n x1: '0%',\n x2: '100%'\n };\n return React__default['default'].createElement(\"linearGradient\", Object.assign({\n spreadMethod: \"pad\",\n id: id\n }, pos), stops.map(function (stop, index) {\n return React__default['default'].createElement(rdk.CloneElement, {\n element: stop,\n key: \"gradient-\".concat(index),\n color: stop.props.color || color\n });\n }));\n};\n\nvar RadialGradient = function RadialGradient(_ref11) {\n var id = _ref11.id,\n color = _ref11.color,\n _ref11$radius = _ref11.radius,\n radius = _ref11$radius === void 0 ? '30%' : _ref11$radius,\n _ref11$stops = _ref11.stops,\n stops = _ref11$stops === void 0 ? [React__default['default'].createElement(GradientStop, {\n offset: \"0%\",\n stopOpacity: 0.2,\n key: \"start\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"80%\",\n stopOpacity: 0.7,\n key: \"stop\"\n })] : _ref11$stops;\n return React__default['default'].createElement(\"radialGradient\", {\n id: id,\n cx: 0,\n cy: 0,\n r: radius,\n gradientUnits: \"userSpaceOnUse\"\n }, stops.map(function (stop, index) {\n return React__default['default'].createElement(rdk.CloneElement, {\n element: stop,\n key: \"gradient-\".concat(index),\n color: color\n });\n }));\n};\n\nvar Mask = /*#__PURE__*/function (_React$PureComponent9) {\n _inherits(Mask, _React$PureComponent9);\n\n var _super33 = _createSuper(Mask);\n\n function Mask() {\n _classCallCheck(this, Mask);\n\n return _super33.apply(this, arguments);\n }\n\n _createClass(Mask, [{\n key: \"render\",\n value: function render() {\n var _this$props47 = this.props,\n id = _this$props47.id,\n fill = _this$props47.fill;\n return React__default['default'].createElement(\"mask\", {\n id: id\n }, React__default['default'].createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n fill: fill\n }));\n }\n }]);\n\n return Mask;\n}(React.PureComponent);\n\nvar Stripes = /*#__PURE__*/function (_React$PureComponent10) {\n _inherits(Stripes, _React$PureComponent10);\n\n var _super34 = _createSuper(Stripes);\n\n function Stripes() {\n _classCallCheck(this, Stripes);\n\n return _super34.apply(this, arguments);\n }\n\n _createClass(Stripes, [{\n key: \"render\",\n value: function render() {\n var _this$props48 = this.props,\n id = _this$props48.id,\n fill = _this$props48.fill;\n return React__default['default'].createElement(\"pattern\", {\n id: id,\n width: \"4\",\n height: \"4\",\n patternUnits: \"userSpaceOnUse\",\n patternTransform: \"rotate(45)\"\n }, React__default['default'].createElement(\"rect\", {\n className: \"area-stripe\",\n width: \"1\",\n height: \"4\",\n fill: fill\n }));\n }\n }]);\n\n return Stripes;\n}(React.PureComponent);\n\nStripes.defaultProps = {};\nvar css_248z$9 = \".TooltipTemplate-module_label__1-9Eq {\\n font-size: 16px;\\n margin-bottom: 3px;\\n color: var(--color-on-background);\\n}\\n\\n.TooltipTemplate-module_value__3RhFW {\\n font-size: 13px;\\n color: var(--color-on-background);\\n opacity: 0.7;\\n}\\n\\n.TooltipTemplate-module_subValue__2jKhI {\\n display: block;\\n text-align: left;\\n padding: 3px 5px;\\n}\\n\\n.TooltipTemplate-module_subValue__2jKhI .TooltipTemplate-module_subValueColor__2Mkos {\\n width: 5px;\\n height: 15px;\\n margin-right: 8px;\\n display: inline-block;\\n }\\n\\n.TooltipTemplate-module_subValue__2jKhI .TooltipTemplate-module_subValueName__MtlOy {\\n margin-right: 5px;\\n }\\n\";\nvar css$9 = {\n \"label\": \"TooltipTemplate-module_label__1-9Eq\",\n \"value\": \"TooltipTemplate-module_value__3RhFW\",\n \"subValue\": \"TooltipTemplate-module_subValue__2jKhI\",\n \"subValueColor\": \"TooltipTemplate-module_subValueColor__2Mkos\",\n \"subValueName\": \"TooltipTemplate-module_subValueName__MtlOy\"\n};\nstyleInject(css_248z$9);\n\nvar TooltipTemplate = function TooltipTemplate(_ref12) {\n var value = _ref12.value,\n color = _ref12.color,\n className = _ref12.className;\n\n if (!value) {\n return null;\n }\n\n var renderValues = function renderValues(data, index) {\n var fill = color(data, index);\n return React__default['default'].createElement(\"span\", {\n className: css$9.subValue\n }, React__default['default'].createElement(\"span\", {\n className: css$9.subValueColor,\n style: {\n backgroundColor: fill\n }\n }), React__default['default'].createElement(\"span\", {\n className: css$9.subValueName\n }, formatValue(data.key || data.x), \":\"), React__default['default'].createElement(\"span\", null, formatValue(data.value || data.y)));\n };\n\n var renderMultiple = function renderMultiple(value) {\n var excessCount = value.data.length - 15;\n var pagedValues = value.data.slice(0, 15);\n return React__default['default'].createElement(React.Fragment, null, pagedValues.map(function (point, i) {\n return React__default['default'].createElement(React.Fragment, {\n key: i\n }, renderValues(point, i));\n }), excessCount > 0 && React__default['default'].createElement(\"div\", null, \"...\", excessCount, \" more...\"));\n };\n\n var isMultiple = Array.isArray(value.data);\n return React__default['default'].createElement(\"div\", {\n className: className,\n role: \"tooltip\"\n }, React__default['default'].createElement(\"div\", {\n className: css$9.label\n }, formatValue(value.x)), React__default['default'].createElement(\"div\", {\n className: css$9.value\n }, isMultiple && renderMultiple(value), !isMultiple && React__default['default'].createElement(React.Fragment, null, formatValue(value.value || value.y))));\n};\n\nvar ChartTooltip = function ChartTooltip(_a) {\n var _a$content = _a.content,\n _content = _a$content === void 0 ? React__default['default'].createElement(TooltipTemplate, null) : _a$content,\n value = _a.value,\n data = _a.data,\n color = _a.color,\n rest = __rest(_a, [\"content\", \"value\", \"data\", \"color\"]);\n\n return React__default['default'].createElement(realayers.Tooltip, Object.assign({}, rest, {\n content: function content() {\n if (!value && !data) {\n return null;\n }\n\n return typeof _content === 'function' ? _content(data || value, color) : React.cloneElement(_content, Object.assign(Object.assign({}, _content.props), {\n value: value,\n color: color\n }));\n }\n }));\n};\n\nvar TooltipArea = /*#__PURE__*/function (_React$Component25) {\n _inherits(TooltipArea, _React$Component25);\n\n var _super35 = _createSuper(TooltipArea);\n\n function TooltipArea() {\n var _this13;\n\n _classCallCheck(this, TooltipArea);\n\n _this13 = _super35.apply(this, arguments);\n _this13.state = {};\n _this13.ref = React.createRef();\n _this13.transformData = memoize__default['default'](function (series) {\n var _this13$props = _this13.props,\n inverse = _this13$props.inverse,\n isHorizontal = _this13$props.isHorizontal;\n var result = [];\n\n if (inverse) {\n var _iterator21 = _createForOfIteratorHelper(series),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var point = _step21.value;\n var seriesPoint = point;\n\n if (Array.isArray(seriesPoint.data)) {\n var _iterator22 = _createForOfIteratorHelper(seriesPoint.data),\n _step22;\n\n try {\n var _loop5 = function _loop5() {\n var nestedPoint = _step22.value;\n var right = nestedPoint.x;\n var idx = result.findIndex(function (r) {\n var left = r.x;\n\n if (left instanceof Date && right instanceof Date) {\n return left.getTime() === right.getTime();\n }\n\n return left === right;\n });\n\n if (idx === -1) {\n result.push({\n x: nestedPoint.x,\n data: []\n });\n idx = result.length - 1;\n }\n\n var data = result[idx].data;\n\n if (Array.isArray(data)) {\n data.push(nestedPoint);\n }\n };\n\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n _loop5();\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n } else {\n result.push(point);\n }\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n } else {\n var _iterator23 = _createForOfIteratorHelper(series),\n _step23;\n\n try {\n for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n var _point3 = _step23.value;\n var nestedPoint = _point3;\n\n if (Array.isArray(nestedPoint.data)) {\n result.push(Object.assign(Object.assign({}, nestedPoint), {\n x: nestedPoint.key,\n data: nestedPoint.data.map(function (d) {\n return Object.assign(Object.assign({}, d), {\n key: !isHorizontal ? d.x : d.y,\n value: !isHorizontal ? d.y : d.x\n });\n })\n }));\n } else {\n var shallowPoint = _point3;\n result.push(Object.assign(Object.assign({}, shallowPoint), {\n // Histograms special logic...\n x: shallowPoint.key === undefined ? shallowPoint.x0 : _point3.key,\n y: shallowPoint.value === undefined ? shallowPoint.y : shallowPoint.value\n }));\n }\n }\n } catch (err) {\n _iterator23.e(err);\n } finally {\n _iterator23.f();\n }\n }\n\n return result;\n });\n return _this13;\n }\n\n _createClass(TooltipArea, [{\n key: \"getXCoord\",\n value: function getXCoord(x, y) {\n var _this$props49 = this.props,\n isRadial = _this$props49.isRadial,\n width = _this$props49.width,\n height = _this$props49.height; // If the shape is radial, we need to convert the X coords to a radial format.\n\n if (isRadial) {\n var outerRadius = Math.min(width, height) / 2;\n var rad = Math.atan2(y - outerRadius, x - outerRadius) + Math.PI / 2; // TODO: Figure out what the 'correct' way to do this is...\n\n if (rad < 0) {\n rad += Math.PI * 2;\n }\n\n return rad;\n }\n\n return x;\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var _this$props50 = this.props,\n xScale = _this$props50.xScale,\n yScale = _this$props50.yScale,\n onValueEnter = _this$props50.onValueEnter,\n height = _this$props50.height,\n width = _this$props50.width,\n data = _this$props50.data,\n isRadial = _this$props50.isRadial,\n isHorizontal = _this$props50.isHorizontal,\n placement = _this$props50.placement;\n var value = this.state.value;\n var transformed = this.transformData(data); // Get our default placement\n\n var newPlacement = placement;\n\n if (!placement) {\n if (isHorizontal) {\n newPlacement = 'right';\n } else {\n newPlacement = 'top';\n }\n } // Get the path container element\n\n\n var target = this.ref.current;\n\n var _getPositionForTarget = getPositionForTarget({\n target: target,\n // Manually pass the x/y from the event\n clientX: event.clientX,\n clientY: event.clientY\n }),\n y = _getPositionForTarget.y,\n x = _getPositionForTarget.x; // Need to flip scales/coords if we are a horz layout\n\n\n var keyScale;\n var valueScale;\n var coord;\n\n if (isHorizontal) {\n keyScale = yScale;\n valueScale = xScale;\n coord = y;\n } else {\n coord = this.getXCoord(x, y);\n keyScale = xScale;\n valueScale = yScale;\n }\n\n var newValue = getClosestPoint(coord, keyScale, transformed);\n\n if (!isEqual__default['default'](newValue, value) && newValue) {\n var pointX = keyScale(newValue.x);\n var pointY = valueScale(newValue.y);\n var marginX = 0;\n var marginY = 0;\n\n if (isNaN(pointY)) {\n pointY = height / 2;\n marginX = 10;\n\n if (!placement) {\n newPlacement = 'right';\n }\n } else {\n marginY = -10;\n } // If the points didn't change, don't trigger an update\n\n\n if (pointX === this.prevX && pointY === this.prevY) {\n return;\n }\n\n this.prevY = pointY;\n this.prevX = pointX;\n var _target = event.target;\n\n var _target$getBoundingCl2 = _target.getBoundingClientRect(),\n top = _target$getBoundingCl2.top,\n left = _target$getBoundingCl2.left;\n\n var offsetX = 0;\n var offsetY = 0;\n\n if (isRadial) {\n // If its radial, we need to convert the coords to radial format\n var outerRadius = Math.min(width, height) / 2;\n offsetX = pointY * Math.cos(pointX - Math.PI / 2) + outerRadius;\n offsetY = pointY * Math.sin(pointX - Math.PI / 2) + outerRadius;\n } else {\n offsetX = pointX;\n offsetY = pointY;\n }\n\n offsetX += left + marginX;\n offsetY += top + marginY;\n this.setState({\n placement: newPlacement,\n visible: true,\n value: newValue,\n offsetX: offsetX,\n offsetY: offsetY\n });\n onValueEnter({\n visible: true,\n value: newValue,\n pointY: pointY,\n pointX: pointX,\n offsetX: offsetX,\n offsetY: offsetY,\n nativeEvent: event\n });\n }\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave() {\n this.prevX = undefined;\n this.prevY = undefined;\n this.setState({\n value: undefined,\n visible: false\n });\n this.props.onValueLeave();\n }\n }, {\n key: \"getTooltipReference\",\n value: function getTooltipReference() {\n var _this$state2 = this.state,\n offsetX = _this$state2.offsetX,\n offsetY = _this$state2.offsetY;\n return {\n width: 4,\n height: 4,\n top: offsetY,\n left: offsetX\n };\n }\n }, {\n key: \"renderRadial\",\n value: function renderRadial() {\n var _this$props51 = this.props,\n height = _this$props51.height,\n width = _this$props51.width,\n innerRadius = _this$props51.innerRadius,\n outerRadius = _this$props51.outerRadius;\n innerRadius = innerRadius || 0;\n outerRadius = outerRadius || Math.min(width, height) / 2;\n var d = d3Shape.arc()({\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: 180,\n endAngle: Math.PI / 2\n });\n return React__default['default'].createElement(\"path\", {\n d: d,\n opacity: \"0\",\n cursor: \"auto\",\n ref: this.ref,\n onMouseMove: bind__default['default'](this.onMouseMove, this)\n });\n }\n }, {\n key: \"renderLinear\",\n value: function renderLinear() {\n var _this$props52 = this.props,\n height = _this$props52.height,\n width = _this$props52.width;\n return React__default['default'].createElement(\"rect\", {\n height: height,\n ref: this.ref,\n width: width,\n opacity: 0,\n cursor: \"auto\",\n onMouseMove: bind__default['default'](this.onMouseMove, this)\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props53 = this.props,\n isRadial = _this$props53.isRadial,\n children = _this$props53.children,\n tooltip = _this$props53.tooltip,\n disabled = _this$props53.disabled,\n color = _this$props53.color;\n var _this$state3 = this.state,\n visible = _this$state3.visible,\n placement = _this$state3.placement,\n value = _this$state3.value;\n return React__default['default'].createElement(React.Fragment, null, disabled && children, !disabled && React__default['default'].createElement(\"g\", {\n onMouseLeave: bind__default['default'](this.onMouseLeave, this)\n }, isRadial && this.renderRadial(), !isRadial && this.renderLinear(), React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n visible: visible,\n placement: placement,\n modifiers: {\n offset: {\n offset: '0, 15px'\n }\n },\n reference: this.getTooltipReference(),\n color: color,\n value: value\n }), children));\n }\n }]);\n\n return TooltipArea;\n}(React.Component);\n\nTooltipArea.defaultProps = {\n isRadial: false,\n tooltip: React__default['default'].createElement(ChartTooltip, null),\n inverse: true,\n onValueEnter: function onValueEnter() {\n return undefined;\n },\n onValueLeave: function onValueLeave() {\n return undefined;\n }\n};\n/**\r\n * Gets the min/max values handling nested arrays.\r\n */\n\nfunction extent(data, attr) {\n var accessor = function accessor(val, fn) {\n if (Array.isArray(val.data)) {\n return fn(val.data, function (vv) {\n return vv[attr];\n });\n }\n\n return val[attr];\n };\n\n var minVal = d3Array.min(data, function (d) {\n return accessor(d, d3Array.min);\n });\n var maxVal = d3Array.max(data, function (d) {\n return accessor(d, d3Array.max);\n });\n return [minVal, maxVal];\n}\n/**\r\n * Get the domain for the Y Axis.\r\n */\n\n\nfunction getYDomain(_ref13) {\n var data = _ref13.data,\n _ref13$scaled = _ref13.scaled,\n scaled = _ref13$scaled === void 0 ? false : _ref13$scaled,\n _ref13$isDiverging = _ref13.isDiverging,\n isDiverging = _ref13$isDiverging === void 0 ? false : _ref13$isDiverging;\n\n var _extent = extent(data, 'y'),\n _extent2 = _slicedToArray(_extent, 2),\n startY = _extent2[0],\n endY = _extent2[1];\n\n var _extent3 = extent(data, 'y1'),\n _extent4 = _slicedToArray(_extent3, 2),\n startY1 = _extent4[0],\n endY1 = _extent4[1]; // If dealing w/ negative numbers, we should\n // normalize the top and bottom values\n\n\n if (startY < 0 || isDiverging) {\n var posStart = -startY;\n var maxNum = Math.max(posStart, endY);\n return [-maxNum, maxNum];\n } // Scaled start scale at non-zero\n\n\n if (scaled) {\n return [startY1, endY1];\n } // Start at 0 based\n\n\n return [0, endY1];\n}\n/**\r\n * Get the domain for the X Axis.\r\n */\n\n\nfunction getXDomain(_ref14) {\n var data = _ref14.data,\n _ref14$scaled = _ref14.scaled,\n scaled = _ref14$scaled === void 0 ? false : _ref14$scaled,\n _ref14$isDiverging = _ref14.isDiverging,\n isDiverging = _ref14$isDiverging === void 0 ? false : _ref14$isDiverging;\n var startX0 = extent(data, 'x0')[0];\n var endX1 = extent(data, 'x1')[1]; // Histograms use dates for start/end\n\n if (typeof startX0 === 'number' && typeof endX1 === 'number') {\n // If dealing w/ negative numbers, we should\n // normalize the top and bottom values\n if (startX0 < 0 || isDiverging) {\n var posStart = -startX0;\n var maxNum = Math.max(posStart, endX1);\n return [-maxNum, maxNum];\n } // If not scaled, return 0/max domains\n\n\n if (!scaled) {\n return [0, endX1];\n }\n } // Scaled start scale at non-zero\n\n\n return [startX0, endX1];\n}\n/**\r\n * Helper function for interpolation.\r\n */\n\n\nfunction interpolate(type) {\n if (type === 'smooth') {\n return d3Shape.curveMonotoneX;\n } else if (type === 'step') {\n return d3Shape.curveStep;\n } else {\n return d3Shape.curveLinear;\n }\n}\n/**\r\n * Calculates whether the stroke should be shown.\r\n */\n\n\nfunction calculateShowStroke(current, data) {\n var i = data.indexOf(current);\n var showLine = false;\n var prev = data[i - 1];\n\n if (i > 0 && prev.y) {\n showLine = true;\n }\n\n var cur = data[i];\n\n if (cur.y) {\n showLine = true;\n }\n\n var next = data[i + 1];\n\n if (i < data.length - 1 && next.y) {\n showLine = true;\n }\n\n return showLine;\n}\n/**\r\n * Get the angle from a radian.\r\n */\n\n\nvar getDegrees = function getDegrees(radians) {\n return radians / Math.PI * 180 - 90;\n};\n\nvar functionProps = function functionProps(prop, val, data) {\n if (typeof val === 'function') {\n return val(data);\n } else if (prop === 'className') {\n return classNames__default['default'](val);\n } else if (val !== undefined || val !== null) {\n return val;\n }\n\n return {};\n};\n\nvar constructFunctionProps = function constructFunctionProps(props, data) {\n return {\n className: functionProps('className', props.className, data),\n style: functionProps('style', props.style, data)\n };\n};\n\nvar ZoomPan = /*#__PURE__*/function (_React$Component26) {\n _inherits(ZoomPan, _React$Component26);\n\n var _super36 = _createSuper(ZoomPan);\n\n function ZoomPan() {\n var _this14;\n\n _classCallCheck(this, ZoomPan);\n\n _this14 = _super36.apply(this, arguments);\n _this14.zoomRef = React.createRef();\n _this14.panRef = React.createRef();\n _this14.state = {\n isZooming: false,\n isPanning: false,\n matrix: transformationMatrix.identity()\n };\n return _this14;\n }\n\n _createClass(ZoomPan, [{\n key: \"onPanStart\",\n value: function onPanStart(event) {\n this.setState({\n isPanning: true\n });\n this.props.onPanStart(event);\n }\n }, {\n key: \"onPanMove\",\n value: function onPanMove(event) {\n this.props.onZoomPan({\n scale: this.props.scale,\n x: event.x,\n y: event.y,\n type: 'pan',\n nativeEvent: event.nativeEvent\n });\n this.props.onPanMove(event);\n }\n }, {\n key: \"onPanEnd\",\n value: function onPanEnd(event) {\n this.setState({\n isPanning: false\n });\n this.props.onPanEnd(event);\n }\n }, {\n key: \"onZoom\",\n value: function onZoom(event) {\n this.props.onZoomPan({\n x: event.x,\n y: event.y,\n scale: event.scale,\n nativeEvent: event.nativeEvent,\n type: 'zoom'\n });\n this.props.onZoom(event);\n }\n }, {\n key: \"onZoomEnd\",\n value: function onZoomEnd() {\n this.setState({\n isZooming: false\n });\n this.props.onZoomEnd();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props54 = this.props,\n height = _this$props54.height,\n width = _this$props54.width,\n children = _this$props54.children,\n disabled = _this$props54.disabled,\n pannable = _this$props54.pannable,\n maxZoom = _this$props54.maxZoom,\n minZoom = _this$props54.minZoom,\n zoomable = _this$props54.zoomable,\n scale = _this$props54.scale,\n x = _this$props54.x,\n y = _this$props54.y,\n disableMouseWheel = _this$props54.disableMouseWheel,\n constrain = _this$props54.constrain,\n zoomStep = _this$props54.zoomStep,\n onPanCancel = _this$props54.onPanCancel,\n requireZoomModifier = _this$props54.requireZoomModifier,\n globalPanning = _this$props54.globalPanning;\n var _this$state4 = this.state,\n isZooming = _this$state4.isZooming,\n isPanning = _this$state4.isPanning;\n var cursor = pannable ? 'move' : 'auto';\n var selection = isZooming || isPanning ? 'none' : 'auto';\n var matrix = transformationMatrix.fromObject(this.state.matrix);\n return React__default['default'].createElement(Pan, {\n x: x,\n y: y,\n scale: scale,\n matrix: matrix,\n constrain: constrain,\n height: height,\n width: width,\n disabled: !pannable || disabled,\n ref: this.panRef,\n globalPanning: globalPanning,\n onPanStart: bind__default['default'](this.onPanStart, this),\n onPanMove: bind__default['default'](this.onPanMove, this),\n onPanEnd: bind__default['default'](this.onPanEnd, this),\n onPanCancel: onPanCancel\n }, React__default['default'].createElement(Zoom, {\n ref: this.zoomRef,\n disabled: !zoomable || disabled,\n scaleFactor: zoomStep,\n disableMouseWheel: disableMouseWheel,\n maxZoom: maxZoom,\n minZoom: minZoom,\n scale: scale,\n x: x,\n y: y,\n style: {\n cursor: cursor\n },\n requireZoomModifier: requireZoomModifier,\n matrix: matrix,\n onZoom: bind__default['default'](this.onZoom, this),\n onZoomEnd: bind__default['default'](this.onZoomEnd, this)\n }, !disabled && React__default['default'].createElement(\"rect\", {\n height: height,\n width: width,\n opacity: 0,\n className: \"pan-container\"\n }), React__default['default'].createElement(\"g\", {\n style: {\n pointerEvents: selection,\n userSelect: selection\n }\n }, children)));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n // TODO: the types in the library don't seem to be correct...\n var matrix = transformationMatrix.transform(transformationMatrix.fromDefinition([{\n type: 'translate',\n tx: props.x,\n ty: props.y\n }, {\n type: 'scale',\n sx: props.scale,\n sy: props.scale\n }]));\n\n if (!isEqual__default['default'](matrix, state.matrix)) {\n return {\n matrix: matrix\n };\n }\n\n return null;\n }\n }]);\n\n return ZoomPan;\n}(React.Component);\n\nZoomPan.defaultProps = {\n maxZoom: 10,\n minZoom: 0,\n zoomStep: 0.1,\n pannable: true,\n zoomable: true,\n constrain: true,\n height: 0,\n width: 0,\n x: 0,\n y: 0,\n scale: 1,\n globalPanning: true,\n onPanStart: function onPanStart() {\n return undefined;\n },\n onPanMove: function onPanMove() {\n return undefined;\n },\n onPanEnd: function onPanEnd() {\n return undefined;\n },\n onPanCancel: function onPanCancel() {\n return undefined;\n },\n onZoom: function onZoom() {\n return undefined;\n },\n onZoomEnd: function onZoomEnd() {\n return undefined;\n }\n};\n/**\r\n * Gets the X Scale function.\r\n */\n\nfunction getXScale(_ref15) {\n var type = _ref15.type,\n roundDomains = _ref15.roundDomains,\n data = _ref15.data,\n width = _ref15.width,\n domain = _ref15.domain,\n padding = _ref15.padding,\n scaled = _ref15.scaled,\n _ref15$isMultiSeries = _ref15.isMultiSeries,\n isMultiSeries = _ref15$isMultiSeries === void 0 ? false : _ref15$isMultiSeries,\n _ref15$isDiverging = _ref15.isDiverging,\n isDiverging = _ref15$isDiverging === void 0 ? false : _ref15$isDiverging;\n var scale;\n\n if (type === 'time' || type === 'duration' || type === 'value') {\n if (type === 'time') {\n scale = d3Scale.scaleTime().rangeRound([0, width]);\n } else {\n scale = d3Scale.scaleLinear().rangeRound([0, width]);\n }\n\n scale = scale.domain(domain || getXDomain({\n data: data,\n scaled: scaled,\n isDiverging: isDiverging\n }));\n } else {\n if (!domain) {\n if (isMultiSeries) {\n domain = uniqueBy(data, function (d) {\n return d.key;\n });\n } else {\n domain = uniqueBy(data, function (d) {\n return d.x;\n });\n }\n }\n\n scale = d3Scale.scaleBand().rangeRound([0, width]).padding(padding || 0).domain(domain);\n }\n\n return roundDomains ? scale.nice() : scale;\n}\n/**\r\n * Gets the Y Scale function.\r\n */\n\n\nfunction getYScale(_ref16) {\n var type = _ref16.type,\n height = _ref16.height,\n data = _ref16.data,\n domain = _ref16.domain,\n _ref16$roundDomains = _ref16.roundDomains,\n roundDomains = _ref16$roundDomains === void 0 ? false : _ref16$roundDomains,\n _ref16$scaled = _ref16.scaled,\n scaled = _ref16$scaled === void 0 ? false : _ref16$scaled,\n _ref16$padding = _ref16.padding,\n padding = _ref16$padding === void 0 ? 0 : _ref16$padding,\n _ref16$isMultiSeries = _ref16.isMultiSeries,\n isMultiSeries = _ref16$isMultiSeries === void 0 ? false : _ref16$isMultiSeries,\n _ref16$isDiverging = _ref16.isDiverging,\n isDiverging = _ref16$isDiverging === void 0 ? false : _ref16$isDiverging;\n var scale;\n\n if (type === 'time' || type === 'value' || type === 'duration') {\n scale = d3Scale.scaleLinear().range([height, 0]).domain(domain || getYDomain({\n data: data,\n scaled: scaled,\n isDiverging: isDiverging\n }));\n } else {\n if (!domain) {\n if (isMultiSeries) {\n domain = uniqueBy(data, function (d) {\n return d.key;\n });\n } else {\n domain = uniqueBy(data, function (d) {\n return d.y;\n });\n }\n }\n\n scale = d3Scale.scaleBand().rangeRound([height, 0]).padding(padding).domain(domain);\n }\n\n return roundDomains ? scale.nice() : scale;\n}\n/**\r\n * Get a linear scale for the mariemko chart.\r\n */\n\n\nvar getMarimekkoScale = function getMarimekkoScale(width, roundDomains) {\n var scale = d3Scale.scaleLinear().rangeRound([0, width]);\n return roundDomains ? scale.nice() : scale;\n};\n/**\r\n * Builds a fake scale function to get a group scale for a marimekko value scale.\r\n */\n\n\nvar getMarimekkoGroupScale = function getMarimekkoGroupScale(_ref17) {\n var data = _ref17.data,\n width = _ref17.width,\n valueScale = _ref17.valueScale,\n padding = _ref17.padding;\n var domain = uniqueBy(data, function (d) {\n return d.key;\n });\n var barCount = data.length;\n var widthMinusPadding = width - padding * (barCount - 1);\n var xMultiplier = widthMinusPadding / width; // Given a data series, find the x0/x1 for it.\n\n var getXRange = function getXRange(series) {\n var _series$data = _slicedToArray(series.data, 1),\n val = _series$data[0];\n\n var x0 = valueScale(val.x0);\n var x1 = valueScale(val.x1);\n return {\n x0: x0,\n x1: x1\n };\n };\n\n var scale = function scale(arg) {\n var result = 0;\n var index = data.findIndex(function (d) {\n return d.key === arg;\n });\n var series = data[index];\n\n if (series && series.data && series.data.length) {\n var _getXRange = getXRange(series),\n x1 = _getXRange.x1,\n x0 = _getXRange.x0;\n\n result = (x1 - x0) / 2 + x0;\n\n if (padding) {\n result = result * xMultiplier + index * padding;\n }\n }\n\n return result;\n };\n\n scale.range = function () {\n return [0, width];\n };\n\n scale.domain = function () {\n return domain;\n }; // Special invert function for marimekko\n\n\n scale.mariemkoInvert = function (offset) {\n var found;\n\n for (var i = 0; i < domain.length; i++) {\n var attr = domain[i];\n var series = data[i];\n\n var _getXRange2 = getXRange(series),\n x1 = _getXRange2.x1,\n x0 = _getXRange2.x0;\n\n if (offset >= x0 - padding / 2 && offset <= x1 - padding / 2) {\n found = attr;\n break;\n }\n }\n\n return found;\n };\n\n return scale;\n};\n/**\r\n * Get the group scale aka x0.\r\n */\n\n\nfunction getGroupScale(_ref18) {\n var dimension = _ref18.dimension,\n padding = _ref18.padding,\n data = _ref18.data,\n _ref18$direction = _ref18.direction,\n direction = _ref18$direction === void 0 ? 'vertical' : _ref18$direction;\n var domain = uniqueBy(data, function (d) {\n return d.key;\n });\n var spacing = domain.length / (dimension / padding + 1);\n var range = direction === 'vertical' ? [0, dimension] : [dimension, 0];\n return d3Scale.scaleBand().rangeRound(range).paddingInner(spacing).paddingOuter(spacing / 2).domain(domain);\n}\n/**\r\n * Get the inner scale aka x1.\r\n */\n\n\nfunction getInnerScale(_ref19) {\n var groupScale = _ref19.groupScale,\n padding = _ref19.padding,\n data = _ref19.data,\n _ref19$prop = _ref19.prop,\n prop = _ref19$prop === void 0 ? 'x' : _ref19$prop;\n var dimension = groupScale.bandwidth();\n var domain = uniqueBy(data, function (d) {\n return d.data;\n }, function (d) {\n return d[prop];\n });\n var spacing = domain.length / (dimension / padding + 1);\n return d3Scale.scaleBand().rangeRound([0, dimension]).paddingInner(spacing).domain(domain);\n}\n/**\r\n * Get the Y Scale for a given set of radiuses.\r\n * Reference: https://github.com/d3/d3-scale/issues/90\r\n */\n\n\nvar getRadialYScale = function getRadialYScale(innerRadius, outerRadius, domain) {\n if (domain[0] === 0 && domain[1] === 0) {\n // If all values are 0, set the domain to [0, 1], so the zero values are\n // all at the bottom of the chart, not the middle.\n domain = [0, 1];\n }\n\n var y = d3Scale.scaleLinear().range([innerRadius * innerRadius, outerRadius * outerRadius]).domain(domain);\n var yScale = Object.assign(function (d) {\n return Math.sqrt(y(d));\n }, y);\n return yScale;\n};\n\nvar ChartZoomPan = /*#__PURE__*/function (_React$Component27) {\n _inherits(ChartZoomPan, _React$Component27);\n\n var _super37 = _createSuper(ChartZoomPan);\n\n function ChartZoomPan() {\n _classCallCheck(this, ChartZoomPan);\n\n return _super37.apply(this, arguments);\n }\n\n _createClass(ChartZoomPan, [{\n key: \"onZoomPan\",\n value: function onZoomPan(event) {\n var _this$props55 = this.props,\n width = _this$props55.width,\n data = _this$props55.data,\n axisType = _this$props55.axisType,\n roundDomains = _this$props55.roundDomains,\n onZoomPan = _this$props55.onZoomPan;\n var can = event.type === 'zoom' || event.type === 'pan' && event.scale > 1;\n\n if (can) {\n var scale = getXScale({\n width: width,\n type: axisType,\n roundDomains: roundDomains,\n data: data\n });\n var newScale = scale.copy().domain(scale.range().map(function (x) {\n return (x - event.x) / event.scale;\n }).map(scale.clamp(true).invert, event.x));\n onZoomPan({\n domain: newScale.domain(),\n isZoomed: event.scale !== 1\n });\n }\n }\n }, {\n key: \"getOffset\",\n value: function getOffset() {\n var zoomOffset = {\n scale: undefined,\n x: undefined\n };\n var _this$props56 = this.props,\n disabled = _this$props56.disabled,\n domain = _this$props56.domain,\n width = _this$props56.width,\n data = _this$props56.data,\n axisType = _this$props56.axisType,\n roundDomains = _this$props56.roundDomains;\n\n if (!disabled && domain) {\n var xScale = getXScale({\n width: width,\n type: axisType,\n roundDomains: roundDomains,\n data: data\n });\n var offset = xScale(domain[0]);\n var endOffset = xScale(domain[1]);\n var scale = width / (endOffset - offset); // Apply the new scale to the offset so its scaled correctly\n\n offset = offset * scale;\n zoomOffset = {\n scale: scale,\n x: -offset\n };\n }\n\n return zoomOffset;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _a = this.props,\n data = _a.data,\n height = _a.height,\n children = _a.children,\n width = _a.width,\n onZoomPan = _a.onZoomPan,\n rest = __rest(_a, [\"data\", \"height\", \"children\", \"width\", \"onZoomPan\"]);\n\n var _this$getOffset2 = this.getOffset(),\n scale = _this$getOffset2.scale,\n x = _this$getOffset2.x;\n\n return React__default['default'].createElement(ZoomPan, Object.assign({}, rest, {\n scale: scale,\n x: x,\n height: height,\n width: width,\n pannable: scale > 1,\n onZoomPan: bind__default['default'](this.onZoomPan, this)\n }), children);\n }\n }]);\n\n return ChartZoomPan;\n}(React.Component);\n\nChartZoomPan.defaultProps = {\n onZoomPan: function onZoomPan() {\n return undefined;\n }\n};\nvar DEFAULT_TRANSITION = {\n type: 'spring',\n velocity: 5,\n damping: 20\n};\n\nvar MotionPath = function MotionPath(_a) {\n var custom = _a.custom,\n transition = _a.transition,\n rest = __rest(_a, [\"custom\", \"transition\"]);\n\n var d = framerMotion.useMotionValue(custom.exit.d);\n var prevPath = framerMotion.useMotionValue(custom.exit.d);\n var spring = framerMotion.useSpring(prevPath, Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n from: 0,\n to: 1\n }));\n React.useEffect(function () {\n var interpolator = d3Interpolate.interpolate(prevPath.get(), custom.enter.d);\n var unsub = spring.onChange(function (v) {\n return d.set(interpolator(v));\n });\n prevPath.set(custom.enter.d);\n return unsub;\n });\n\n var _b = custom.enter,\n enterD = _b.d,\n enterRest = __rest(_b, [\"d\"]);\n\n var _c = custom.exit,\n exitRest = __rest(_c, [\"d\"]);\n\n return React__default['default'].createElement(framerMotion.motion.path, Object.assign({}, rest, {\n initial: exitRest,\n exit: exitRest,\n animate: enterRest,\n transition: transition,\n d: transition.type !== false ? d : enterD\n }));\n};\n/**\r\n * Color Schemes\r\n * Credits: https://gka.github.io/chroma.js/#chroma-brewer\r\n */\n\n\nvar schemes = Object.assign({\n cybertron: chroma__default['default'].scale(['#2d60e8', '#26efb5']).correctLightness().colors(8)\n}, chroma__default['default'].brewer);\n/**\r\n * Given a point, get the key attributes for it.\r\n */\n\nvar rangeHelper = function rangeHelper(point, attribute) {\n return point.map(function (r, i) {\n if (r) {\n if (r[attribute] !== undefined) {\n return r[attribute];\n } else if (r.data && r.data[attribute] !== undefined) {\n return r.data[attribute];\n }\n }\n\n return i;\n });\n};\n/**\r\n * Get a color given a range.\r\n */\n\n\nvar _getColor = function getColor(props) {\n var _Object$assign = Object.assign({\n attribute: 'key',\n isMultiSeries: false,\n scale: d3Scale.scaleOrdinal\n }, props),\n point = _Object$assign.point,\n colorScheme = _Object$assign.colorScheme,\n attribute = _Object$assign.attribute,\n index = _Object$assign.index,\n data = _Object$assign.data,\n active = _Object$assign.active,\n isMultiSeries = _Object$assign.isMultiSeries,\n domain = _Object$assign.domain,\n key = _Object$assign.key,\n scale = _Object$assign.scale;\n\n if (typeof colorScheme === 'string' && schemes[colorScheme]) {\n colorScheme = schemes[colorScheme];\n }\n\n if (Array.isArray(colorScheme)) {\n if (!domain) {\n if (isMultiSeries && Array.isArray(data)) {\n var maxIdx = d3Array.maxIndex(data, function (d) {\n return d.data.length;\n });\n var maxVal = data[maxIdx];\n data = maxVal.data;\n }\n\n domain = rangeHelper(data, attribute);\n }\n\n key = key !== undefined ? key : point[attribute];\n return scale(colorScheme).domain(domain)(key);\n } else if (typeof colorScheme === 'function') {\n return colorScheme(point, index, active);\n } else {\n return colorScheme;\n }\n};\n\nvar css_248z$a = \".ScatterPoint-module_inactive__3ahvT {\\n opacity: 0.2;\\n}\\n\";\nvar css$a = {\n \"inactive\": \"ScatterPoint-module_inactive__3ahvT\"\n};\nstyleInject(css_248z$a);\n\nvar ScatterPoint = function ScatterPoint(_a) {\n var symbol = _a.symbol,\n index = _a.index,\n id = _a.id,\n data = _a.data,\n xScale = _a.xScale,\n yScale = _a.yScale,\n _a$active = _a.active,\n active = _a$active === void 0 ? true : _a$active,\n _a$tooltip = _a.tooltip,\n tooltip = _a$tooltip === void 0 ? React__default['default'].createElement(ChartTooltip, null) : _a$tooltip,\n _a$cursor = _a.cursor,\n cursor = _a$cursor === void 0 ? 'pointer' : _a$cursor,\n _a$size = _a.size,\n size = _a$size === void 0 ? 4 : _a$size,\n _a$color = _a.color,\n color = _a$color === void 0 ? schemes.cybertron[0] : _a$color,\n _a$animated = _a.animated,\n animated = _a$animated === void 0 ? true : _a$animated,\n _a$onClick = _a.onClick,\n _onClick = _a$onClick === void 0 ? function () {\n return undefined;\n } : _a$onClick,\n _a$onMouseEnter = _a.onMouseEnter,\n _onMouseEnter = _a$onMouseEnter === void 0 ? function () {\n return undefined;\n } : _a$onMouseEnter,\n _a$onMouseLeave = _a.onMouseLeave,\n _onMouseLeave = _a$onMouseLeave === void 0 ? function () {\n return undefined;\n } : _a$onMouseLeave,\n rest = __rest(_a, [\"symbol\", \"index\", \"id\", \"data\", \"xScale\", \"yScale\", \"active\", \"tooltip\", \"cursor\", \"size\", \"color\", \"animated\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\"]);\n\n var rectRef = React.useRef(null);\n\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n tooltipVisible = _React$useState10[0],\n setTooltipVisible = _React$useState10[1];\n\n var extras = React.useMemo(function () {\n return constructFunctionProps(rest, data);\n }, [rest, data]);\n var r = React.useMemo(function () {\n return typeof size === 'function' ? size(data) : size;\n }, [size, data]);\n var renderedSymbol = React.useMemo(function () {\n return symbol ? symbol(data) : null;\n }, [data, symbol]);\n var transitionProps = React.useMemo(function () {\n return animated ? Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: index * 0.005\n }) : {\n type: false,\n delay: 0\n };\n }, [index, animated]);\n var enterProps = React.useMemo(function () {\n var cy = yScale(data.y1);\n\n if (yScale.bandwidth) {\n var width = yScale.bandwidth();\n cy = cy + width / 2;\n }\n\n return {\n x: xScale(data.x),\n y: cy\n };\n }, [data, yScale]);\n var exitProps = React.useMemo(function () {\n var _yScale$domain = yScale.domain(),\n _yScale$domain2 = _slicedToArray(_yScale$domain, 1),\n yStartDomain = _yScale$domain2[0];\n\n return {\n y: yScale(yStartDomain),\n x: xScale(data.x)\n };\n }, [data, yScale]);\n var fill = React.useMemo(function () {\n return _getColor({\n colorScheme: color,\n index: index,\n point: data\n });\n }, [data, color, index]);\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"g\", {\n ref: rectRef,\n onMouseEnter: function onMouseEnter() {\n setTooltipVisible(true);\n\n _onMouseEnter(data);\n },\n onMouseLeave: function onMouseLeave() {\n setTooltipVisible(false);\n\n _onMouseLeave(data);\n },\n onClick: function onClick() {\n return _onClick(data);\n },\n className: classNames__default['default'](_defineProperty({}, css$a.inactive, !active))\n }, symbol ? React__default['default'].createElement(framerMotion.motion.g, Object.assign({\n key: \"symbol-\".concat(id, \"-\").concat(data.id)\n }, extras, {\n initial: {\n translateX: exitProps.x,\n translateY: exitProps.y,\n opacity: 0\n },\n animate: {\n translateX: enterProps.x,\n translateY: enterProps.y,\n opacity: 1\n },\n exit: {\n translateX: exitProps.x,\n translateY: exitProps.y,\n opacity: 0\n },\n transition: transitionProps\n }), renderedSymbol) : React__default['default'].createElement(framerMotion.motion.circle, {\n key: \"symbol-\".concat(id, \"-\").concat(data.id),\n className: extras.className,\n style: Object.assign(Object.assign({}, extras.style), {\n cursor: cursor\n }),\n initial: {\n cx: exitProps.x,\n cy: exitProps.y,\n fill: fill,\n r: r,\n opacity: 0\n },\n animate: {\n cx: enterProps.x,\n cy: enterProps.y,\n opacity: 1,\n fill: fill,\n r: r\n },\n exit: {\n cx: exitProps.x,\n cy: exitProps.y,\n fill: fill,\n r: r,\n opacity: 0\n },\n transition: transitionProps\n })), tooltip && !tooltip.props.disabled && React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n visible: tooltipVisible,\n reference: rectRef,\n value: data\n }));\n}; // For bubble charts, often symbols exceed the area\n// and we want to add a little bit of padding to prevent clipping\n\n\nvar PADDING = 25;\nvar HALF_PADDING = PADDING / 2;\n\nvar ScatterSeries = function ScatterSeries(_a) {\n var data = _a.data,\n height = _a.height,\n width = _a.width,\n id = _a.id,\n isZoomed = _a.isZoomed,\n activeIds = _a.activeIds,\n _a$point = _a.point,\n point = _a$point === void 0 ? React__default['default'].createElement(ScatterPoint, null) : _a$point,\n rest = __rest(_a, [\"data\", \"height\", \"width\", \"id\", \"isZoomed\", \"activeIds\", \"point\"]);\n\n var renderPoint = React.useCallback(function (pointData, index) {\n var pointId;\n\n if (pointData.id) {\n pointId = pointData.id;\n }\n\n var key = pointId || index;\n var active = !(activeIds && activeIds.length) || activeIds.includes(pointId);\n var visible = point.props.visible;\n\n if (visible && !visible(pointData, index)) {\n return React__default['default'].createElement(React.Fragment, {\n key: key\n });\n }\n\n return React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: point,\n key: key\n }, rest, {\n id: id,\n data: pointData,\n index: index,\n active: active\n }));\n }, [point, id, rest, activeIds]);\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"defs\", null, React__default['default'].createElement(\"clipPath\", {\n id: \"\".concat(id, \"-path\")\n }, React__default['default'].createElement(\"rect\", {\n width: isZoomed ? width : width + PADDING,\n height: height + PADDING,\n x: isZoomed ? 0 : -HALF_PADDING,\n y: -HALF_PADDING\n }))), React__default['default'].createElement(\"g\", {\n clipPath: \"url(#\".concat(id, \"-path)\")\n }, data.map(renderPoint)));\n};\n\nvar css_248z$b = \".ScatterPlot-module_scatterPlot__1gWRV {\\n overflow: visible;\\n}\\n\";\nvar css$b = {\n \"scatterPlot\": \"ScatterPlot-module_scatterPlot__1gWRV\"\n};\nstyleInject(css_248z$b);\n\nvar ScatterPlot = /*#__PURE__*/function (_React$Component28) {\n _inherits(ScatterPlot, _React$Component28);\n\n var _super38 = _createSuper(ScatterPlot);\n\n function ScatterPlot(props) {\n var _this15;\n\n _classCallCheck(this, ScatterPlot);\n\n _this15 = _super38.call(this, props);\n _this15.getData = memoize__default['default'](function (data) {\n return buildShallowChartData(data);\n });\n var zoom = props.zoomPan ? props.zoomPan.props : {\n domain: undefined\n }; // eslint-disable-next-line no-prototype-builtins\n\n var zoomControlled = !zoom.hasOwnProperty('domain');\n _this15.state = {\n isZoomed: !!zoom.domain,\n zoomDomain: zoom.domain,\n zoomControlled: zoomControlled\n };\n return _this15;\n }\n\n _createClass(ScatterPlot, [{\n key: \"getScales\",\n value: function getScales(data, chartHeight, chartWidth) {\n var _this$props57 = this.props,\n xAxis = _this$props57.xAxis,\n yAxis = _this$props57.yAxis;\n var zoomDomain = this.state.zoomDomain;\n var yScale = getYScale({\n roundDomains: yAxis.props.roundDomains,\n type: yAxis.props.type,\n height: chartHeight,\n data: data,\n domain: yAxis.props.domain\n });\n var xScale = getXScale({\n width: chartWidth,\n type: xAxis.props.type,\n roundDomains: xAxis.props.roundDomains,\n data: data,\n domain: zoomDomain || xAxis.props.domain\n });\n return {\n data: data,\n yScale: yScale,\n xScale: xScale\n };\n }\n }, {\n key: \"onZoomPan\",\n value: function onZoomPan(event) {\n var _this16 = this;\n\n if (this.state.zoomControlled) {\n this.setState({\n zoomDomain: event.domain,\n isZoomed: event.isZoomed,\n preventAnimation: true\n });\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n return _this16.setState({\n preventAnimation: false\n });\n }, 500);\n }\n }\n }, {\n key: \"renderChart\",\n value: function renderChart(containerProps) {\n var _this17 = this;\n\n var chartHeight = containerProps.chartHeight,\n chartWidth = containerProps.chartWidth,\n id = containerProps.id,\n updateAxes = containerProps.updateAxes;\n var _this$props58 = this.props,\n series = _this$props58.series,\n xAxis = _this$props58.xAxis,\n yAxis = _this$props58.yAxis,\n gridlines = _this$props58.gridlines,\n brush = _this$props58.brush,\n zoomPan = _this$props58.zoomPan,\n secondaryAxis = _this$props58.secondaryAxis;\n var _this$state5 = this.state,\n isZoomed = _this$state5.isZoomed,\n zoomDomain = _this$state5.zoomDomain,\n preventAnimation = _this$state5.preventAnimation;\n var data = this.getData(this.props.data);\n\n var _this$getScales = this.getScales(data, chartHeight, chartWidth),\n yScale = _this$getScales.yScale,\n xScale = _this$getScales.xScale;\n\n var animated = preventAnimation === true ? false : series.props.animated;\n return React__default['default'].createElement(React.Fragment, null, containerProps.chartSized && gridlines && React__default['default'].createElement(rdk.CloneElement, {\n element: gridlines,\n height: chartHeight,\n width: chartWidth,\n yScale: yScale,\n xScale: xScale,\n yAxis: yAxis.props,\n xAxis: xAxis.props\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: xAxis,\n height: chartHeight,\n width: chartWidth,\n scale: xScale,\n onDimensionsChange: bind__default['default'](updateAxes, this, 'horizontal')\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: yAxis,\n height: chartHeight,\n width: chartWidth,\n scale: yScale,\n onDimensionsChange: bind__default['default'](updateAxes, this, 'vertical')\n }), secondaryAxis && secondaryAxis.map(function (axis, i) {\n return React__default['default'].createElement(rdk.CloneElement, {\n key: i,\n element: axis,\n height: chartHeight,\n width: chartWidth,\n onDimensionsChange: bind__default['default'](updateAxes, _this17, 'horizontal')\n });\n }), containerProps.chartSized && React__default['default'].createElement(rdk.CloneElement, {\n element: brush,\n height: chartHeight,\n width: chartWidth,\n scale: xScale\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: zoomPan,\n onZoomPan: bind__default['default'](this.onZoomPan, this),\n height: chartHeight,\n width: chartWidth,\n axisType: xAxis.props.type,\n roundDomains: xAxis.props.roundDomains,\n data: data,\n domain: zoomDomain\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: \"area-series-\".concat(id),\n data: data,\n height: chartHeight,\n width: chartWidth,\n yScale: yScale,\n xScale: xScale,\n isZoomed: isZoomed,\n animated: animated\n }))));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this18 = this;\n\n var _this$props59 = this.props,\n xAxis = _this$props59.xAxis,\n yAxis = _this$props59.yAxis,\n id = _this$props59.id,\n width = _this$props59.width,\n height = _this$props59.height,\n margins = _this$props59.margins,\n className = _this$props59.className;\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: isAxisVisible(xAxis.props),\n yAxisVisible: isAxisVisible(yAxis.props),\n className: classNames__default['default'](css$b.scatterPlot, className)\n }, function (props) {\n return _this18.renderChart(props);\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if (props.zoomPan) {\n var zoom = props.zoomPan.props;\n\n if (!state.zoomControlled && zoom.domain !== state.zoomDomain) {\n return {\n zoomDomain: zoom.domain,\n isZoomed: !!zoom.domain\n };\n }\n }\n\n return null;\n }\n }]);\n\n return ScatterPlot;\n}(React.Component);\n\nScatterPlot.defaultProps = {\n data: [],\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"time\"\n }),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"value\"\n }),\n series: React__default['default'].createElement(ScatterSeries, null),\n gridlines: React__default['default'].createElement(GridlineSeries, null),\n brush: null,\n zoomPan: null\n};\nvar css_248z$c = \".PointSeries-module_point__3cXpV {\\n stroke: rgba(255, 255, 255, 0.5);\\n stroke-width: 1px;\\n}\\n\";\nvar css$c = {\n \"point\": \"PointSeries-module_point__3cXpV\"\n};\nstyleInject(css_248z$c);\n\nvar PointSeries = function PointSeries(_ref20) {\n var _ref20$show = _ref20.show,\n show = _ref20$show === void 0 ? 'hover' : _ref20$show,\n _ref20$point = _ref20.point,\n point = _ref20$point === void 0 ? React__default['default'].createElement(ScatterPoint, null) : _ref20$point,\n activeValues = _ref20.activeValues,\n data = _ref20.data,\n xScale = _ref20.xScale,\n yScale = _ref20.yScale,\n animated = _ref20.animated,\n color = _ref20.color,\n height = _ref20.height,\n width = _ref20.width,\n id = _ref20.id;\n\n var isVisible = function isVisible(point, index) {\n var isActive = activeValues && point && isEqual__default['default'](activeValues.x, point.x);\n\n if (show === 'hover') {\n return isActive;\n } else if (show === 'first') {\n if (activeValues) {\n return isActive;\n } else {\n return index === 0;\n }\n } else if (show === 'last') {\n if (activeValues) {\n return isActive;\n } else {\n return index === data.length - 1;\n }\n }\n\n return show;\n };\n\n return React__default['default'].createElement(ScatterSeries, {\n height: height,\n width: width,\n id: id,\n animated: animated,\n data: data,\n xScale: xScale,\n yScale: yScale,\n point: React__default['default'].createElement(rdk.CloneElement, {\n element: point,\n color: color,\n className: css$c.point,\n size: 4,\n tooltip: null,\n visible: isVisible\n })\n });\n};\n\nvar Area = function Area(_ref21) {\n var mask = _ref21.mask,\n id = _ref21.id,\n _ref21$gradient = _ref21.gradient,\n gradient = _ref21$gradient === void 0 ? React__default['default'].createElement(Gradient, null) : _ref21$gradient,\n _ref21$interpolation = _ref21.interpolation,\n interpolation = _ref21$interpolation === void 0 ? 'linear' : _ref21$interpolation,\n index = _ref21.index,\n animated = _ref21.animated,\n data = _ref21.data,\n color = _ref21.color,\n style = _ref21.style,\n className = _ref21.className,\n xScale = _ref21.xScale,\n yScale = _ref21.yScale;\n\n var getAreaPath = function getAreaPath(shallowData) {\n var fn = d3Shape.area().x(function (d) {\n return d.x;\n }).y0(function (d) {\n return d.y0;\n }).y1(function (d) {\n return d.y1;\n }).curve(interpolate(interpolation));\n return fn(shallowData);\n };\n\n var coords = React.useMemo(function () {\n return data.map(function (item) {\n return {\n x: xScale(item.x),\n x1: xScale(item.x) - xScale(item.x1),\n y: yScale(item.y),\n y0: yScale(item.y0),\n y1: yScale(item.y1)\n };\n });\n }, [data]);\n\n var getAreaEnter = function getAreaEnter(coords) {\n var areaPath = getAreaPath(coords);\n return {\n d: areaPath === null ? undefined : areaPath\n };\n };\n\n var getAreaExit = function getAreaExit() {\n var maxY = Math.max.apply(Math, _toConsumableArray(yScale.range()));\n var coords = data.map(function (item) {\n return {\n x: xScale(item.x),\n x1: 0,\n y: 0,\n y1: maxY,\n y0: maxY\n };\n });\n var areaPath = getAreaPath(coords);\n return {\n d: areaPath === null ? undefined : areaPath\n };\n };\n\n var getFill = function getFill() {\n if (mask) {\n return \"url(#mask-pattern-\".concat(id, \")\");\n } else {\n if (gradient) {\n return \"url(#gradient-\".concat(id, \")\");\n }\n\n return '';\n }\n };\n\n var getTransition = function getTransition() {\n if (animated) {\n return Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: index * 0.05\n });\n } else {\n return {\n type: false,\n delay: 0\n };\n }\n };\n\n var renderArea = React.useCallback(function (coords) {\n var fill = getFill();\n var maskPath = mask ? \"url(#mask-\".concat(id, \")\") : '';\n var enter = getAreaEnter(coords);\n var exit = getAreaExit();\n var extras = constructFunctionProps({\n style: style,\n className: className\n }, data);\n var transition = getTransition();\n return React__default['default'].createElement(MotionPath, Object.assign({}, extras, {\n pointerEvents: \"none\",\n mask: maskPath,\n fill: fill,\n transition: transition,\n custom: {\n enter: enter,\n exit: exit\n }\n }));\n }, [style, className, id, mask, data]);\n var stroke = color(data, index);\n return React__default['default'].createElement(React.Fragment, null, renderArea(coords), mask && React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(Mask, {\n id: \"mask-\".concat(id),\n fill: \"url(#gradient-\".concat(id, \")\")\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: mask,\n id: \"mask-pattern-\".concat(id),\n fill: stroke\n })), gradient && React__default['default'].createElement(rdk.CloneElement, {\n element: gradient,\n id: \"gradient-\".concat(id),\n color: stroke\n }));\n};\n\nvar Line = function Line(_ref22) {\n var _ref22$showZeroStroke = _ref22.showZeroStroke,\n showZeroStroke = _ref22$showZeroStroke === void 0 ? true : _ref22$showZeroStroke,\n _ref22$strokeWidth = _ref22.strokeWidth,\n strokeWidth = _ref22$strokeWidth === void 0 ? 3 : _ref22$strokeWidth,\n interpolation = _ref22.interpolation,\n data = _ref22.data,\n xScale = _ref22.xScale,\n yScale = _ref22.yScale,\n width = _ref22.width,\n hasArea = _ref22.hasArea,\n animated = _ref22.animated,\n color = _ref22.color,\n index = _ref22.index,\n style = _ref22.style,\n className = _ref22.className;\n\n var _React__default$defau = React__default['default'].useState(null),\n _React__default$defau2 = _slicedToArray(_React__default$defau, 2),\n pathLength = _React__default$defau2[0],\n setPathLength = _React__default$defau2[1];\n\n var ghostPathRef = React.useRef(null);\n React.useEffect(function () {\n var _a;\n\n if (ghostPathRef.current) {\n setPathLength((_a = ghostPathRef.current) === null || _a === void 0 ? void 0 : _a.getTotalLength());\n }\n }, []);\n React.useEffect(function () {\n var _a;\n\n setPathLength((_a = ghostPathRef.current) === null || _a === void 0 ? void 0 : _a.getTotalLength());\n }, [data, width, xScale, yScale]);\n\n var getLinePath = function getLinePath(data) {\n var fn = d3Shape.line().x(function (d) {\n return d.x;\n }).y(function (d) {\n return d.y1;\n }).defined(function (d) {\n return showZeroStroke || calculateShowStroke(d, data);\n }).curve(interpolate(interpolation));\n return fn(data);\n };\n\n var getCoords = function getCoords() {\n return data === null || data === void 0 ? void 0 : data.map(function (item) {\n return {\n x: xScale(item.x),\n x1: xScale(item.x) - xScale(item.x1),\n y: yScale(item.y),\n y0: yScale(item.y0),\n y1: yScale(item.y1)\n };\n });\n };\n\n var getLineEnter = function getLineEnter(coords) {\n var linePath = getLinePath(coords);\n var strokeDasharray = '';\n\n if (!hasArea && pathLength !== undefined) {\n strokeDasharray = \"\".concat(pathLength, \" \").concat(pathLength);\n }\n\n return {\n d: linePath === null ? undefined : linePath,\n strokeDashoffset: 0,\n strokeDasharray: strokeDasharray\n };\n };\n\n var getLineExit = function getLineExit() {\n var coords;\n\n if (hasArea) {\n var maxY = Math.max.apply(Math, _toConsumableArray(yScale.range()));\n coords = data.map(function (item) {\n return {\n x: xScale(item.x),\n x1: 0,\n y: maxY,\n y1: maxY,\n y0: maxY\n };\n });\n } else {\n coords = getCoords();\n }\n\n var linePath = getLinePath(coords);\n var strokeDasharray = '';\n var strokeDashoffset = 0;\n\n if (!hasArea && pathLength !== undefined) {\n strokeDasharray = \"\".concat(pathLength, \" \").concat(pathLength);\n strokeDashoffset = pathLength;\n }\n\n return {\n d: linePath === null ? undefined : linePath,\n strokeDasharray: strokeDasharray,\n strokeDashoffset: strokeDashoffset\n };\n };\n\n var getTransition = function getTransition() {\n if (animated) {\n return Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: hasArea ? 0 : index * 0.05\n });\n } else {\n return {\n type: false,\n delay: 0\n };\n }\n };\n\n var coords = getCoords();\n var stroke = color(data, index);\n var enter = getLineEnter(coords);\n var exit = getLineExit();\n var extras = constructFunctionProps({\n style: style,\n className: className\n }, data);\n var transition = getTransition();\n var showLine = hasArea || pathLength !== undefined;\n return React__default['default'].createElement(React.Fragment, null, showLine && React__default['default'].createElement(MotionPath, Object.assign({}, extras, {\n pointerEvents: \"none\",\n stroke: stroke,\n strokeWidth: strokeWidth,\n fill: \"none\",\n transition: transition,\n custom: {\n enter: enter,\n exit: exit\n }\n })), !hasArea && React__default['default'].createElement(\"path\", {\n opacity: \"0\",\n d: enter.d,\n ref: ghostPathRef,\n pointerEvents: \"none\"\n }));\n}; // For area charts, often symbols exceed the area\n// and we want to add a little bit of padding to prevent clipping\n\n\nvar PADDING$1 = 25;\nvar HALF_PADDING$1 = PADDING$1 / 2;\nvar initialAreaState = {\n activePoint: undefined,\n activeValues: undefined\n};\n\nvar AreaSeries = function AreaSeries(_ref23) {\n var _ref23$colorScheme = _ref23.colorScheme,\n colorScheme = _ref23$colorScheme === void 0 ? 'cybertron' : _ref23$colorScheme,\n _ref23$animated = _ref23.animated,\n animated = _ref23$animated === void 0 ? true : _ref23$animated,\n _ref23$interpolation = _ref23.interpolation,\n interpolation = _ref23$interpolation === void 0 ? 'linear' : _ref23$interpolation,\n _ref23$type = _ref23.type,\n type = _ref23$type === void 0 ? 'standard' : _ref23$type,\n _ref23$line = _ref23.line,\n line = _ref23$line === void 0 ? React__default['default'].createElement(Line, null) : _ref23$line,\n _ref23$area = _ref23.area,\n area = _ref23$area === void 0 ? React__default['default'].createElement(Area, null) : _ref23$area,\n _ref23$markLine = _ref23.markLine,\n markLine = _ref23$markLine === void 0 ? React__default['default'].createElement(MarkLine, null) : _ref23$markLine,\n _ref23$tooltip = _ref23.tooltip,\n tooltip = _ref23$tooltip === void 0 ? React__default['default'].createElement(TooltipArea, null) : _ref23$tooltip,\n _ref23$symbols = _ref23.symbols,\n symbols = _ref23$symbols === void 0 ? React__default['default'].createElement(PointSeries, null) : _ref23$symbols,\n data = _ref23.data,\n height = _ref23.height,\n id = _ref23.id,\n width = _ref23.width,\n isZoomed = _ref23.isZoomed,\n xScale = _ref23.xScale,\n yScale = _ref23.yScale;\n\n var _React$useState11 = React.useState(initialAreaState),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n areaState = _React$useState12[0],\n setAreaState = _React$useState12[1];\n\n var getColor$1 = function getColor$1(point, index) {\n var activeValues = areaState.activeValues;\n var key = Array.isArray(point) ? point[0].key : point === null || point === void 0 ? void 0 : point.key;\n return _getColor({\n data: data,\n colorScheme: colorScheme,\n active: activeValues,\n point: point,\n index: index,\n key: key\n });\n };\n\n var _onValueEnter = function onValueEnter(event) {\n setAreaState({\n activePoint: event.pointX,\n activeValues: event.value\n });\n };\n\n var _onValueLeave = function onValueLeave() {\n setAreaState(initialAreaState);\n };\n\n var renderArea = React.useCallback(function (shallowData) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return React__default['default'].createElement(React.Fragment, null, line && React__default['default'].createElement(rdk.CloneElement, {\n element: line,\n xScale: xScale,\n yScale: yScale,\n data: shallowData,\n width: width,\n index: index,\n hasArea: area !== null,\n animated: animated,\n interpolation: interpolation,\n color: getColor$1\n }), area && React__default['default'].createElement(rdk.CloneElement, {\n element: area,\n id: \"\".concat(id, \"-area-\").concat(index),\n xScale: xScale,\n yScale: yScale,\n data: shallowData,\n index: index,\n animated: animated,\n interpolation: interpolation,\n color: getColor$1\n }));\n }, [line, xScale, yScale, width, animated, interpolation]);\n var renderSymbols = React.useCallback(function (shallowData) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var activeValues = areaState.activeValues;\n var visible = symbols !== null;\n var activeSymbols = symbols && symbols.props.activeValues || activeValues; // Animations are only valid for Area\n\n var isAnimated = area !== undefined && animated && !activeSymbols;\n return React__default['default'].createElement(React.Fragment, null, visible && React__default['default'].createElement(rdk.CloneElement, {\n element: symbols,\n key: \"point-series-\".concat(id),\n id: id,\n height: height,\n width: width,\n activeValues: activeSymbols,\n xScale: xScale,\n yScale: yScale,\n index: index,\n data: shallowData,\n animated: isAnimated,\n color: function color() {\n return getColor$1(shallowData, index);\n }\n }));\n }, [areaState, symbols, height, width, xScale, yScale]);\n var renderMarkLine = React.useCallback(function () {\n var activePoint = areaState.activePoint,\n activeValues = areaState.activeValues;\n return React__default['default'].createElement(React.Fragment, null, activeValues && markLine && React__default['default'].createElement(rdk.CloneElement, {\n element: markLine,\n height: height,\n pointX: activePoint\n }));\n }, [areaState, markLine, height]);\n var renderSingleSeries = React.useCallback(function (shallowData) {\n return React__default['default'].createElement(React.Fragment, null, renderArea(shallowData), renderMarkLine(), renderSymbols(shallowData));\n }, []);\n var renderMultiSeries = React.useCallback(function (nestedData) {\n return React__default['default'].createElement(React.Fragment, null, nestedData.map(function (point, index) {\n return React__default['default'].createElement(React.Fragment, {\n key: \"\".concat(point.key.toString())\n }, renderArea(point.data, index));\n }).reverse(), renderMarkLine(), nestedData.map(function (point, index) {\n return React__default['default'].createElement(React.Fragment, {\n key: \"\".concat(point.key.toString())\n }, renderSymbols(point.data, index));\n }).reverse());\n }, []);\n var isMulti = type === 'grouped' || type === 'stacked' || type === 'stackedNormalized';\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"defs\", null, React__default['default'].createElement(\"clipPath\", {\n id: \"\".concat(id, \"-path\")\n }, React__default['default'].createElement(\"rect\", {\n width: isZoomed ? width : width + PADDING$1,\n height: height + PADDING$1,\n x: isZoomed ? 0 : -HALF_PADDING$1,\n y: -HALF_PADDING$1\n }))), React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n xScale: xScale,\n yScale: yScale,\n data: data,\n height: height,\n width: width,\n color: getColor$1,\n onValueEnter: function onValueEnter(e) {\n return _onValueEnter(e);\n },\n onValueLeave: function onValueLeave() {\n return _onValueLeave();\n }\n }, React__default['default'].createElement(\"g\", {\n clipPath: \"url(#\".concat(id, \"-path)\")\n }, isMulti && renderMultiSeries(data), !isMulti && renderSingleSeries(data))));\n};\n\nvar StackedNormalizedAreaSeries = /*#__PURE__*/function (_React$Component29) {\n _inherits(StackedNormalizedAreaSeries, _React$Component29);\n\n var _super39 = _createSuper(StackedNormalizedAreaSeries);\n\n function StackedNormalizedAreaSeries() {\n _classCallCheck(this, StackedNormalizedAreaSeries);\n\n return _super39.apply(this, arguments);\n }\n\n _createClass(StackedNormalizedAreaSeries, [{\n key: \"render\",\n value: function render() {\n var _a = this.props,\n type = _a.type,\n symbols = _a.symbols,\n rest = __rest(_a, [\"type\", \"symbols\"]);\n\n return React__default['default'].createElement(AreaSeries, Object.assign({}, rest, {\n type: \"stackedNormalized\",\n symbols: symbols && React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: symbols\n }, symbols.props, {\n point: React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: symbols.props.point\n }, symbols.props.point.props, {\n tooltip: null\n }))\n }))\n }));\n }\n }]);\n\n return StackedNormalizedAreaSeries;\n}(React.Component);\n\nStackedNormalizedAreaSeries.defaultProps = Object.assign(Object.assign({}, AreaSeries.defaultProps), {\n type: 'stackedNormalized',\n tooltip: React__default['default'].createElement(TooltipArea, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n content: function content(series, color) {\n if (!series) {\n return null;\n }\n\n var value = Object.assign(Object.assign({}, series), {\n data: series.data.map(function (d) {\n return Object.assign(Object.assign({}, d), {\n value: \"\".concat(formatValue(d.value), \" \\u2219 \").concat(formatValue(Math.floor((d.y1 - d.y0) * 100)), \"%\")\n });\n })\n });\n return React__default['default'].createElement(TooltipTemplate, {\n color: color,\n value: value\n });\n }\n })\n })\n});\n\nvar StackedAreaSeries = /*#__PURE__*/function (_React$Component30) {\n _inherits(StackedAreaSeries, _React$Component30);\n\n var _super40 = _createSuper(StackedAreaSeries);\n\n function StackedAreaSeries() {\n _classCallCheck(this, StackedAreaSeries);\n\n return _super40.apply(this, arguments);\n }\n\n _createClass(StackedAreaSeries, [{\n key: \"render\",\n value: function render() {\n var _a = this.props,\n type = _a.type,\n symbols = _a.symbols,\n rest = __rest(_a, [\"type\", \"symbols\"]);\n\n return React__default['default'].createElement(AreaSeries, Object.assign({}, rest, {\n type: \"stacked\",\n symbols: symbols && React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: symbols\n }, symbols.props, {\n point: React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: symbols.props.point\n }, symbols.props.point.props, {\n tooltip: null\n }))\n }))\n }));\n }\n }]);\n\n return StackedAreaSeries;\n}(React.Component);\n\nStackedAreaSeries.defaultProps = Object.assign(Object.assign({}, AreaSeries.defaultProps), {\n type: 'stacked'\n});\nvar css_248z$d = \".AreaChart-module_areaChart__1BikF {\\n overflow: visible;\\n}\\n\";\nvar css$d = {\n \"areaChart\": \"AreaChart-module_areaChart__1BikF\"\n};\nstyleInject(css_248z$d);\n\nvar AreaChart = /*#__PURE__*/function (_React$Component31) {\n _inherits(AreaChart, _React$Component31);\n\n var _super41 = _createSuper(AreaChart);\n\n function AreaChart(props) {\n var _this19;\n\n _classCallCheck(this, AreaChart);\n\n _this19 = _super41.call(this, props);\n _this19.getData = memoize__default['default'](function (data, type) {\n if (type === 'stacked' || type === 'stackedNormalized') {\n return buildStackData(data, type === 'stackedNormalized');\n } else if (type === 'grouped') {\n return buildNestedChartData(data, true);\n } else {\n return buildShallowChartData(data);\n }\n });\n var zoom = props.zoomPan ? props.zoomPan.props : {}; // eslint-disable-next-line no-prototype-builtins\n\n var zoomControlled = !zoom.hasOwnProperty('domain');\n _this19.state = {\n zoomDomain: zoom.domain,\n isZoomed: !!zoom.domain,\n zoomControlled: zoomControlled\n };\n return _this19;\n }\n\n _createClass(AreaChart, [{\n key: \"getScales\",\n value: function getScales(data, chartWidth, chartHeight, isMultiSeries) {\n var zoomDomain = this.state.zoomDomain;\n var _this$props60 = this.props,\n yAxis = _this$props60.yAxis,\n xAxis = _this$props60.xAxis;\n var xScale = getXScale({\n width: chartWidth,\n type: xAxis.props.type,\n roundDomains: xAxis.props.roundDomains,\n data: data,\n domain: zoomDomain || xAxis.props.domain,\n isMultiSeries: isMultiSeries\n });\n var yScale = getYScale({\n roundDomains: yAxis.props.roundDomains,\n type: yAxis.props.type,\n height: chartHeight,\n data: data,\n domain: yAxis.props.domain,\n isMultiSeries: isMultiSeries\n });\n return {\n xScale: xScale,\n yScale: yScale\n };\n }\n }, {\n key: \"onZoomPan\",\n value: function onZoomPan(event) {\n var _this20 = this;\n\n if (this.state.zoomControlled) {\n this.setState({\n zoomDomain: event.domain,\n isZoomed: event.isZoomed,\n preventAnimation: true\n });\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n return _this20.setState({\n preventAnimation: false\n });\n }, 500);\n }\n }\n }, {\n key: \"renderChart\",\n value: function renderChart(containerProps) {\n var _this21 = this;\n\n var chartHeight = containerProps.chartHeight,\n chartWidth = containerProps.chartWidth,\n id = containerProps.id,\n updateAxes = containerProps.updateAxes;\n var _this$props61 = this.props,\n series = _this$props61.series,\n yAxis = _this$props61.yAxis,\n xAxis = _this$props61.xAxis,\n gridlines = _this$props61.gridlines,\n brush = _this$props61.brush,\n zoomPan = _this$props61.zoomPan,\n secondaryAxis = _this$props61.secondaryAxis;\n var _this$state6 = this.state,\n zoomDomain = _this$state6.zoomDomain,\n preventAnimation = _this$state6.preventAnimation,\n isZoomed = _this$state6.isZoomed;\n var seriesType = series.props.type;\n var isMultiSeries = seriesType === 'stacked' || seriesType === 'stackedNormalized' || seriesType === 'grouped';\n var data = this.getData(this.props.data, seriesType);\n\n var _this$getScales2 = this.getScales(data, chartWidth, chartHeight, isMultiSeries),\n xScale = _this$getScales2.xScale,\n yScale = _this$getScales2.yScale;\n\n var animated = preventAnimation === true ? false : series.props.animated;\n return React__default['default'].createElement(React.Fragment, null, containerProps.chartSized && gridlines && React__default['default'].createElement(rdk.CloneElement, {\n element: gridlines,\n height: chartHeight,\n width: chartWidth,\n yScale: yScale,\n xScale: xScale,\n yAxis: yAxis.props,\n xAxis: xAxis.props\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: xAxis,\n height: chartHeight,\n width: chartWidth,\n scale: xScale,\n onDimensionsChange: bind__default['default'](updateAxes, this, 'horizontal')\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: yAxis,\n height: chartHeight,\n width: chartWidth,\n scale: yScale,\n onDimensionsChange: bind__default['default'](updateAxes, this, 'vertical')\n }), secondaryAxis && secondaryAxis.map(function (axis, i) {\n return React__default['default'].createElement(rdk.CloneElement, {\n key: i,\n element: axis,\n height: chartHeight,\n width: chartWidth,\n onDimensionsChange: bind__default['default'](updateAxes, _this21, 'horizontal')\n });\n }), containerProps.chartSized && React__default['default'].createElement(rdk.CloneElement, {\n element: brush,\n height: chartHeight,\n width: chartWidth,\n scale: xScale\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: zoomPan,\n onZoomPan: bind__default['default'](this.onZoomPan, this),\n height: chartHeight,\n width: chartWidth,\n axisType: xAxis.props.type,\n roundDomains: xAxis.props.roundDomains,\n data: data,\n domain: zoomDomain\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: \"area-series-\".concat(id),\n data: data,\n height: chartHeight,\n width: chartWidth,\n yScale: yScale,\n xScale: xScale,\n isZoomed: isZoomed,\n animated: animated\n }))));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this22 = this;\n\n var _this$props62 = this.props,\n xAxis = _this$props62.xAxis,\n yAxis = _this$props62.yAxis,\n id = _this$props62.id,\n width = _this$props62.width,\n height = _this$props62.height,\n margins = _this$props62.margins,\n className = _this$props62.className,\n series = _this$props62.series;\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: isAxisVisible(xAxis.props),\n yAxisVisible: isAxisVisible(yAxis.props),\n className: classNames__default['default'](css$d.areaChart, className, series.type)\n }, function (props) {\n return _this22.renderChart(props);\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if (props.zoomPan) {\n var zoom = props.zoomPan.props;\n\n if (!state.zoomControlled && zoom.domain !== state.zoomDomain) {\n return {\n zoomDomain: zoom.domain,\n isZoomed: !!zoom.domain\n };\n }\n }\n\n return null;\n }\n }]);\n\n return AreaChart;\n}(React.Component);\n\nAreaChart.defaultProps = {\n data: [],\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"time\"\n }),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"value\"\n }),\n series: React__default['default'].createElement(AreaSeries, null),\n gridlines: React__default['default'].createElement(GridlineSeries, null),\n brush: null,\n zoomPan: null\n};\n\nvar StackedAreaChart = /*#__PURE__*/function (_React$Component32) {\n _inherits(StackedAreaChart, _React$Component32);\n\n var _super42 = _createSuper(StackedAreaChart);\n\n function StackedAreaChart() {\n _classCallCheck(this, StackedAreaChart);\n\n return _super42.apply(this, arguments);\n }\n\n _createClass(StackedAreaChart, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(AreaChart, Object.assign({}, this.props));\n }\n }]);\n\n return StackedAreaChart;\n}(React.Component);\n\nStackedAreaChart.defaultProps = {\n series: React__default['default'].createElement(StackedAreaSeries, null)\n};\n\nvar StackedNormalizedAreaChart = /*#__PURE__*/function (_React$Component33) {\n _inherits(StackedNormalizedAreaChart, _React$Component33);\n\n var _super43 = _createSuper(StackedNormalizedAreaChart);\n\n function StackedNormalizedAreaChart() {\n _classCallCheck(this, StackedNormalizedAreaChart);\n\n return _super43.apply(this, arguments);\n }\n\n _createClass(StackedNormalizedAreaChart, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(AreaChart, Object.assign({}, this.props));\n }\n }]);\n\n return StackedNormalizedAreaChart;\n}(React.Component);\n\nStackedNormalizedAreaChart.defaultProps = {\n series: React__default['default'].createElement(StackedNormalizedAreaSeries, null),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"value\",\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n label: React__default['default'].createElement(LinearYAxisTickLabel, {\n rotation: false,\n format: function format(data) {\n return \"\".concat(data * 100, \"%\");\n }\n })\n })\n })\n};\n\nvar Bar = /*#__PURE__*/function (_React$Component34) {\n _inherits(Bar, _React$Component34);\n\n var _super44 = _createSuper(Bar);\n\n function Bar() {\n var _this23;\n\n _classCallCheck(this, Bar);\n\n _this23 = _super44.apply(this, arguments);\n _this23.state = {};\n _this23.rect = React.createRef();\n return _this23;\n }\n\n _createClass(Bar, [{\n key: \"getExit\",\n value: function getExit(_ref24) {\n var x = _ref24.x,\n y = _ref24.y,\n width = _ref24.width,\n height = _ref24.height;\n var _this$props63 = this.props,\n yScale = _this$props63.yScale,\n xScale = _this$props63.xScale,\n type = _this$props63.type;\n var isVertical = this.getIsVertical();\n var newX = isVertical ? x : Math.min.apply(Math, _toConsumableArray(xScale.range()));\n var newY = isVertical ? Math.max.apply(Math, _toConsumableArray(yScale.range())) : y;\n var newHeight = isVertical ? 0 : height;\n var newWidth = isVertical ? width : 0;\n\n if (type === 'stackedDiverging') {\n if (isVertical) {\n newY = newY / 2;\n } else {\n newX = newX / 2;\n }\n }\n\n return {\n x: newX,\n y: newY,\n height: newHeight,\n width: newWidth\n };\n }\n }, {\n key: \"getKeyCoords\",\n value: function getKeyCoords(v, v0, v1, scale, sizeOverride, isCategorical, padding) {\n var offset;\n var size;\n\n if (isCategorical) {\n if (scale.bandwidth) {\n offset = scale(v);\n size = scale.bandwidth();\n\n if (sizeOverride) {\n if (offset) {\n offset = offset + size / 2 - sizeOverride / 2;\n } else {\n // Stacked bar charts don't have offsets...\n offset = size / 2 - sizeOverride / 2;\n }\n\n size = sizeOverride;\n }\n } else {\n if (sizeOverride) {\n throw new Error('Not a valid option for this scale type');\n }\n\n offset = scale(v0);\n size = scale(v1 - v0);\n\n if (padding) {\n var calc = this.calculateLinearScalePadding(scale, offset, size);\n offset = calc.offset;\n size = calc.size;\n }\n }\n } else {\n if (sizeOverride) {\n throw new Error('Not a valid option for this scale type');\n }\n\n var c0 = scale(v0);\n var c1 = scale(v1);\n var delta = c1 - c0;\n offset = c0;\n size = Math.max(delta - 1, 0);\n }\n\n return {\n offset: offset,\n size: size\n };\n }\n }, {\n key: \"getValueCoords\",\n value: function getValueCoords(v0, v1, scale) {\n var c0 = scale(v0);\n var c1 = scale(v1);\n var size = Math.abs(c0 - c1);\n var minSize = Math.max(this.props.minHeight || 0, size);\n return {\n offset: Math.min(c0, c1),\n size: minSize\n };\n }\n }, {\n key: \"getIsVertical\",\n value: function getIsVertical() {\n return this.props.layout === 'vertical';\n }\n }, {\n key: \"getCoords\",\n value: function getCoords(data) {\n var _this$props64 = this.props,\n isCategorical = _this$props64.isCategorical,\n width = _this$props64.width,\n padding = _this$props64.padding,\n xScale1 = _this$props64.xScale1;\n var isVertical = this.getIsVertical();\n var yScale = this.props.yScale;\n var xScale = this.props.xScale;\n\n if (xScale1) {\n if (isVertical) {\n xScale = xScale1;\n } else {\n yScale = xScale1;\n }\n }\n\n if (isVertical) {\n var xCoords = this.getKeyCoords(data.x, data.x0, data.x1, xScale, width, isCategorical, padding);\n var yCoords = this.getValueCoords(data.y0, data.y1, yScale);\n return {\n x: xCoords.offset,\n width: xCoords.size,\n y: yCoords.offset,\n height: yCoords.size\n };\n } else {\n var _yCoords = this.getKeyCoords(data.y, data.y0, data.y1, yScale, width, isCategorical, padding);\n\n var _xCoords = this.getValueCoords(data.x0, data.x1, xScale);\n\n return {\n x: _xCoords.offset,\n width: _xCoords.size,\n y: _yCoords.offset,\n height: _yCoords.size\n };\n }\n }\n /**\r\n * This function calculates the padding on a linear scale used by the marimekko chart.\r\n */\n\n }, {\n key: \"calculateLinearScalePadding\",\n value: function calculateLinearScalePadding(scale, offset, size) {\n var _this$props65 = this.props,\n barCount = _this$props65.barCount,\n groupIndex = _this$props65.groupIndex,\n padding = _this$props65.padding;\n var totalSize = scale.range()[1];\n var sizeMinusPadding = totalSize - padding * (barCount - 1);\n var multiplier = sizeMinusPadding / totalSize;\n offset = offset * multiplier + groupIndex * padding;\n size = size * multiplier;\n return {\n size: size,\n offset: offset\n };\n }\n }, {\n key: \"onMouseEnter\",\n value: function onMouseEnter(event) {\n var _this$props66 = this.props,\n onMouseEnter = _this$props66.onMouseEnter,\n data = _this$props66.data,\n tooltip = _this$props66.tooltip; // Only tooltip bars rely on this...\n\n if (tooltip) {\n this.setState({\n active: true\n });\n }\n\n onMouseEnter({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(event) {\n var _this$props67 = this.props,\n onMouseLeave = _this$props67.onMouseLeave,\n data = _this$props67.data,\n tooltip = _this$props67.tooltip; // Only tooltip bars rely on this...\n\n if (tooltip) {\n this.setState({\n active: false\n });\n }\n\n onMouseLeave({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"onMouseClick\",\n value: function onMouseClick(event) {\n var _this$props68 = this.props,\n onClick = _this$props68.onClick,\n data = _this$props68.data;\n onClick({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"getFill\",\n value: function getFill(color) {\n var _this$props69 = this.props,\n mask = _this$props69.mask,\n id = _this$props69.id,\n gradient = _this$props69.gradient;\n\n if (mask) {\n return \"url(#mask-pattern-\".concat(id, \")\");\n } else {\n if (gradient) {\n return \"url(#gradient-\".concat(id, \")\");\n }\n\n return color;\n }\n }\n }, {\n key: \"getTooltipData\",\n value: function getTooltipData() {\n var _this$props70 = this.props,\n data = _this$props70.data,\n isCategorical = _this$props70.isCategorical;\n var isVertical = this.getIsVertical();\n var xAttr = isCategorical ? 'x' : 'x0';\n var x = data[xAttr]; // Stacked diverging negative numbers\n // in horizontal layouts need to pull x0\n\n if (data.x0 < 0) {\n x = data.x0;\n }\n\n var matches = isVertical ? data.key && data.key !== x : data.key && data.key !== data.y;\n\n if (matches) {\n x = \"\".concat(data.key, \" \\u2219 \").concat(x);\n }\n\n return {\n y: data.y,\n x: x\n };\n }\n }, {\n key: \"getTransition\",\n value: function getTransition(index) {\n var _this$props71 = this.props,\n animated = _this$props71.animated,\n barCount = _this$props71.barCount,\n layout = _this$props71.layout;\n\n if (animated) {\n var delay = 0;\n\n if (layout === 'vertical') {\n delay = index / barCount * 0.5;\n } else {\n delay = (barCount - index) / barCount * 0.5;\n }\n\n return Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: delay\n });\n } else {\n return {\n type: false,\n delay: 0\n };\n }\n }\n }, {\n key: \"renderBar\",\n value: function renderBar(currentColorShade, coords, index) {\n var _this$props72 = this.props,\n cursor = _this$props72.cursor,\n mask = _this$props72.mask,\n id = _this$props72.id,\n data = _this$props72.data,\n rx = _this$props72.rx,\n ry = _this$props72.ry,\n onMouseMove = _this$props72.onMouseMove;\n var maskPath = mask ? \"url(#mask-\".concat(id, \")\") : '';\n var fill = this.getFill(currentColorShade);\n var initialExit = this.getExit(coords);\n this.getIsVertical();\n var extras = constructFunctionProps(this.props, data);\n var transition = this.getTransition(index); // UGH: https://github.com/framer/motion/issues/384\n\n var initial = Object.assign(Object.assign({}, initialExit), {\n attrX: initialExit.x,\n attrY: initialExit.y,\n fill: fill\n });\n delete initial.x;\n delete initial.y;\n var animate = Object.assign(Object.assign({}, coords), {\n attrX: coords.x,\n attrY: coords.y,\n fill: fill\n });\n delete animate.x;\n delete animate.y;\n return React__default['default'].createElement(\"g\", {\n ref: this.rect\n }, React__default['default'].createElement(framerMotion.motion.rect, {\n className: classNames__default['default'](extras.className),\n style: Object.assign(Object.assign({}, extras.style), {\n cursor: cursor\n }),\n mask: maskPath,\n rx: rx,\n ry: ry,\n initial: initial,\n animate: animate,\n exit: initial,\n transition: transition,\n onMouseEnter: bind__default['default'](this.onMouseEnter, this),\n onMouseLeave: bind__default['default'](this.onMouseLeave, this),\n onClick: bind__default['default'](this.onMouseClick, this),\n onMouseMove: onMouseMove\n }));\n }\n }, {\n key: \"renderGuideBar\",\n value: function renderGuideBar() {\n var _Object$assign2;\n\n var _this$props73 = this.props,\n data = _this$props73.data,\n yScale = _this$props73.yScale,\n active = _this$props73.active,\n barIndex = _this$props73.barIndex,\n type = _this$props73.type,\n guide = _this$props73.guide,\n xScale = _this$props73.xScale;\n\n if (!guide) {\n return null;\n } // If we are stacked, only render the first bar\n\n\n if (type === 'stacked' && barIndex !== 0) {\n return null;\n } // No reason to show them since they are always 100% tall\n\n\n if (type === 'stackedNormalized' || type === 'marimekko') {\n console.error('Guide bars are not supported for these chart types');\n return null;\n }\n\n var vertical = this.getIsVertical();\n var valueScale = vertical ? yScale : xScale;\n\n var _valueScale$domain = valueScale.domain(),\n _valueScale$domain2 = _slicedToArray(_valueScale$domain, 2),\n start = _valueScale$domain2[0],\n end = _valueScale$domain2[1];\n\n var attr = vertical ? 'y' : 'x'; // For stacked diverging we need to flip the points for positive / negative bars\n\n var attrStart = type === 'stackedDiverging' ? '0' : '1';\n var endPoint = type === 'stackedDiverging' ? start : end;\n var startPoint = type === 'stackedDiverging' && data[attr] > 0 ? end : endPoint;\n var coords = this.getCoords(Object.assign(Object.assign({}, data), (_Object$assign2 = {}, _defineProperty(_Object$assign2, attr, endPoint), _defineProperty(_Object$assign2, \"\".concat(attr).concat(attrStart), startPoint), _Object$assign2)));\n return React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: guide\n }, coords, {\n active: active\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props74 = this.props,\n activeBrightness = _this$props74.activeBrightness,\n id = _this$props74.id,\n gradient = _this$props74.gradient,\n data = _this$props74.data,\n barIndex = _this$props74.barIndex,\n color = _this$props74.color,\n yScale = _this$props74.yScale,\n barCount = _this$props74.barCount,\n xScale = _this$props74.xScale,\n groupIndex = _this$props74.groupIndex,\n rangeLines = _this$props74.rangeLines,\n animated = _this$props74.animated,\n type = _this$props74.type,\n tooltip = _this$props74.tooltip,\n layout = _this$props74.layout,\n mask = _this$props74.mask,\n label = _this$props74.label;\n var active = tooltip ? this.state.active : this.props.active;\n var stroke = color(data, barIndex);\n var coords = this.getCoords(data);\n var currentColorShade = active ? chroma__default['default'](stroke).brighten(activeBrightness).hex() : stroke;\n var rangeLineColor = rangeLines && rangeLines.props.color || stroke;\n var rangeLineColorShade = active ? chroma__default['default'](rangeLineColor).brighten(activeBrightness) : rangeLineColor;\n var index = groupIndex !== undefined ? groupIndex : barIndex;\n var isVertical = this.getIsVertical();\n var scale = isVertical ? yScale : xScale;\n var tooltipData = this.getTooltipData();\n var barLabel = isVertical ? tooltipData.y : tooltipData.x;\n var placement = layout === 'vertical' ? 'top' : 'right';\n return React__default['default'].createElement(React.Fragment, null, this.renderGuideBar(), this.renderBar(currentColorShade, coords, index), rangeLines && React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: rangeLines\n }, coords, {\n index: index,\n data: data,\n scale: scale,\n color: rangeLineColorShade,\n barCount: barCount,\n animated: animated,\n layout: layout,\n type: type\n })), mask && React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(Mask, {\n id: \"mask-\".concat(id),\n fill: \"url(#gradient-\".concat(id, \")\")\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: mask,\n id: \"mask-pattern-\".concat(id),\n fill: stroke\n })), gradient && React__default['default'].createElement(rdk.CloneElement, {\n element: gradient,\n id: \"gradient-\".concat(id),\n direction: layout,\n color: currentColorShade\n }), label && React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: label\n }, coords, {\n text: formatValue(barLabel),\n index: index,\n data: data,\n scale: scale,\n fill: label.props.fill || currentColorShade,\n barCount: barCount,\n animated: animated,\n layout: layout,\n type: type\n })), tooltip && React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n visible: !!active,\n reference: this.rect,\n color: color,\n value: tooltipData,\n placement: tooltip.props.placement || placement,\n data: data\n }));\n }\n }]);\n\n return Bar;\n}(React.Component);\n\nBar.defaultProps = {\n activeBrightness: 0.5,\n rx: 0,\n ry: 0,\n cursor: 'auto',\n rangeLines: null,\n label: null,\n tooltip: null,\n layout: 'vertical',\n guide: null,\n gradient: React__default['default'].createElement(Gradient, null),\n onClick: function onClick() {\n return undefined;\n },\n onMouseEnter: function onMouseEnter() {\n return undefined;\n },\n onMouseLeave: function onMouseLeave() {\n return undefined;\n },\n onMouseMove: function onMouseMove() {\n return undefined;\n }\n};\n\nvar BarSeries = /*#__PURE__*/function (_React$Component35) {\n _inherits(BarSeries, _React$Component35);\n\n var _super45 = _createSuper(BarSeries);\n\n function BarSeries() {\n var _this24;\n\n _classCallCheck(this, BarSeries);\n\n _this24 = _super45.apply(this, arguments);\n _this24.state = {};\n _this24.ref = React.createRef();\n return _this24;\n }\n\n _createClass(BarSeries, [{\n key: \"getIsMulti\",\n value: function getIsMulti() {\n var type = this.props.type;\n return type === 'grouped' || type === 'stacked' || type === 'marimekko' || type === 'stackedNormalized' || type === 'stackedDiverging';\n }\n /**\r\n * Get the translation for the bar group.\r\n */\n\n }, {\n key: \"getTransform\",\n value: function getTransform(data) {\n var _this$props75 = this.props,\n xScale = _this$props75.xScale,\n yScale = _this$props75.yScale,\n type = _this$props75.type,\n layout = _this$props75.layout;\n var xPos = 0;\n var yPos = 0;\n\n if (type !== 'marimekko') {\n if (layout === 'vertical') {\n var val = xScale(data.key);\n xPos = val;\n } else {\n var _val = yScale(data.key);\n\n yPos = _val;\n }\n }\n\n return \"translate(\".concat(xPos, \", \").concat(yPos, \")\");\n }\n }, {\n key: \"getColor\",\n value: function getColor(point, index) {\n var _this$props76 = this.props,\n colorScheme = _this$props76.colorScheme,\n data = _this$props76.data,\n layout = _this$props76.layout;\n var isMultiSeries = this.getIsMulti();\n var key = 'key';\n\n if (isMultiSeries) {\n if (layout === 'vertical') {\n key = 'x';\n } else {\n key = 'y';\n }\n } // histograms...\n\n\n if (point[key] === undefined) {\n key = 'x0';\n }\n\n return _getColor({\n colorScheme: colorScheme,\n point: point,\n index: index,\n data: data,\n isMultiSeries: isMultiSeries,\n attribute: key\n });\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var _a; // Manuallly call mouse move so we don't have to kill bar pointer events\n\n\n (_a = this.ref.current) === null || _a === void 0 ? void 0 : _a.onMouseMove(event);\n }\n }, {\n key: \"renderBar\",\n value: function renderBar(data, barIndex, barCount, groupIndex) {\n var _this$props77 = this.props,\n xScale1 = _this$props77.xScale1,\n bar = _this$props77.bar,\n padding = _this$props77.padding,\n animated = _this$props77.animated,\n isCategorical = _this$props77.isCategorical,\n layout = _this$props77.layout,\n type = _this$props77.type,\n id = _this$props77.id;\n var activeValues = this.state.activeValues;\n var active = activeValues && activeValues.x === data.key;\n var isVertical = layout === 'vertical';\n var yScale = this.props.yScale;\n var xScale = this.props.xScale;\n\n if (xScale1) {\n if (isVertical) {\n xScale = xScale1;\n } else {\n yScale = xScale1;\n }\n } // Histograms dont have keys\n\n\n var key = barIndex.toString();\n\n if (data.key) {\n key = \"\".concat(data.key.toString(), \"-\").concat(groupIndex);\n }\n\n var barElements = Array.isArray(bar) ? bar[barIndex] : bar;\n\n if (!bar) {\n barElements = React__default['default'].createElement(Bar, null);\n }\n\n return React__default['default'].createElement(React.Fragment, {\n key: key\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: barElements,\n id: \"\".concat(id, \"-bar-\").concat(groupIndex, \"-\").concat(barIndex),\n animated: animated,\n active: active,\n xScale: xScale,\n xScale1: xScale1,\n yScale: yScale,\n padding: padding,\n barCount: barCount,\n groupIndex: groupIndex,\n barIndex: barIndex,\n data: data,\n isCategorical: isCategorical,\n color: this.getColor.bind(this),\n layout: layout,\n type: type,\n onMouseMove: this.onMouseMove.bind(this)\n }));\n }\n /**\r\n * Get the bar group.\r\n */\n\n }, {\n key: \"renderBarGroup\",\n value: function renderBarGroup(data, barCount, groupIndex) {\n var _this25 = this;\n\n return React__default['default'].createElement(React.Fragment, null, data.map(function (barData, barIndex) {\n return _this25.renderBar(barData, barIndex, barCount, groupIndex);\n }));\n }\n }, {\n key: \"onValueEnter\",\n value: function onValueEnter(event) {\n this.setState({\n activeValues: event.value\n });\n }\n }, {\n key: \"onValueLeave\",\n value: function onValueLeave() {\n this.setState({\n activeValues: undefined\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this26 = this;\n\n var _this$props78 = this.props,\n data = _this$props78.data,\n tooltip = _this$props78.tooltip,\n xScale = _this$props78.xScale,\n yScale = _this$props78.yScale,\n height = _this$props78.height,\n width = _this$props78.width,\n layout = _this$props78.layout;\n var isMulti = this.getIsMulti();\n return React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n childRef: this.ref,\n xScale: xScale,\n yScale: yScale,\n data: data,\n height: height,\n width: width,\n inverse: false,\n isHorizontal: layout === 'horizontal',\n color: this.getColor.bind(this),\n onValueEnter: this.onValueEnter.bind(this),\n onValueLeave: this.onValueLeave.bind(this)\n }, isMulti && data.map(function (groupData, index) {\n return React__default['default'].createElement(\"g\", {\n transform: _this26.getTransform(groupData),\n key: \"bar-group-\".concat(index)\n }, _this26.renderBarGroup(groupData.data, data.length, index));\n }), !isMulti && this.renderBarGroup(data, data.length));\n }\n }]);\n\n return BarSeries;\n}(React.Component);\n\nBarSeries.defaultProps = {\n type: 'standard',\n padding: 0.1,\n groupPadding: 16,\n animated: true,\n tooltip: React__default['default'].createElement(TooltipArea, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n followCursor: true,\n modifiers: {\n offset: '5px, 5px'\n }\n })\n }),\n colorScheme: 'cybertron',\n bar: React__default['default'].createElement(Bar, null),\n layout: 'vertical'\n};\n\nvar RangeLines = /*#__PURE__*/function (_React$Component36) {\n _inherits(RangeLines, _React$Component36);\n\n var _super46 = _createSuper(RangeLines);\n\n function RangeLines() {\n _classCallCheck(this, RangeLines);\n\n return _super46.apply(this, arguments);\n }\n\n _createClass(RangeLines, [{\n key: \"getIsVertical\",\n value: function getIsVertical() {\n return this.props.layout === 'vertical';\n }\n }, {\n key: \"getEnter\",\n value: function getEnter(rangeLineHeight) {\n var _this$props79 = this.props,\n x = _this$props79.x,\n y = _this$props79.y,\n height = _this$props79.height,\n position = _this$props79.position,\n width = _this$props79.width,\n data = _this$props79.data;\n var isVertical = this.getIsVertical();\n var newY = y;\n var newX = x; // If its diverging and the value is negative, we\n // need to reverse the type...\n\n var isTop = position === 'top';\n var direction = isVertical ? data.y < 0 && isTop ? 'bottom' : position : data.x0 < 0 && isTop ? 'bottom' : position;\n\n if (isVertical) {\n if (direction === 'top') {\n newY = y;\n } else {\n newY = y + height - rangeLineHeight;\n }\n } else {\n if (direction === 'top') {\n newX = x + width - rangeLineHeight;\n } else {\n newX = x;\n }\n }\n\n return {\n x: newX,\n y: newY,\n opacity: 1\n };\n }\n }, {\n key: \"getExit\",\n value: function getExit(rangeLineHeight) {\n var _this$props80 = this.props,\n x = _this$props80.x,\n scale = _this$props80.scale,\n height = _this$props80.height,\n width = _this$props80.width,\n y = _this$props80.y,\n position = _this$props80.position,\n type = _this$props80.type;\n var isVertical = this.getIsVertical();\n var newY = y;\n var newX = x;\n\n if (isVertical) {\n var maxY = Math.max.apply(Math, _toConsumableArray(scale.range()));\n\n if (position === 'top') {\n newY = maxY;\n } else {\n newY = maxY + height - rangeLineHeight;\n }\n } else {\n var minX = Math.min.apply(Math, _toConsumableArray(scale.range()));\n\n if (position === 'top') {\n newX = minX;\n } else {\n newX = minX + width - rangeLineHeight;\n }\n }\n\n if (type === 'stackedDiverging') {\n if (isVertical) {\n newY = newY / 2;\n } else {\n newX = newX / 2;\n }\n }\n\n return {\n y: newY,\n x: newX,\n opacity: 0\n };\n }\n }, {\n key: \"getLineHeight\",\n value: function getLineHeight() {\n var _this$props81 = this.props,\n height = _this$props81.height,\n width = _this$props81.width,\n strokeWidth = _this$props81.strokeWidth;\n var isVertical = this.getIsVertical();\n return Math.min(strokeWidth, isVertical ? height : width);\n }\n }, {\n key: \"getHeightWidth\",\n value: function getHeightWidth(rangeLineHeight) {\n var _this$props82 = this.props,\n height = _this$props82.height,\n width = _this$props82.width;\n var isVertical = this.getIsVertical();\n return {\n width: isVertical ? width : rangeLineHeight,\n height: isVertical ? rangeLineHeight : height\n };\n }\n }, {\n key: \"getDelay\",\n value: function getDelay() {\n var _this$props83 = this.props,\n animated = _this$props83.animated,\n index = _this$props83.index,\n barCount = _this$props83.barCount,\n layout = _this$props83.layout;\n var delay = 0;\n\n if (animated) {\n if (layout === 'vertical') {\n return index / barCount * 0.5;\n } else {\n return (barCount - index) / barCount * 0.5;\n }\n }\n\n return delay;\n }\n }, {\n key: \"render\",\n value: function render() {\n var color = this.props.color;\n var rangeLineHeight = this.getLineHeight();\n var enterProps = this.getEnter(rangeLineHeight);\n var exitProps = this.getExit(rangeLineHeight);\n\n var _this$getHeightWidth = this.getHeightWidth(rangeLineHeight),\n height = _this$getHeightWidth.height,\n width = _this$getHeightWidth.width;\n\n var delay = this.getDelay(); // UGH: https://github.com/framer/motion/issues/384\n\n var initial = Object.assign(Object.assign({}, exitProps), {\n attrX: exitProps.x,\n attrY: exitProps.y\n });\n delete initial.x;\n delete initial.y;\n var animate = Object.assign(Object.assign({}, enterProps), {\n attrX: enterProps.x,\n attrY: enterProps.y\n });\n delete animate.x;\n delete animate.y;\n return React__default['default'].createElement(framerMotion.motion.rect, {\n pointerEvents: \"none\",\n fill: color,\n width: width,\n height: height,\n initial: initial,\n animate: animate,\n exit: initial,\n transition: Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: delay\n })\n });\n }\n }]);\n\n return RangeLines;\n}(React.Component);\n\nRangeLines.defaultProps = {\n position: 'top',\n strokeWidth: 1,\n layout: 'vertical'\n};\n\nvar StackedBarSeries = /*#__PURE__*/function (_React$Component37) {\n _inherits(StackedBarSeries, _React$Component37);\n\n var _super47 = _createSuper(StackedBarSeries);\n\n function StackedBarSeries() {\n _classCallCheck(this, StackedBarSeries);\n\n return _super47.apply(this, arguments);\n }\n\n _createClass(StackedBarSeries, [{\n key: \"render\",\n value: function render() {\n var _a = this.props,\n type = _a.type,\n rest = __rest(_a, [\"type\"]);\n\n return React__default['default'].createElement(BarSeries, Object.assign({\n type: type\n }, rest));\n }\n }]);\n\n return StackedBarSeries;\n}(React.Component);\n\nStackedBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), {\n type: 'stacked',\n bar: React__default['default'].createElement(Bar, {\n gradient: React__default['default'].createElement(Gradient, {\n stops: [React__default['default'].createElement(GradientStop, {\n offset: \"5%\",\n stopOpacity: 0.1,\n key: \"start\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"90%\",\n stopOpacity: 0.7,\n key: \"stop\"\n })]\n }),\n rangeLines: React__default['default'].createElement(RangeLines, {\n position: \"top\",\n strokeWidth: 3\n })\n })\n});\n\nvar StackedNormalizedBarSeries = /*#__PURE__*/function (_React$Component38) {\n _inherits(StackedNormalizedBarSeries, _React$Component38);\n\n var _super48 = _createSuper(StackedNormalizedBarSeries);\n\n function StackedNormalizedBarSeries() {\n _classCallCheck(this, StackedNormalizedBarSeries);\n\n return _super48.apply(this, arguments);\n }\n\n _createClass(StackedNormalizedBarSeries, [{\n key: \"render\",\n value: function render() {\n var _a = this.props,\n rest = __rest(_a, [\"type\"]);\n\n return React__default['default'].createElement(BarSeries, Object.assign({\n type: \"stackedNormalized\"\n }, rest));\n }\n }]);\n\n return StackedNormalizedBarSeries;\n}(React.Component);\n\nStackedNormalizedBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), {\n type: 'stackedNormalized',\n tooltip: React__default['default'].createElement(TooltipArea, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n followCursor: true,\n modifiers: {\n offset: '5px, 5px'\n },\n content: function content(point, color) {\n point.data = point.data.map(function (d) {\n // Handle horz case\n var start = isNaN(d.y0) ? d.x0 : d.y0;\n var end = isNaN(d.y1) ? d.x1 : d.y1;\n return Object.assign(Object.assign({}, d), {\n value: \"\".concat(formatValue(Math.floor((end - start) * 100)), \"%\")\n });\n });\n return React__default['default'].createElement(TooltipTemplate, {\n value: point,\n color: color\n });\n }\n })\n }),\n bar: React__default['default'].createElement(Bar, {\n gradient: React__default['default'].createElement(Gradient, {\n stops: [React__default['default'].createElement(GradientStop, {\n offset: \"5%\",\n stopOpacity: 0.1,\n key: \"start\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"90%\",\n stopOpacity: 0.7,\n key: \"stop\"\n })]\n }),\n rangeLines: React__default['default'].createElement(RangeLines, {\n position: \"top\",\n strokeWidth: 3\n })\n })\n});\n\nvar MarimekkoBarSeries = /*#__PURE__*/function (_React$Component39) {\n _inherits(MarimekkoBarSeries, _React$Component39);\n\n var _super49 = _createSuper(MarimekkoBarSeries);\n\n function MarimekkoBarSeries() {\n _classCallCheck(this, MarimekkoBarSeries);\n\n return _super49.apply(this, arguments);\n }\n\n _createClass(MarimekkoBarSeries, [{\n key: \"render\",\n value: function render() {\n var _a = this.props,\n rest = __rest(_a, [\"type\"]);\n\n return React__default['default'].createElement(BarSeries, Object.assign({\n type: \"marimekko\"\n }, rest));\n }\n }]);\n\n return MarimekkoBarSeries;\n}(React.Component);\n\nMarimekkoBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), {\n type: 'marimekko',\n padding: 10,\n tooltip: React__default['default'].createElement(TooltipArea, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n followCursor: true,\n modifiers: {\n offset: '5px, 5px'\n },\n content: function content(point, color) {\n var data = Object.assign(Object.assign({}, point), {\n data: point.data.map(function (d) {\n return Object.assign(Object.assign({}, d), {\n value: \"\".concat(formatValue(d.value), \" \\u2219 \").concat(formatValue(Math.floor((d.y1 - d.y0) * 100)), \"%\")\n });\n })\n });\n return React__default['default'].createElement(TooltipTemplate, {\n value: data,\n color: color\n });\n }\n })\n }),\n bar: React__default['default'].createElement(Bar, {\n padding: 10,\n gradient: React__default['default'].createElement(Gradient, {\n stops: [React__default['default'].createElement(GradientStop, {\n offset: \"5%\",\n stopOpacity: 0.1,\n key: \"start\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"90%\",\n stopOpacity: 0.7,\n key: \"stop\"\n })]\n }),\n rangeLines: React__default['default'].createElement(RangeLines, {\n position: \"top\",\n strokeWidth: 3\n })\n })\n});\n\nvar BarLabel = /*#__PURE__*/function (_React$PureComponent11) {\n _inherits(BarLabel, _React$PureComponent11);\n\n var _super50 = _createSuper(BarLabel);\n\n function BarLabel() {\n _classCallCheck(this, BarLabel);\n\n return _super50.apply(this, arguments);\n }\n\n _createClass(BarLabel, [{\n key: \"getIsVertical\",\n value: function getIsVertical() {\n return this.props.layout === 'vertical';\n }\n }, {\n key: \"getEnter\",\n value: function getEnter() {\n var _this$props84 = this.props,\n x = _this$props84.x,\n y = _this$props84.y,\n height = _this$props84.height,\n position = _this$props84.position,\n width = _this$props84.width,\n data = _this$props84.data,\n padding = _this$props84.padding;\n var isVertical = this.getIsVertical();\n var newY = y;\n var newX = x; // If its diverging and the value is negative, we\n // need to reverse the type...\n\n var isTop = position === 'top';\n var direction = isVertical ? data.y < 0 && isTop ? 'bottom' : position : data.x0 < 0 && isTop ? 'bottom' : position;\n\n if (isVertical) {\n if (direction === 'top') {\n newY = y - padding;\n } else if (direction === 'center') {\n newY = y + height / 2;\n } else if (direction === 'bottom') {\n newY = y + height - padding;\n }\n\n newX = newX + width / 2;\n } else {\n if (direction === 'top') {\n newX = x + width + padding;\n } else if (direction === 'center') {\n newX = x + width / 2;\n } else if (direction === 'bottom') {\n newX = x + padding;\n }\n\n newY = newY + height / 2;\n }\n\n return {\n translateX: newX,\n translateY: newY,\n opacity: 1\n };\n }\n }, {\n key: \"getExit\",\n value: function getExit() {\n var _this$props85 = this.props,\n x = _this$props85.x,\n scale = _this$props85.scale,\n height = _this$props85.height,\n width = _this$props85.width,\n y = _this$props85.y,\n position = _this$props85.position,\n type = _this$props85.type,\n padding = _this$props85.padding;\n var isVertical = this.getIsVertical();\n var newY = y;\n var newX = x;\n\n if (isVertical) {\n var maxY = Math.max.apply(Math, _toConsumableArray(scale.range()));\n\n if (position === 'top') {\n newY = maxY;\n } else {\n newY = maxY + height + padding;\n }\n\n newX = newX + width / 2;\n } else {\n var minX = Math.min.apply(Math, _toConsumableArray(scale.range()));\n\n if (position === 'top') {\n newX = minX;\n } else {\n newX = minX + width + padding;\n }\n\n newY = newY + height / 2;\n }\n\n if (type === 'stackedDiverging') {\n if (isVertical) {\n newY = newY / 2;\n } else {\n newX = newX / 2;\n }\n }\n\n return {\n translateY: newY,\n translateX: newX,\n opacity: 0\n };\n }\n }, {\n key: \"getDelay\",\n value: function getDelay() {\n var _this$props86 = this.props,\n animated = _this$props86.animated,\n index = _this$props86.index,\n barCount = _this$props86.barCount,\n layout = _this$props86.layout;\n var delay = 0;\n\n if (animated) {\n if (layout === 'vertical') {\n return index / barCount * 0.5;\n } else {\n return (barCount - index) / barCount * 0.5;\n }\n }\n\n return delay;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props87 = this.props,\n fontSize = _this$props87.fontSize,\n fontFamily = _this$props87.fontFamily,\n fill = _this$props87.fill,\n className = _this$props87.className,\n text = _this$props87.text;\n var enterProps = this.getEnter();\n var exitProps = this.getExit();\n var delay = this.getDelay();\n var textAnchor = this.getIsVertical() ? 'middle' : 'start';\n return React__default['default'].createElement(framerMotion.motion.g, {\n initial: exitProps,\n animate: enterProps,\n exit: exitProps,\n transition: Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: delay\n }),\n fontSize: fontSize,\n fontFamily: fontFamily\n }, React__default['default'].createElement(\"text\", {\n fill: fill,\n className: className,\n textAnchor: textAnchor\n }, text));\n }\n }]);\n\n return BarLabel;\n}(React.PureComponent);\n\nBarLabel.defaultProps = {\n position: 'top',\n layout: 'vertical',\n fontSize: 13,\n padding: 5,\n fontFamily: 'sans-serif',\n fill: '#000'\n};\n\nvar HistogramBarSeries = /*#__PURE__*/function (_React$Component40) {\n _inherits(HistogramBarSeries, _React$Component40);\n\n var _super51 = _createSuper(HistogramBarSeries);\n\n function HistogramBarSeries() {\n _classCallCheck(this, HistogramBarSeries);\n\n return _super51.apply(this, arguments);\n }\n\n _createClass(HistogramBarSeries, [{\n key: \"render\",\n value: function render() {\n var _a = this.props,\n rest = __rest(_a, [\"type\"]);\n\n return React__default['default'].createElement(BarSeries, Object.assign({}, rest));\n }\n }]);\n\n return HistogramBarSeries;\n}(React.Component);\n\nHistogramBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), {\n colorScheme: schemes.cybertron[0],\n tooltip: React__default['default'].createElement(TooltipArea, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n followCursor: true,\n modifiers: {\n offset: '5px, 5px'\n },\n content: function content(point, color) {\n var data = Object.assign(Object.assign({}, point), {\n x: \"\".concat(formatValue(point.x0), \" - \").concat(formatValue(point.x1)),\n value: point.y\n });\n return React__default['default'].createElement(TooltipTemplate, {\n value: data,\n color: color\n });\n }\n })\n })\n});\n\nvar GuideBar = function GuideBar(_a) {\n var active = _a.active,\n _a$fill = _a.fill,\n fill = _a$fill === void 0 ? '#eee' : _a$fill,\n _a$opacity = _a.opacity,\n opacity = _a$opacity === void 0 ? 0.15 : _a$opacity,\n rest = __rest(_a, [\"active\", \"fill\", \"opacity\"]);\n\n var x = rest.x,\n y = rest.y,\n other = __rest(rest, [\"x\", \"y\"]);\n\n return React__default['default'].createElement(framerMotion.motion.rect, Object.assign({}, other, {\n fill: fill,\n pointerEvents: \"none\",\n initial: \"hidden\",\n animate: active ? 'visible' : 'hidden',\n variants: {\n hidden: {\n opacity: 0,\n attrX: x,\n attrY: y\n },\n visible: {\n opacity: opacity,\n attrX: x,\n attrY: y\n }\n }\n }));\n};\n\nvar css_248z$e = \".BarChart-module_barChart__36biH {\\n overflow: visible;\\n}\\n\\n .BarChart-module_barChart__36biH.BarChart-module_stackedNormalized__3l5Vx .bar, .BarChart-module_barChart__36biH.BarChart-module_stacked__12DMR .bar, .BarChart-module_barChart__36biH.BarChart-module_marimekko__33Uhg .bar {\\n stroke: var(--color-background);\\n stroke-width: 0.2;\\n }\\n\";\nvar css$e = {\n \"barChart\": \"BarChart-module_barChart__36biH\",\n \"stackedNormalized\": \"BarChart-module_stackedNormalized__3l5Vx\",\n \"stacked\": \"BarChart-module_stacked__12DMR\",\n \"marimekko\": \"BarChart-module_marimekko__33Uhg\"\n};\nstyleInject(css_248z$e);\n\nvar BarChart = /*#__PURE__*/function (_React$Component41) {\n _inherits(BarChart, _React$Component41);\n\n var _super52 = _createSuper(BarChart);\n\n function BarChart() {\n _classCallCheck(this, BarChart);\n\n return _super52.apply(this, arguments);\n }\n\n _createClass(BarChart, [{\n key: \"getScalesAndData\",\n value: function getScalesAndData(chartHeight, chartWidth) {\n var _this$props88 = this.props,\n yAxis = _this$props88.yAxis,\n xAxis = _this$props88.xAxis,\n series = _this$props88.series;\n var _series$props = series.props,\n type = _series$props.type,\n layout = _series$props.layout;\n var isVertical = this.getIsVertical();\n var isMarimekko = type === 'marimekko';\n var isGrouped = type === 'grouped';\n var isStacked = type === 'stacked' || type === 'stackedNormalized' || type === 'stackedDiverging';\n var isMultiSeries = isGrouped || isStacked;\n var data;\n\n if (isStacked) {\n var distroType = 'default';\n\n if (type === 'stackedNormalized') {\n distroType = 'expand';\n } else if (type === 'stackedDiverging') {\n distroType = 'diverging';\n }\n\n data = buildBarStackData(this.props.data, distroType, layout);\n } else if (type === 'waterfall') {\n data = buildWaterfall(this.props.data, layout, this.props.series.props.binSize);\n } else if (isMarimekko) {\n data = buildMarimekkoData(this.props.data);\n } else if (isGrouped) {\n data = buildNestedChartData(this.props.data, false, layout);\n } else {\n data = buildShallowChartData(this.props.data, layout, this.props.series.props.binSize);\n }\n\n var yScale;\n var xScale;\n var xScale1;\n\n if (isVertical) {\n if (isGrouped) {\n var _this$getMultiGroupSc = this.getMultiGroupScales(data, chartHeight, chartWidth),\n keyScale = _this$getMultiGroupSc.keyScale,\n groupScale = _this$getMultiGroupSc.groupScale;\n\n xScale = groupScale;\n xScale1 = keyScale;\n } else if (isMarimekko) {\n var _this$getMarimekkoGro = this.getMarimekkoGroupScales(data, xAxis, chartWidth),\n _keyScale = _this$getMarimekkoGro.keyScale,\n _groupScale = _this$getMarimekkoGro.groupScale;\n\n xScale = _groupScale;\n xScale1 = _keyScale;\n } else {\n xScale = this.getKeyScale(data, xAxis, isMultiSeries, chartWidth);\n }\n\n yScale = this.getValueScale(data, yAxis, isMultiSeries, chartHeight);\n } else {\n if (isGrouped) {\n var _this$getMultiGroupSc2 = this.getMultiGroupScales(data, chartHeight, chartWidth),\n _keyScale2 = _this$getMultiGroupSc2.keyScale,\n _groupScale2 = _this$getMultiGroupSc2.groupScale;\n\n yScale = _groupScale2;\n xScale1 = _keyScale2;\n xScale = this.getKeyScale(data, xAxis, isMultiSeries, chartWidth);\n } else if (isMarimekko) {\n throw new Error('Marimekko is currently not supported for horizontal layouts');\n } else {\n xScale = this.getKeyScale(data, xAxis, isMultiSeries, chartWidth);\n yScale = this.getValueScale(data, yAxis, isMultiSeries, chartHeight);\n }\n }\n\n return {\n xScale: xScale,\n xScale1: xScale1,\n yScale: yScale,\n data: data\n };\n }\n }, {\n key: \"getKeyAxis\",\n value: function getKeyAxis() {\n var _this$props89 = this.props,\n yAxis = _this$props89.yAxis,\n xAxis = _this$props89.xAxis;\n var isVertical = this.getIsVertical();\n return isVertical ? xAxis : yAxis;\n }\n }, {\n key: \"getIsDiverging\",\n value: function getIsDiverging() {\n return this.props.series.props.type === 'stackedDiverging';\n }\n }, {\n key: \"getIsVertical\",\n value: function getIsVertical() {\n return this.props.series.props.layout === 'vertical';\n }\n }, {\n key: \"getMarimekkoGroupScales\",\n value: function getMarimekkoGroupScales(data, axis, width) {\n var series = this.props.series;\n var keyScale = getMarimekkoScale(width, axis.props.roundDomains);\n var groupScale = getMarimekkoGroupScale({\n width: width,\n padding: series.props.padding,\n data: data,\n valueScale: keyScale\n });\n return {\n keyScale: keyScale,\n groupScale: groupScale\n };\n }\n }, {\n key: \"getMultiGroupScales\",\n value: function getMultiGroupScales(data, height, width) {\n var series = this.props.series;\n var isVertical = this.getIsVertical();\n var _series$props2 = series.props,\n groupPadding = _series$props2.groupPadding,\n layout = _series$props2.layout;\n var groupScale = getGroupScale({\n dimension: isVertical ? width : height,\n direction: layout,\n padding: groupPadding,\n data: data\n });\n var keyScale = getInnerScale({\n groupScale: groupScale,\n padding: series.props.padding,\n data: data,\n prop: isVertical ? 'x' : 'y'\n });\n return {\n groupScale: groupScale,\n keyScale: keyScale\n };\n }\n }, {\n key: \"getKeyScale\",\n value: function getKeyScale(data, axis, isMultiSeries, width) {\n var series = this.props.series;\n return getXScale({\n width: width,\n type: axis.props.type,\n roundDomains: axis.props.roundDomains,\n data: data,\n padding: series.props.padding,\n domain: axis.props.domain,\n isMultiSeries: isMultiSeries,\n isDiverging: this.getIsDiverging()\n });\n }\n }, {\n key: \"getValueScale\",\n value: function getValueScale(data, axis, isMultiSeries, height) {\n var series = this.props.series;\n return getYScale({\n roundDomains: axis.props.roundDomains,\n padding: series.props.padding,\n type: axis.props.type,\n height: height,\n data: data,\n domain: axis.props.domain,\n isMultiSeries: isMultiSeries,\n isDiverging: this.getIsDiverging()\n });\n }\n }, {\n key: \"renderChart\",\n value: function renderChart(containerProps) {\n var _this27 = this;\n\n var chartHeight = containerProps.chartHeight,\n chartWidth = containerProps.chartWidth,\n id = containerProps.id,\n updateAxes = containerProps.updateAxes;\n var _this$props90 = this.props,\n series = _this$props90.series,\n xAxis = _this$props90.xAxis,\n yAxis = _this$props90.yAxis,\n brush = _this$props90.brush,\n gridlines = _this$props90.gridlines,\n secondaryAxis = _this$props90.secondaryAxis;\n\n var _this$getScalesAndDat = this.getScalesAndData(chartHeight, chartWidth),\n xScale = _this$getScalesAndDat.xScale,\n xScale1 = _this$getScalesAndDat.xScale1,\n yScale = _this$getScalesAndDat.yScale,\n data = _this$getScalesAndDat.data;\n\n var isVertical = this.getIsVertical();\n var keyAxis = this.getKeyAxis();\n var isCategorical = keyAxis.props.type === 'category';\n return React__default['default'].createElement(React.Fragment, null, containerProps.chartSized && gridlines && React__default['default'].createElement(rdk.CloneElement, {\n element: gridlines,\n height: chartHeight,\n width: chartWidth,\n yScale: yScale,\n xScale: xScale,\n yAxis: yAxis.props,\n xAxis: xAxis.props\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: xAxis,\n height: chartHeight,\n width: chartWidth,\n scale: xScale,\n onDimensionsChange: bind__default['default'](updateAxes, this, isVertical ? 'horizontal' : 'vertical')\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: yAxis,\n height: chartHeight,\n width: chartWidth,\n scale: yScale,\n onDimensionsChange: bind__default['default'](updateAxes, this, isVertical ? 'vertical' : 'horizontal')\n }), secondaryAxis && secondaryAxis.map(function (axis, i) {\n return React__default['default'].createElement(rdk.CloneElement, {\n key: i,\n element: axis,\n height: chartHeight,\n width: chartWidth,\n onDimensionsChange: bind__default['default'](updateAxes, _this27, 'horizontal')\n });\n }), containerProps.chartSized && React__default['default'].createElement(rdk.CloneElement, {\n element: brush,\n height: chartHeight,\n width: chartWidth,\n scale: xScale\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: \"bar-series-\".concat(id),\n data: data,\n height: chartHeight,\n width: chartWidth,\n isCategorical: isCategorical,\n xScale: xScale,\n xScale1: xScale1,\n yScale: yScale\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this28 = this;\n\n var _this$props91 = this.props,\n id = _this$props91.id,\n width = _this$props91.width,\n height = _this$props91.height,\n margins = _this$props91.margins,\n className = _this$props91.className,\n series = _this$props91.series,\n xAxis = _this$props91.xAxis,\n yAxis = _this$props91.yAxis;\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: isAxisVisible(xAxis.props),\n yAxisVisible: isAxisVisible(yAxis.props),\n className: classNames__default['default'](css$e.barChart, className, css$e[series.props.type])\n }, function (props) {\n return _this28.renderChart(props);\n });\n }\n }]);\n\n return BarChart;\n}(React.Component);\n\nBarChart.defaultProps = {\n data: [],\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"category\",\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n tickSize: 20\n })\n }),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"value\"\n }),\n series: React__default['default'].createElement(BarSeries, null),\n gridlines: React__default['default'].createElement(GridlineSeries, null),\n brush: null\n};\n\nvar MarimekkoChart = function MarimekkoChart(_a) {\n var _a$series = _a.series,\n series = _a$series === void 0 ? React__default['default'].createElement(MarimekkoBarSeries, null) : _a$series,\n _a$xAxis = _a.xAxis,\n xAxis = _a$xAxis === void 0 ? React__default['default'].createElement(LinearXAxis, {\n type: \"category\",\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n tickSize: 15\n })\n }) : _a$xAxis,\n _a$yAxis = _a.yAxis,\n yAxis = _a$yAxis === void 0 ? React__default['default'].createElement(LinearYAxis, {\n type: \"value\",\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n label: React__default['default'].createElement(LinearYAxisTickLabel, {\n rotation: false,\n format: function format(data) {\n return \"\".concat(data * 100, \"%\");\n }\n })\n })\n }) : _a$yAxis,\n rest = __rest(_a, [\"series\", \"xAxis\", \"yAxis\"]);\n\n return React__default['default'].createElement(BarChart, Object.assign({}, rest, {\n series: series,\n xAxis: xAxis,\n yAxis: yAxis\n }));\n};\n\nvar StackedBarChart = function StackedBarChart(_a) {\n var _a$series2 = _a.series,\n series = _a$series2 === void 0 ? React__default['default'].createElement(StackedBarSeries, null) : _a$series2,\n rest = __rest(_a, [\"series\"]);\n\n return React__default['default'].createElement(BarChart, Object.assign({}, rest, {\n series: series\n }));\n};\n\nvar StackedNormalizedBarChart = function StackedNormalizedBarChart(_a) {\n var _a$series3 = _a.series,\n series = _a$series3 === void 0 ? React__default['default'].createElement(StackedNormalizedBarSeries, null) : _a$series3,\n _a$yAxis2 = _a.yAxis,\n yAxis = _a$yAxis2 === void 0 ? React__default['default'].createElement(LinearYAxis, {\n type: \"value\",\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n label: React__default['default'].createElement(LinearYAxisTickLabel, {\n rotation: false,\n format: function format(data) {\n return \"\".concat(data * 100, \"%\");\n }\n })\n })\n }) : _a$yAxis2,\n rest = __rest(_a, [\"series\", \"yAxis\"]);\n\n return React__default['default'].createElement(BarChart, Object.assign({}, rest, {\n series: series,\n yAxis: yAxis\n }));\n};\n\nvar HistogramBarChart = function HistogramBarChart(_a) {\n var _a$series4 = _a.series,\n series = _a$series4 === void 0 ? React__default['default'].createElement(HistogramBarSeries, null) : _a$series4,\n rest = __rest(_a, [\"series\"]);\n\n return React__default['default'].createElement(BarChart, Object.assign({}, rest, {\n series: series\n }));\n};\n\nvar css_248z$f = \".HiveNode-module_node__3bcfx {\\n transition: opacity 100ms ease-in-out;\\n cursor: pointer;\\n}\\n\\n.HiveNode-module_inactive__2bS6R {\\n opacity: 0.2;\\n}\\n\";\nvar css$f = {\n \"node\": \"HiveNode-module_node__3bcfx\",\n \"inactive\": \"HiveNode-module_inactive__2bS6R\"\n};\nstyleInject(css_248z$f);\n\nvar HiveNode = function HiveNode(_ref25) {\n var angle = _ref25.angle,\n radius = _ref25.radius,\n node = _ref25.node,\n color = _ref25.color,\n onClick = _ref25.onClick,\n onMouseOver = _ref25.onMouseOver,\n onMouseOut = _ref25.onMouseOut,\n active = _ref25.active,\n disabled = _ref25.disabled;\n // If the size exists on the node, use it to specify the node size.\n // Otherwise, calculate a relative size using the node count.\n var size = node.size;\n\n if (size === undefined) {\n size = node.count || 0;\n }\n\n return React__default['default'].createElement(\"circle\", {\n className: classNames__default['default'](css$f.node, _defineProperty({}, css$f.inactive, !active)),\n transform: \"rotate(\".concat(getDegrees(angle(node.x)), \")\"),\n cx: radius(node.y),\n r: size,\n style: {\n cursor: disabled ? 'initial' : 'cursor'\n },\n fill: color(node.x),\n onClick: onClick,\n onMouseOver: onMouseOver,\n onMouseOut: onMouseOut\n });\n};\n\nvar css_248z$g = \".HiveAxis-module_axis__4FERZ {\\n stroke: #575f67;\\n stroke-width: 1.5px;\\n}\\n\";\nvar css$g = {\n \"axis\": \"HiveAxis-module_axis__4FERZ\"\n};\nstyleInject(css_248z$g);\n\nvar HiveAxis = function HiveAxis(_ref26) {\n var radius = _ref26.radius,\n index = _ref26.index,\n angle = _ref26.angle,\n color = _ref26.color;\n\n var _radius$range = radius.range(),\n _radius$range2 = _slicedToArray(_radius$range, 2),\n axisStart = _radius$range2[0],\n axisEnd = _radius$range2[1];\n\n var axisLength = axisEnd - axisStart;\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"line\", {\n className: css$g.axis,\n style: {\n stroke: color(index)\n },\n transform: \"rotate(\".concat(getDegrees(angle(index)), \")\"),\n x1: axisStart,\n x2: axisEnd\n }), React__default['default'].createElement(\"line\", {\n className: css$g.axis,\n style: {\n stroke: color(index)\n },\n transform: \"rotate(\".concat(getDegrees(angle(index)) + 90, \")\"),\n x1: -axisLength / 20,\n x2: axisLength / 20,\n y1: -axisEnd,\n y2: -axisEnd\n }), React__default['default'].createElement(\"line\", {\n className: css$g.axis,\n style: {\n stroke: color(index)\n },\n transform: \"rotate(\".concat(getDegrees(angle(index)) + 90, \")\"),\n x1: -axisStart / 3,\n x2: 0,\n y1: axisStart * -0.8,\n y2: axisStart * -1\n }), React__default['default'].createElement(\"line\", {\n className: css$g.axis,\n style: {\n stroke: color(index)\n },\n transform: \"rotate(\".concat(getDegrees(angle(index)) + 90, \")\"),\n x1: 0,\n x2: axisStart / 3,\n y1: -axisStart,\n y2: axisStart * -0.8\n }));\n};\n/**\r\n * Hive layout\r\n * Original: https://github.com/d3/d3-plugins/tree/master/hive\r\n */\n\n\nfunction hiveLayout() {\n var _this29 = this;\n\n var source = function source(d) {\n return d.source;\n };\n\n var target = function target(d) {\n return d.target;\n };\n\n var angle = function angle(d) {\n return d.angle;\n };\n\n var startRadius = function startRadius(d) {\n return d.radius;\n };\n\n var endRadius = startRadius;\n var arcOffset = -Math.PI / 2;\n\n var link = function link(d, i) {\n var s = node(source, _this29, d, i);\n var t = node(target, _this29, d, i);\n var x;\n\n if (t.a < s.a) {\n x = t;\n t = s;\n s = x;\n }\n\n if (t.a - s.a > Math.PI) {\n s.a += 2 * Math.PI;\n }\n\n var a1 = s.a + (t.a - s.a) / 3;\n var a2 = t.a - (t.a - s.a) / 3;\n return s.r0 - s.r1 || t.r0 - t.r1 ? 'M' + Math.cos(s.a) * s.r0 + ',' + Math.sin(s.a) * s.r0 + 'L' + Math.cos(s.a) * s.r1 + ',' + Math.sin(s.a) * s.r1 + 'C' + Math.cos(a1) * s.r1 + ',' + Math.sin(a1) * s.r1 + ' ' + Math.cos(a2) * t.r1 + ',' + Math.sin(a2) * t.r1 + ' ' + Math.cos(t.a) * t.r1 + ',' + Math.sin(t.a) * t.r1 + 'L' + Math.cos(t.a) * t.r0 + ',' + Math.sin(t.a) * t.r0 + 'C' + Math.cos(a2) * t.r0 + ',' + Math.sin(a2) * t.r0 + ' ' + Math.cos(a1) * s.r0 + ',' + Math.sin(a1) * s.r0 + ' ' + Math.cos(s.a) * s.r0 + ',' + Math.sin(s.a) * s.r0 : 'M' + Math.cos(s.a) * s.r0 + ',' + Math.sin(s.a) * s.r0 + 'C' + Math.cos(a1) * s.r1 + ',' + Math.sin(a1) * s.r1 + ' ' + Math.cos(a2) * t.r1 + ',' + Math.sin(a2) * t.r1 + ' ' + Math.cos(t.a) * t.r1 + ',' + Math.sin(t.a) * t.r1;\n };\n\n var node = function node(method, thiz, d, i) {\n var n = method.call(thiz, d, i);\n var a = +(typeof angle === 'function' ? angle.call(thiz, n, i) : angle) + arcOffset;\n var r0 = +(typeof startRadius === 'function' ? startRadius.call(thiz, n, i) : startRadius);\n var r1 = startRadius === endRadius ? r0 : +(typeof endRadius === 'function' ? endRadius.call(thiz, n, i) : endRadius);\n return {\n r0: r0,\n r1: r1,\n a: a\n };\n };\n\n link.source = function (s) {\n if (!s) {\n return source;\n }\n\n source = s;\n return link;\n };\n\n link.target = function (t) {\n if (!t) {\n return target;\n }\n\n target = t;\n return link;\n };\n\n link.angle = function (a) {\n if (!a) {\n return angle;\n }\n\n angle = a;\n return link;\n };\n\n link.radius = function (r) {\n if (!r) {\n return startRadius;\n }\n\n startRadius = endRadius = r;\n return link;\n };\n\n link.startRadius = function (r) {\n if (!r) {\n return startRadius;\n }\n\n startRadius = r;\n return link;\n };\n\n link.endRadius = function (r) {\n if (!r) {\n return endRadius;\n }\n\n endRadius = r;\n return link;\n };\n\n return link;\n}\n\nvar css_248z$h = \".HiveLink-module_link__3WwlJ {\\n fill: none;\\n stroke-width: 1.5px;\\n stroke-opacity: 0.5;\\n transition: opacity 100ms ease-in-out;\\n}\\n\\n.HiveLink-module_inactive__3KKt1 {\\n opacity: 0.7;\\n}\\n\";\nvar css$h = {\n \"link\": \"HiveLink-module_link__3WwlJ\",\n \"inactive\": \"HiveLink-module_inactive__3KKt1\"\n};\nstyleInject(css_248z$h);\n\nvar HiveLink = function HiveLink(_ref27) {\n var angle = _ref27.angle,\n radius = _ref27.radius,\n link = _ref27.link,\n color = _ref27.color,\n active = _ref27.active,\n onMouseOver = _ref27.onMouseOver,\n onMouseOut = _ref27.onMouseOut;\n\n var prepareData = function prepareData() {\n var hive = hiveLayout();\n return {\n hiveAngle: hive.angle(function (d) {\n return angle(d.x);\n }),\n hiveRadius: hive.radius(function (d) {\n return radius(d.y);\n })\n };\n };\n\n var _React$useMemo = React.useMemo(function () {\n return prepareData();\n }, [angle, radius]),\n hiveAngle = _React$useMemo.hiveAngle,\n hiveRadius = _React$useMemo.hiveRadius;\n\n var stroke = typeof color === 'string' ? color : color(link.source.x);\n return React__default['default'].createElement(\"path\", {\n className: classNames__default['default'](css$h.link, _defineProperty({}, css$h.inactive, !active)),\n d: \"\".concat(hiveAngle(link), \" \").concat(hiveRadius(link)),\n stroke: stroke,\n onMouseOver: onMouseOver,\n onMouseOut: onMouseOut\n });\n};\n\nvar css_248z$i = \".HiveLabel-module_label__2I6Uz {\\n fill: rgba(255, 255, 255, 0.5);\\n font-size: 12px;\\n text-transform: uppercase;\\n}\\n\";\nvar css$i = {\n \"label\": \"HiveLabel-module_label__2I6Uz\"\n};\nstyleInject(css_248z$i);\n\nvar degrees = function degrees(radians) {\n var res = radians / Math.PI * 180;\n return res > 90 ? res + 180 : res;\n};\n\nvar translate = function translate(d, outerRadius, padding) {\n return d > 90 ? outerRadius + 8 + padding : -(outerRadius + padding);\n};\n\nvar HiveLabel = function HiveLabel(_ref28) {\n var index = _ref28.index,\n text = _ref28.text,\n angle = _ref28.angle,\n outerRadius = _ref28.outerRadius,\n label = _ref28.label;\n var transform = React.useMemo(function () {\n return degrees(angle(index));\n }, [angle, index]);\n return React__default['default'].createElement(\"text\", {\n dy: translate(transform, outerRadius, label.padding),\n className: css$i.label,\n strokeWidth: \"0.01\",\n textAnchor: \"middle\",\n transform: \"rotate(\".concat(transform, \")\")\n }, text);\n};\n\nvar css_248z$j = \".HiveTooltip-module_label__3PblP {\\n font-size: 16px;\\n margin-bottom: 3px;\\n}\\n\\n.HiveTooltip-module_value__326K_ {\\n font-size: 13px;\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\";\nvar css$j = {\n \"label\": \"HiveTooltip-module_label__3PblP\",\n \"value\": \"HiveTooltip-module_value__326K_\"\n};\nstyleInject(css_248z$j);\n\nvar HiveTooltip = function HiveTooltip(_ref29) {\n var axis = _ref29.axis,\n nodes = _ref29.nodes,\n node = _ref29.node;\n var label = axis[node.x].label;\n var count = nodes.filter(function (n) {\n return n.value === node.value;\n }).length;\n return React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(\"div\", {\n className: css$j.label\n }, label, \" - \", formatValue(node.value)), React__default['default'].createElement(\"div\", {\n className: css$j.value\n }, formatValue(count), \" Total\"));\n};\n\nvar HivePlot = function HivePlot(_ref30) {\n var _ref30$axis = _ref30.axis,\n axis = _ref30$axis === void 0 ? [] : _ref30$axis,\n _ref30$nodes = _ref30.nodes,\n nodes = _ref30$nodes === void 0 ? [] : _ref30$nodes,\n _ref30$links = _ref30.links,\n links = _ref30$links === void 0 ? [] : _ref30$links,\n _ref30$disabled = _ref30.disabled,\n disabled = _ref30$disabled === void 0 ? false : _ref30$disabled,\n _ref30$activeIds = _ref30.activeIds,\n activeIds = _ref30$activeIds === void 0 ? [] : _ref30$activeIds,\n _ref30$label = _ref30.label,\n label = _ref30$label === void 0 ? {\n show: true,\n padding: 10\n } : _ref30$label,\n width = _ref30.width,\n height = _ref30.height,\n _ref30$innerRadius = _ref30.innerRadius,\n innerRadius = _ref30$innerRadius === void 0 ? 20 : _ref30$innerRadius,\n className = _ref30.className,\n _ref30$onNodeClick = _ref30.onNodeClick,\n onNodeClick = _ref30$onNodeClick === void 0 ? function () {\n return undefined;\n } : _ref30$onNodeClick,\n _ref30$onNodeMouseOve = _ref30.onNodeMouseOver,\n onNodeMouseOver = _ref30$onNodeMouseOve === void 0 ? function () {\n return undefined;\n } : _ref30$onNodeMouseOve,\n _ref30$onLinkMouseOve = _ref30.onLinkMouseOver,\n onLinkMouseOver = _ref30$onLinkMouseOve === void 0 ? function () {\n return undefined;\n } : _ref30$onLinkMouseOve,\n _ref30$onNodeMouseOut = _ref30.onNodeMouseOut,\n onNodeMouseOut = _ref30$onNodeMouseOut === void 0 ? function () {\n return undefined;\n } : _ref30$onNodeMouseOut,\n _ref30$onLinkMouseOut = _ref30.onLinkMouseOut,\n onLinkMouseOut = _ref30$onLinkMouseOut === void 0 ? function () {\n return undefined;\n } : _ref30$onLinkMouseOut,\n _ref30$tooltip = _ref30.tooltip,\n tooltip = _ref30$tooltip === void 0 ? {\n show: true,\n placement: 'top',\n formatter: function formatter(attr) {\n return attr.value;\n }\n } : _ref30$tooltip,\n _ref30$colorScheme = _ref30.colorScheme,\n colorScheme = _ref30$colorScheme === void 0 ? {\n axis: ['#b1b2b6'],\n domain: ['#b1b2b6']\n } : _ref30$colorScheme;\n\n var _React$useState13 = React.useState(null),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n tooltipReference = _React$useState14[0],\n setTooltipReference = _React$useState14[1];\n\n var _React$useState15 = React.useState(null),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n nodeTooltipData = _React$useState16[0],\n setNodeTooltipData = _React$useState16[1];\n\n var _React$useState17 = React.useState(null),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n linkTooltipData = _React$useState18[0],\n setLinkTooltipData = _React$useState18[1];\n\n var _React$useState19 = React.useState(null),\n _React$useState20 = _slicedToArray(_React$useState19, 2),\n active = _React$useState20[0],\n setActive = _React$useState20[1];\n\n var onNodeMouseOverLocal = React.useCallback(function (node, event) {\n if (!disabled) {\n var activeNodeIndex = nodes.indexOf(node);\n var activeNodes = {};\n\n var _iterator24 = _createForOfIteratorHelper(links),\n _step24;\n\n try {\n for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n var link = _step24.value;\n var source = link.source,\n target = link.target;\n\n if (source.value === node.value || target.value === node.value) {\n var next = target.value === node.value ? source : target;\n var idx = nodes.indexOf(next);\n activeNodes[\"node-\".concat(idx)] = true;\n }\n }\n } catch (err) {\n _iterator24.e(err);\n } finally {\n _iterator24.f();\n }\n\n setTooltipReference(event.target);\n setNodeTooltipData(node);\n setActive(Object.assign(Object.assign(_defineProperty({}, \"node-\".concat(activeNodeIndex), true), activeNodes), links.reduce(function (accumulator, link, i) {\n if (link.source.value === node.value || link.target.value === node.value) {\n accumulator[\"link-\".concat(i)] = true;\n }\n\n return accumulator;\n }, {})));\n }\n\n onNodeMouseOver({\n nativeEvent: event,\n node: node,\n links: getLinksForNode(node)\n });\n }, [links, nodes, onNodeMouseOver, disabled]);\n var activateAdjacentLinks = React.useCallback(function (links, target, accumulator) {\n var activeLinks = [];\n links.forEach(function (childLink, index) {\n if (target === childLink.source) {\n if (!accumulator[\"link-\".concat(index)]) {\n accumulator[\"link-\".concat(index)] = true;\n activeLinks.push.apply(activeLinks, [childLink].concat(_toConsumableArray(activateAdjacentLinks(links, childLink.target, accumulator))));\n }\n }\n });\n return activeLinks;\n }, []);\n var activateLink = React.useCallback(function (link) {\n var activeLinkIndex = links.indexOf(link);\n\n var activeLinksMap = _defineProperty({}, \"link-\".concat(activeLinkIndex), true);\n\n var activeLinks = [link].concat(_toConsumableArray(activateAdjacentLinks(links, link.target, activeLinksMap)));\n setActive(Object.assign(Object.assign({}, activeLinksMap), nodes.reduce(function (accumulator, node, i) {\n var _iterator25 = _createForOfIteratorHelper(activeLinks),\n _step25;\n\n try {\n for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n var activeLink = _step25.value;\n var source = activeLink.source,\n target = activeLink.target;\n\n if (node === source || node === target) {\n accumulator[\"node-\".concat(i)] = true;\n }\n }\n } catch (err) {\n _iterator25.e(err);\n } finally {\n _iterator25.f();\n }\n\n return accumulator;\n }, {})));\n }, [nodes, links]);\n var onLinkMouseOverLocal = React.useCallback(function (link, event) {\n if (!disabled) {\n setTooltipReference(event.target);\n setLinkTooltipData(link);\n activateLink(link);\n }\n\n onLinkMouseOver({\n nativeEvent: event,\n link: link\n });\n }, [onLinkMouseOver, disabled]);\n var getLinksForNode = React.useCallback(function (node) {\n return links.filter(function (link) {\n return link.source.value === node.value || link.target.value === node.value;\n });\n }, [links]);\n var resetActive = React.useCallback(function () {\n setActive(null);\n setLinkTooltipData(null);\n setNodeTooltipData(null);\n setTooltipReference(null);\n }, []);\n var onNodeMouseOutLocal = React.useCallback(function (node, event) {\n resetActive();\n onNodeMouseOut({\n nativeEvent: event,\n node: node,\n links: getLinksForNode(node)\n });\n }, [onNodeMouseOut]);\n var onLinkMouseOutLocal = React.useCallback(function (link, event) {\n resetActive();\n onLinkMouseOut({\n nativeEvent: event,\n link: link\n });\n }, [onLinkMouseOut]);\n var onNodeClickLocal = React.useCallback(function (node, event) {\n if (!disabled) {\n onNodeClick({\n nativeEvent: event,\n node: node,\n links: getLinksForNode(node)\n });\n }\n }, [disabled, onNodeClick]);\n var prepareData = React.useCallback(function (_ref31) {\n var dimension = _ref31.dimension,\n innerRadius = _ref31.innerRadius,\n colorScheme = _ref31.colorScheme,\n axis = _ref31.axis,\n label = _ref31.label;\n var outerRadius = dimension / 2;\n\n if (label.show) {\n outerRadius = outerRadius - (10 + label.padding);\n }\n\n return {\n angle: d3Scale.scalePoint().domain(d3Array.range(axis.length + 1)).range([0, 2 * Math.PI]),\n radius: d3Scale.scaleLinear().range([innerRadius, outerRadius]),\n axisColor: d3Scale.scaleOrdinal(colorScheme.axis).domain(d3Array.range(20)),\n domainColor: d3Scale.scaleOrdinal(colorScheme.domain).domain(d3Array.range(20)),\n outerRadius: outerRadius\n };\n }, []);\n var renderAxis = React.useCallback(function (_ref32) {\n var angle = _ref32.angle,\n radius = _ref32.radius,\n axisColor = _ref32.axisColor,\n outerRadius = _ref32.outerRadius;\n return React__default['default'].createElement(React.Fragment, null, axis.map(function (a, i) {\n return React__default['default'].createElement(\"g\", {\n key: \"axis-\".concat(a.attribute)\n }, React__default['default'].createElement(HiveAxis, {\n angle: angle,\n index: i,\n color: axisColor,\n radius: radius\n }), label.show && React__default['default'].createElement(HiveLabel, {\n index: i,\n text: a.label,\n label: label,\n outerRadius: outerRadius,\n angle: angle\n }));\n }));\n }, [axis, label]);\n var isActive = React.useCallback(function (nodeOrLink, index, type) {\n // If no there is nothing active, then everything is active.\n if (!active && !activeIds.length) {\n return true;\n } // If this node is active because it is being hovered\n\n\n if (active && active[\"\".concat(type, \"-\").concat(index)]) {\n return true;\n } // If the ID matches one of the active IDs passed in the props\n\n\n if (!!activeIds.length && !!nodeOrLink.id && activeIds.includes(nodeOrLink.id)) {\n return true;\n }\n\n return false;\n }, [activeIds, active]);\n var renderLinks = React.useCallback(function (_ref33) {\n var angle = _ref33.angle,\n radius = _ref33.radius,\n domainColor = _ref33.domainColor;\n return React__default['default'].createElement(React.Fragment, null, links.map(function (link, i) {\n return React__default['default'].createElement(HiveLink, {\n key: \"\".concat(link.value, \"-\").concat(i),\n color: link.color || domainColor,\n active: isActive(link, i, 'link'),\n angle: angle,\n radius: radius,\n link: link,\n onMouseOver: function onMouseOver(event) {\n return onLinkMouseOverLocal(link, event);\n },\n onMouseOut: function onMouseOut(event) {\n return onLinkMouseOutLocal(link, event);\n }\n });\n }));\n }, [links]);\n var renderNodes = React.useCallback(function (_ref34) {\n var angle = _ref34.angle,\n radius = _ref34.radius,\n domainColor = _ref34.domainColor;\n return React__default['default'].createElement(React.Fragment, null, nodes.map(function (node, i) {\n return React__default['default'].createElement(HiveNode, {\n node: node,\n key: \"\".concat(node.value, \"-\").concat(i),\n active: isActive(node, i, 'node'),\n color: domainColor,\n radius: radius,\n angle: angle,\n disabled: disabled,\n onMouseOver: function onMouseOver(event) {\n return onNodeMouseOverLocal(node, event);\n },\n onMouseOut: function onMouseOut(event) {\n return onNodeMouseOutLocal(node, event);\n },\n onClick: function onClick(event) {\n return onNodeClickLocal(node, event);\n }\n });\n }));\n }, [nodes, disabled]);\n var renderTooltip = React.useCallback(function () {\n var formatter = tooltip.formatter,\n placement = tooltip.placement,\n show = tooltip.show;\n return React__default['default'].createElement(React.Fragment, null, !disabled && show && React__default['default'].createElement(realayers.Tooltip, {\n visible: !!active,\n reference: tooltipReference,\n placement: placement,\n content: function content() {\n return formatter(axis, nodes, linkTooltipData, nodeTooltipData) || (nodeTooltipData ? React__default['default'].createElement(HiveTooltip, {\n node: nodeTooltipData,\n nodes: nodes,\n axis: axis\n }) : null);\n }\n }));\n }, [tooltip, disabled, axis, nodes, active, tooltipReference, linkTooltipData, nodeTooltipData]);\n var renderChart = React.useCallback(function (_ref35) {\n var containerHeight = _ref35.height,\n containerWidth = _ref35.width;\n var data = prepareData({\n dimension: Math.min(containerHeight, containerWidth),\n innerRadius: innerRadius,\n colorScheme: colorScheme,\n axis: axis,\n label: label\n });\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(\"svg\", {\n width: containerWidth,\n height: containerHeight,\n className: classNames__default['default'](className)\n }, React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(containerWidth / 2, \", \").concat(containerHeight / 2 + innerRadius, \")\")\n }, renderAxis(data), renderLinks(data), renderNodes(data))), renderTooltip());\n }, [innerRadius, axis, colorScheme, label, className]);\n return React__default['default'].createElement(ChartContainer, {\n height: height,\n width: width\n }, renderChart);\n};\n\nvar LineSeries = /*#__PURE__*/function (_React$Component42) {\n _inherits(LineSeries, _React$Component42);\n\n var _super53 = _createSuper(LineSeries);\n\n function LineSeries() {\n _classCallCheck(this, LineSeries);\n\n return _super53.apply(this, arguments);\n }\n\n _createClass(LineSeries, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(AreaSeries, Object.assign({}, this.props));\n }\n }]);\n\n return LineSeries;\n}(React.Component);\n\nLineSeries.defaultProps = Object.assign(Object.assign({}, AreaSeries.defaultProps), {\n area: null,\n line: React__default['default'].createElement(Line, {\n strokeWidth: 3\n })\n});\n\nvar LineChart = /*#__PURE__*/function (_React$Component43) {\n _inherits(LineChart, _React$Component43);\n\n var _super54 = _createSuper(LineChart);\n\n function LineChart() {\n _classCallCheck(this, LineChart);\n\n return _super54.apply(this, arguments);\n }\n\n _createClass(LineChart, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(AreaChart, Object.assign({}, this.props));\n }\n }]);\n\n return LineChart;\n}(React.Component);\n\nLineChart.defaultProps = Object.assign(Object.assign({}, AreaChart.defaultProps), {\n series: React__default['default'].createElement(LineSeries, null)\n});\n\nvar Map$1 = function Map$1(_ref36) {\n var id = _ref36.id,\n width = _ref36.width,\n height = _ref36.height,\n margins = _ref36.margins,\n className = _ref36.className,\n markers = _ref36.markers,\n data = _ref36.data,\n _ref36$fill = _ref36.fill,\n fill = _ref36$fill === void 0 ? 'rgba(255, 255, 255, 0.3)' : _ref36$fill;\n var getProjection = React.useCallback(function (_ref37) {\n var chartWidth = _ref37.chartWidth,\n chartHeight = _ref37.chartHeight;\n return d3Geo.geoMercator().fitSize([chartWidth, chartHeight], data).center([0, 35]);\n }, [data]);\n var renderMarker = React.useCallback(function (marker, index, projection) {\n var position = projection(marker.props.coordinates);\n\n if (!position) {\n console.warn(\"Position for \".concat(marker.props.coordinates.toString(), \" not found.\"));\n return null;\n }\n\n return React__default['default'].createElement(rdk.CloneElement, {\n element: marker,\n cx: position[0],\n cy: position[1],\n index: index\n });\n }, []);\n var renderCountry = React.useCallback(function (point, index, path) {\n // Exclude ATA\n if (point.id === '010') {\n return null;\n }\n\n return React__default['default'].createElement(\"path\", {\n key: \"path-\".concat(index),\n d: path(point),\n fill: fill\n });\n }, [fill]);\n var renderChart = React.useCallback(function (containerProps) {\n if (!data) {\n return null;\n }\n\n var projection = getProjection(containerProps);\n var path = d3Geo.geoPath().projection(projection);\n return React__default['default'].createElement(framerMotion.motion.g, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n }\n }, data.features.map(function (point, index) {\n return renderCountry(point, index, path);\n }), markers && markers.map(function (marker, index) {\n return React__default['default'].createElement(React.Fragment, {\n key: \"marker-\".concat(index)\n }, renderMarker(marker, index, projection));\n }));\n }, [data, markers]);\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: false,\n yAxisVisible: false,\n className: className\n }, function (props) {\n return renderChart(props);\n });\n};\n\nvar css_248z$k = \".MapMarker-module_marker__3uyJu {\\n fill: var(--color-primary);\\n cursor: pointer;\\n}\\n\";\nvar css$k = {\n \"marker\": \"MapMarker-module_marker__3uyJu\"\n};\nstyleInject(css_248z$k); // Set padding modifier for the tooltips\n\nvar modifiers = {\n offset: {\n offset: '0, 3px'\n }\n};\n\nvar MapMarker = function MapMarker(_ref38) {\n var _ref38$size = _ref38.size,\n size = _ref38$size === void 0 ? 3 : _ref38$size,\n index = _ref38.index,\n tooltip = _ref38.tooltip,\n cx = _ref38.cx,\n cy = _ref38.cy,\n _ref38$onClick = _ref38.onClick,\n onClick = _ref38$onClick === void 0 ? function () {\n return undefined;\n } : _ref38$onClick;\n var ref = React.useRef(null);\n\n var _React$useState21 = React.useState(false),\n _React$useState22 = _slicedToArray(_React$useState21, 2),\n active = _React$useState22[0],\n setActive = _React$useState22[1];\n\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(framerMotion.motion.circle, {\n initial: {\n opacity: 0,\n scale: 0.02\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n transition: {\n delay: index * 0.3\n },\n ref: ref,\n className: css$k.marker,\n cx: cx,\n cy: cy,\n r: size,\n onMouseEnter: function onMouseEnter() {\n return setActive(true);\n },\n onMouseLeave: function onMouseLeave() {\n return setActive(false);\n },\n onClick: onClick\n }), tooltip && React__default['default'].createElement(realayers.Tooltip, {\n visible: active,\n reference: ref,\n modifiers: modifiers,\n content: tooltip\n }));\n};\n\nvar useInterpolate = function useInterpolate(_ref39) {\n var data = _ref39.data,\n animated = _ref39.animated,\n arc = _ref39.arc;\n var prevEnter = React.useRef(null);\n var exit = React.useMemo(function () {\n var startAngle = data.startAngle;\n var endAngle = animated ? startAngle : data.endAngle;\n return Object.assign(Object.assign({}, data), {\n startAngle: startAngle,\n endAngle: endAngle\n });\n }, [data, animated]);\n var transition = React.useMemo(function () {\n return animated ? Object.assign({}, DEFAULT_TRANSITION) : {\n delay: 0\n };\n }, [animated]); // Cache the previous for transition use later\n\n var previousEnter = prevEnter.current ? Object.assign({}, prevEnter.current) : undefined;\n prevEnter.current = Object.assign({}, data);\n var d = framerMotion.useMotionValue('');\n var prevPath = framerMotion.useMotionValue(exit);\n var spring = framerMotion.useSpring(prevPath, Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n from: 0,\n to: 1\n }));\n React.useEffect(function () {\n var from = previousEnter || prevPath.get();\n var interpolator = d3Interpolate.interpolate(from, data);\n var unsub = spring.onChange(function (v) {\n return d.set(arc(interpolator(v)));\n });\n prevPath.set(data);\n return unsub;\n }, [arc, data]);\n return {\n d: d,\n transition: transition\n };\n};\n\nvar PieArc = function PieArc(_ref40) {\n var color = _ref40.color,\n data = _ref40.data,\n arc = _ref40.arc,\n _ref40$cursor = _ref40.cursor,\n cursor = _ref40$cursor === void 0 ? 'initial' : _ref40$cursor,\n _ref40$animated = _ref40.animated,\n animated = _ref40$animated === void 0 ? true : _ref40$animated,\n _ref40$disabled = _ref40.disabled,\n disabled = _ref40$disabled === void 0 ? false : _ref40$disabled,\n _ref40$onClick = _ref40.onClick,\n _onClick2 = _ref40$onClick === void 0 ? function () {\n return undefined;\n } : _ref40$onClick,\n _ref40$onMouseEnter = _ref40.onMouseEnter,\n _onMouseEnter2 = _ref40$onMouseEnter === void 0 ? function () {\n return undefined;\n } : _ref40$onMouseEnter,\n _ref40$onMouseLeave = _ref40.onMouseLeave,\n _onMouseLeave2 = _ref40$onMouseLeave === void 0 ? function () {\n return undefined;\n } : _ref40$onMouseLeave,\n _ref40$tooltip = _ref40.tooltip,\n tooltip = _ref40$tooltip === void 0 ? React__default['default'].createElement(ChartTooltip, null) : _ref40$tooltip;\n\n var arcRef = React.useRef(null);\n\n var _useInterpolate = useInterpolate({\n animated: animated,\n arc: arc,\n data: data\n }),\n transition = _useInterpolate.transition,\n d = _useInterpolate.d;\n\n var _React$useState23 = React.useState(false),\n _React$useState24 = _slicedToArray(_React$useState23, 2),\n active = _React$useState24[0],\n setActive = _React$useState24[1];\n\n var fill = React.useMemo(function () {\n return active ? chroma__default['default'](color).brighten(0.5) : color;\n }, [color, active]);\n return React__default['default'].createElement(\"g\", {\n ref: arcRef\n }, React__default['default'].createElement(framerMotion.motion.path, {\n role: \"graphics-symbol\",\n transition: transition,\n d: d,\n style: {\n cursor: cursor\n },\n fill: fill,\n onMouseEnter: function onMouseEnter(event) {\n if (!disabled) {\n setActive(true);\n\n _onMouseEnter2({\n value: data.data,\n nativeEvent: event\n });\n }\n },\n onMouseLeave: function onMouseLeave(event) {\n if (!disabled) {\n setActive(false);\n\n _onMouseLeave2({\n value: data.data,\n nativeEvent: event\n });\n }\n },\n onClick: function onClick(event) {\n if (!disabled) {\n _onClick2({\n value: data.data,\n nativeEvent: event\n });\n }\n }\n }), tooltip && !tooltip.props.disabled && React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n visible: !!active,\n reference: arcRef,\n value: {\n y: data.data.data,\n x: data.data.key\n }\n }));\n};\n/**\r\n * Finds intermediate point between two points so that this three points\r\n * can be nicely connected by two lines. One of this lines must be horizontal\r\n */\n\n\nfunction findBreakPoint(_ref41, _ref42) {\n var _ref43 = _slicedToArray(_ref41, 2),\n startX = _ref43[0],\n startY = _ref43[1];\n\n var _ref44 = _slicedToArray(_ref42, 2),\n endX = _ref44[0],\n endY = _ref44[1];\n\n var breakPoint = [0, 0]; // whether we should create breakpoint near pie or near label\n\n var breakPointCondition = (endY - startY) * Math.sign(startY) >= 0;\n\n if (breakPointCondition) {\n // extend the line starting from startY till the endY\n var scale = Math.abs(endY / startY) || 1;\n var minScale = 1;\n var maxScale = Math.abs(endX / startX) || 1;\n scale = Math.max(Math.min(maxScale, scale), minScale);\n breakPoint = [startX * scale, endY];\n } else {\n // some arbitrary scale to ensure that break point will be placed\n // at some horizontal distance from the end point\n var _scale = 0.85;\n\n var _minScale = Math.abs(startX / endX) || 1;\n\n var _maxScale = 1;\n _scale = Math.max(Math.min(_maxScale, _scale), _minScale);\n breakPoint = [endX * _scale, startY];\n }\n\n return breakPoint;\n}\n\nvar getTextAnchor = function getTextAnchor(_ref45) {\n var startAngle = _ref45.startAngle,\n endAngle = _ref45.endAngle;\n return (// we could also use the sign of position[0]\n startAngle + (endAngle - startAngle) / 2 < Math.PI ? 'start' : 'end'\n );\n};\n\nvar PieArcLabel = /*#__PURE__*/function (_React$PureComponent12) {\n _inherits(PieArcLabel, _React$PureComponent12);\n\n var _super55 = _createSuper(PieArcLabel);\n\n function PieArcLabel() {\n _classCallCheck(this, PieArcLabel);\n\n return _super55.apply(this, arguments);\n }\n\n _createClass(PieArcLabel, [{\n key: \"render\",\n value: function render() {\n var _this$props92 = this.props,\n centroid = _this$props92.centroid,\n data = _this$props92.data,\n lineStroke = _this$props92.lineStroke,\n padding = _this$props92.padding,\n fontSize = _this$props92.fontSize,\n fontFill = _this$props92.fontFill,\n format = _this$props92.format,\n fontFamily = _this$props92.fontFamily,\n position = _this$props92.position,\n outerRadius = _this$props92.outerRadius,\n width = _this$props92.width,\n height = _this$props92.height;\n var textAnchor = getTextAnchor(data);\n var text = format ? format(Object.assign(Object.assign({}, data.data), {\n textAnchor: textAnchor\n })) : formatValue(data.data.key);\n\n var _position = _slicedToArray(position, 2),\n posX = _position[0],\n posY = _position[1]; // we want to have at least some pixels of straight line (margin)\n // from pie section till we start to change line direction\n\n\n var minRadius = outerRadius + 4;\n var startPoint = centroid(data);\n var innerPoint = d3Shape.arc().innerRadius(minRadius).outerRadius(minRadius).centroid(data);\n var breakPoint = findBreakPoint(innerPoint, position);\n return React__default['default'].createElement(framerMotion.motion.g, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n transition: {\n duration: 0.1\n }\n }, typeof text === 'string' ? React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(\"title\", null, text), React__default['default'].createElement(\"text\", {\n dy: padding,\n fill: fontFill,\n fontSize: fontSize,\n fontFamily: fontFamily,\n textAnchor: textAnchor,\n style: {\n shapeRendering: 'crispEdges',\n transform: \"translate3d(\".concat(posX, \"px,\").concat(posY, \"px, 0)\")\n }\n }, text)) : React__default['default'].createElement(\"foreignObject\", {\n width: width,\n height: height,\n style: {\n transform: \"translate3d(\".concat(textAnchor === 'start' ? posX : posX - width, \"px,\").concat(posY - height / 2, \"px, 0)\"),\n color: fontFill,\n fontFamily: fontFamily,\n fontSize: fontSize\n }\n }, text), React__default['default'].createElement(\"polyline\", {\n fill: \"none\",\n stroke: lineStroke,\n points: \"\".concat(startPoint, \",\").concat(innerPoint, \",\").concat(breakPoint, \",\").concat(position)\n }));\n }\n }]);\n\n return PieArcLabel;\n}(React.PureComponent);\n\nPieArcLabel.defaultProps = {\n format: undefined,\n lineStroke: 'rgba(127,127,127,0.5)',\n fontFill: '#8F979F',\n fontSize: 11,\n fontFamily: 'sans-serif',\n padding: '.35em',\n height: 11\n};\nvar factor = 1.2;\n\nvar midAngle = function midAngle(d) {\n return d.startAngle + (d.endAngle - d.startAngle) / 2;\n};\n\nvar labelVisible = function labelVisible(arc) {\n return arc.endAngle - arc.startAngle > Math.PI / 30;\n};\n\nvar PieArcSeries = /*#__PURE__*/function (_React$Component44) {\n _inherits(PieArcSeries, _React$Component44);\n\n var _super56 = _createSuper(PieArcSeries);\n\n function PieArcSeries() {\n var _this30;\n\n _classCallCheck(this, PieArcSeries);\n\n _this30 = _super56.apply(this, arguments);\n /**\r\n * @param data\r\n * @param outerRadius - an outerRadius of the pie\r\n * @param minDistance - minimal vertical distance between adjacent labels\r\n */\n\n _this30.calculateLabelPositions = memoize__default['default'](function (data, outerRadius, minDistance, cornerRadius, padAngle, padRadius) {\n var outerArcRadius = outerRadius * factor;\n var outerArc = d3Shape.arc().innerRadius(outerArcRadius).outerRadius(outerArcRadius).cornerRadius(cornerRadius).padAngle(padAngle).padRadius(padRadius);\n var positions = data.map(function (d) {\n if (!_this30.shouldDisplayLabel(d)) {\n return null;\n }\n\n var pos = outerArc.centroid(d); // reposition the labels to the left/right from outerArc centroid\n // so that all labels won't collide with pie\n // when we will vertically reposition them\n\n pos[0] = outerArcRadius * (midAngle(d) < Math.PI ? 1 : -1);\n return pos;\n });\n\n for (var i = 0; i < data.length - 1; i++) {\n if (!positions[i]) {\n continue;\n }\n\n var _positions$i = _slicedToArray(positions[i], 2),\n aPosX = _positions$i[0],\n aPosY = _positions$i[1];\n\n for (var j = i + 1; j < data.length; j++) {\n if (!positions[j]) {\n continue;\n }\n\n var _positions$j = _slicedToArray(positions[j], 2),\n bPosX = _positions$j[0],\n bPosY = _positions$j[1]; // if they're on the same side (both with - or + sign)\n\n\n if (bPosX * aPosX > 0) {\n // if they're overlapping\n var overlap = minDistance - Math.abs(bPosY - aPosY);\n\n if (overlap > 0) {\n // push the second up or down\n positions[j][1] += Math.sign(bPosX) * overlap;\n }\n }\n }\n }\n\n return positions;\n });\n return _this30;\n }\n\n _createClass(PieArcSeries, [{\n key: \"calculateRadius\",\n value: function calculateRadius() {\n var _this$props93 = this.props,\n doughnut = _this$props93.doughnut,\n arcWidth = _this$props93.arcWidth,\n label = _this$props93.label,\n width = _this$props93.width,\n height = _this$props93.height;\n var minDimension = Math.min(width, height);\n var outerRadius = minDimension / 2;\n var labelWidth = 0;\n\n if (label) {\n labelWidth = label.props.width;\n\n if (labelWidth) {\n var outerArcRadius = width / 2 - labelWidth;\n outerRadius = Math.min(outerArcRadius / factor, height / 2);\n } else {\n outerRadius = minDimension / 3;\n labelWidth = width / 2 - outerRadius * factor;\n }\n }\n\n var innerRadius = doughnut ? outerRadius * (1 - arcWidth) : 0;\n return {\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n labelWidth: labelWidth\n };\n }\n }, {\n key: \"shouldDisplayLabel\",\n value: function shouldDisplayLabel(arcData) {\n var displayAllLabels = this.props.displayAllLabels;\n return displayAllLabels || labelVisible(arcData);\n }\n }, {\n key: \"innerArc\",\n value: function innerArc(innerRadius, outerRadius, cornerRadius, padAngle, padRadius) {\n var _this31 = this;\n\n return function (point) {\n var newOuter = _this31.calculateOuterRadius(outerRadius, point);\n\n return d3Shape.arc().innerRadius(innerRadius).outerRadius(newOuter).cornerRadius(cornerRadius).padRadius(padRadius).padAngle(padAngle)(point);\n };\n }\n }, {\n key: \"calculateOuterRadius\",\n value: function calculateOuterRadius(outerRadius, point) {\n var _this$props94 = this.props,\n explode = _this$props94.explode,\n data = _this$props94.data;\n\n if (!explode || data === undefined) {\n return outerRadius;\n }\n\n var maxVal = d3Array.max(data, function (d) {\n return d.value;\n });\n return outerRadius * point.value / maxVal;\n }\n }, {\n key: \"centroid\",\n value: function centroid(innerRadius, outerRadius) {\n var _this32 = this;\n\n return function (data) {\n var newOuter = _this32.calculateOuterRadius(outerRadius, data);\n\n return d3Shape.arc().innerRadius(innerRadius).outerRadius(newOuter).centroid(data);\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this33 = this;\n\n var _this$props95 = this.props,\n animated = _this$props95.animated,\n cornerRadius = _this$props95.cornerRadius,\n padAngle = _this$props95.padAngle,\n padRadius = _this$props95.padRadius,\n label = _this$props95.label,\n arc = _this$props95.arc,\n data = _this$props95.data;\n\n var _this$calculateRadius = this.calculateRadius(),\n outerRadius = _this$calculateRadius.outerRadius,\n innerRadius = _this$calculateRadius.innerRadius,\n labelWidth = _this$calculateRadius.labelWidth;\n\n var innerArc = this.innerArc(innerRadius, outerRadius, cornerRadius, padAngle, padRadius);\n var positions = label ? this.calculateLabelPositions(data, outerRadius, // 4 is for vertical margins between labels\n label.props.height + 4, cornerRadius, padAngle, padRadius) : [];\n var centroid = this.centroid(innerRadius, outerRadius);\n return React__default['default'].createElement(React.Fragment, null, data.map(function (arcData, index) {\n return React__default['default'].createElement(React.Fragment, {\n key: arcData.data.key.toString()\n }, positions[index] && React__default['default'].createElement(rdk.CloneElement, {\n element: label,\n data: arcData,\n centroid: centroid,\n outerRadius: outerRadius,\n width: labelWidth,\n position: positions[index]\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: arc,\n data: arcData,\n animated: animated,\n arc: innerArc,\n color: _getColor({\n data: _this33.props.data,\n colorScheme: _this33.props.colorScheme,\n point: arcData.data,\n index: index\n })\n }));\n }));\n }\n }]);\n\n return PieArcSeries;\n}(React.Component);\n\nPieArcSeries.defaultProps = {\n animated: true,\n colorScheme: 'cybertron',\n innerRadius: 0,\n cornerRadius: 0,\n padAngle: 0,\n padRadius: 0,\n explode: false,\n displayAllLabels: false,\n arcWidth: 0.25,\n label: React__default['default'].createElement(PieArcLabel, null),\n arc: React__default['default'].createElement(PieArc, null)\n};\n\nvar PieChart = function PieChart(_ref46) {\n var id = _ref46.id,\n width = _ref46.width,\n height = _ref46.height,\n className = _ref46.className,\n _ref46$displayAllLabe = _ref46.displayAllLabels,\n displayAllLabels = _ref46$displayAllLabe === void 0 ? false : _ref46$displayAllLabe,\n _ref46$data = _ref46.data,\n data = _ref46$data === void 0 ? [] : _ref46$data,\n _ref46$margins = _ref46.margins,\n margins = _ref46$margins === void 0 ? 10 : _ref46$margins,\n _ref46$series = _ref46.series,\n series = _ref46$series === void 0 ? React__default['default'].createElement(PieArcSeries, null) : _ref46$series;\n var getData = React.useMemo(function () {\n var pieLayout = d3Shape.pie().value(function (d) {\n return Number(d.data);\n }); // Explode sort doesn't work right...\n\n if (!series.props.explode) {\n pieLayout.sort(null);\n }\n\n return pieLayout(data);\n }, [data, series]);\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: false,\n yAxisVisible: false,\n center: true,\n className: classNames__default['default'](className)\n }, function (_ref47) {\n var chartWidth = _ref47.chartWidth,\n chartHeight = _ref47.chartHeight;\n return React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n data: getData,\n height: chartHeight,\n width: chartWidth,\n displayAllLabels: displayAllLabels\n });\n });\n};\n\nvar JUSTIFICATION = {\n justify: d3Sankey.sankeyJustify,\n center: d3Sankey.sankeyCenter,\n left: d3Sankey.sankeyLeft,\n right: d3Sankey.sankeyRight\n};\n\nvar Sankey = /*#__PURE__*/function (_React$Component45) {\n _inherits(Sankey, _React$Component45);\n\n var _super57 = _createSuper(Sankey);\n\n function Sankey() {\n var _this34;\n\n _classCallCheck(this, Sankey);\n\n _this34 = _super57.apply(this, arguments);\n _this34.state = {\n activeNodes: [],\n activeLinks: []\n };\n return _this34;\n }\n\n _createClass(Sankey, [{\n key: \"getNodeColor\",\n value: function getNodeColor(node, index) {\n var _this$props96 = this.props,\n colorScheme = _this$props96.colorScheme,\n nodes = _this$props96.nodes;\n\n if (colorScheme) {\n return _getColor({\n data: nodes,\n colorScheme: colorScheme,\n point: nodes[index],\n index: index\n });\n } else {\n return node.props.color;\n }\n }\n }, {\n key: \"onNodeActive\",\n value: function onNodeActive(node) {\n var activeNodes = [node];\n var activeLinks = [];\n\n if (node.sourceLinks) {\n activeLinks.push.apply(activeLinks, _toConsumableArray(node.sourceLinks));\n node.sourceLinks.forEach(function (sourceLink) {\n var sourceLinkTarget = sourceLink.target;\n\n if (sourceLinkTarget.index !== node.index) {\n activeNodes.push(sourceLinkTarget);\n }\n });\n }\n\n if (node.targetLinks) {\n activeLinks.push.apply(activeLinks, _toConsumableArray(node.targetLinks));\n node.targetLinks.forEach(function (targetLink) {\n var targetLinkSource = targetLink.source;\n\n if (targetLinkSource.index !== node.index) {\n activeNodes.push(targetLinkSource);\n }\n });\n }\n\n this.setState({\n activeNodes: activeNodes,\n activeLinks: activeLinks\n });\n }\n }, {\n key: \"onLinkActive\",\n value: function onLinkActive(link) {\n var activeNodes = [link.source, link.target];\n var activeLinks = [link];\n this.setState({\n activeNodes: activeNodes,\n activeLinks: activeLinks\n });\n }\n }, {\n key: \"onInactive\",\n value: function onInactive() {\n this.setState({\n activeNodes: [],\n activeLinks: []\n });\n }\n }, {\n key: \"renderNode\",\n value: function renderNode(computedNode, index, chartWidth, node) {\n var animated = this.props.animated;\n var activeNodes = this.state.activeNodes;\n var active = activeNodes.some(function (node) {\n return node.index === computedNode.index;\n });\n var disabled = activeNodes.length > 0 && !active;\n return React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: node,\n key: \"node-\".concat(index),\n active: active,\n animated: animated,\n disabled: disabled,\n chartWidth: chartWidth,\n onMouseEnter: bind__default['default'](this.onNodeActive, this, computedNode),\n onMouseLeave: bind__default['default'](this.onInactive, this, computedNode)\n }, computedNode));\n }\n }, {\n key: \"renderNodes\",\n value: function renderNodes(nodes, chartWidth) {\n var _this35 = this;\n\n var nodeMap = new Map();\n this.props.nodes.forEach(function (node) {\n return node && nodeMap.set(node.props.title, node);\n });\n nodes.sort(function (a, b) {\n var aX0 = a && a.x0 ? a.x0 : 0;\n var aY0 = a && a.y0 ? a.y0 : 0;\n var bX0 = b && b.x0 ? b.x0 : 0;\n var bY0 = b && b.y0 ? b.y0 : 0;\n return aX0 - bX0 || aY0 - bY0;\n });\n return React__default['default'].createElement(React.Fragment, null, nodes.map(function (node, index) {\n return _this35.renderNode(node, index, chartWidth, nodeMap.get(node.title));\n }));\n }\n }, {\n key: \"renderLink\",\n value: function renderLink(computedLink, index, chartId) {\n var _this$props97 = this.props,\n animated = _this$props97.animated,\n links = _this$props97.links;\n var activeLinks = this.state.activeLinks;\n var active = activeLinks.some(function (link) {\n return link.index === computedLink.index;\n });\n var disabled = activeLinks.length > 0 && !active;\n return React__default['default'].createElement(rdk.CloneElement, Object.assign({\n element: links[index],\n active: active,\n animated: animated,\n key: \"link-\".concat(index),\n chartId: chartId,\n disabled: disabled\n }, computedLink, {\n onMouseEnter: bind__default['default'](this.onLinkActive, this, computedLink),\n onMouseLeave: bind__default['default'](this.onInactive, this, computedLink)\n }));\n }\n }, {\n key: \"renderChart\",\n value: function renderChart(containerProps) {\n var _this36 = this;\n\n var id = containerProps.id,\n chartWidth = containerProps.chartWidth,\n chartHeight = containerProps.chartHeight;\n var _this$props98 = this.props,\n justification = _this$props98.justification,\n nodeWidth = _this$props98.nodeWidth,\n nodePadding = _this$props98.nodePadding;\n var nodesCopy = this.props.nodes.map(function (node, index) {\n return {\n id: node.props.id,\n title: node.props.title,\n color: _this36.getNodeColor(node, index)\n };\n });\n var linksCopy = this.props.links.map(function (link) {\n return {\n source: link.props.source,\n target: link.props.target,\n value: link.props.value\n };\n });\n var sankeyChart = d3Sankey.sankey().extent([[1, 1], [chartWidth, chartHeight]]).nodeWidth(nodeWidth).nodePadding(nodePadding).nodeAlign(JUSTIFICATION[justification]).nodeId(function (node) {\n return node.id || node.index;\n });\n\n var _sankeyChart = sankeyChart({\n nodes: nodesCopy,\n links: linksCopy\n }),\n nodes = _sankeyChart.nodes,\n links = _sankeyChart.links;\n\n return containerProps.chartSized && React__default['default'].createElement(React.Fragment, {\n key: \"group\"\n }, links.map(function (link, index) {\n return _this36.renderLink(link, index, \"sankey-\".concat(id));\n }), this.renderNodes(nodes, chartWidth));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this37 = this;\n\n var _this$props99 = this.props,\n id = _this$props99.id,\n width = _this$props99.width,\n height = _this$props99.height,\n margins = _this$props99.margins,\n className = _this$props99.className;\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n className: className\n }, function (props) {\n return _this37.renderChart(props);\n });\n }\n }]);\n\n return Sankey;\n}(React.Component);\n\nSankey.defaultProps = {\n animated: true,\n justification: 'justify',\n nodeWidth: 15,\n nodePadding: 10\n};\nvar css_248z$l = \".SankeyLabel-module_label__2_aSZ {\\n font-size: 12px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n pointer-events: none;\\n}\\n\";\nvar css$l = {\n \"label\": \"SankeyLabel-module_label__2_aSZ\"\n};\nstyleInject(css_248z$l);\n\nvar SankeyLabel = /*#__PURE__*/function (_React$Component46) {\n _inherits(SankeyLabel, _React$Component46);\n\n var _super58 = _createSuper(SankeyLabel);\n\n function SankeyLabel() {\n _classCallCheck(this, SankeyLabel);\n\n return _super58.apply(this, arguments);\n }\n\n _createClass(SankeyLabel, [{\n key: \"render\",\n value: function render() {\n var _this$props100 = this.props,\n active = _this$props100.active,\n chartWidth = _this$props100.chartWidth,\n className = _this$props100.className,\n fill = _this$props100.fill,\n node = _this$props100.node,\n opacity = _this$props100.opacity,\n padding = _this$props100.padding,\n visible = _this$props100.visible;\n var nodePositions = {\n x0: node && node.x0 ? node.x0 : 0,\n y0: node && node.y0 ? node.y0 : 0,\n x1: node && node.x1 ? node.x1 : 0,\n y1: node && node.y1 ? node.y1 : 0\n };\n var width = chartWidth || 0;\n var showRightSide = nodePositions.x0 < width / 2;\n var textAnchor = showRightSide ? 'start' : 'end';\n return visible && node && React__default['default'].createElement(\"text\", {\n className: classNames__default['default'](css$l.label, className),\n x: showRightSide ? nodePositions.x1 + 6 : nodePositions.x0 - 6,\n y: (nodePositions.y1 + nodePositions.y0) / 2,\n dy: \"0.35em\",\n textAnchor: textAnchor,\n fill: fill,\n opacity: opacity(active),\n style: {\n padding: padding\n }\n }, node.title);\n }\n }]);\n\n return SankeyLabel;\n}(React.Component);\n\nSankeyLabel.defaultProps = {\n active: false,\n fill: '#fff',\n location: 'outside',\n opacity: function opacity(active) {\n return active ? 1 : 0.5;\n },\n visible: true\n};\nvar DEFAULT_COLOR = 'rgba(255, 255, 255, 0.2)';\nvar css_248z$m = \".SankeyLink-module_link__hzYa8 {\\n fill: none;\\n transition: stroke-opacity 100ms ease-in-out, stroke 100ms ease-in-out;\\n mix-blend-mode: screen;\\n}\\n\\n.SankeyLink-module_tooltip__28O9b {\\n text-align: center;\\n pointer-events: none;\\n}\\n\\n.SankeyLink-module_tooltip__28O9b .SankeyLink-module_tooltipLabel__odxY7 {\\n font-size: 16px;\\n margin-bottom: 3px;\\n color: rgba(255, 255, 255, 1);\\n text-align: center;\\n }\\n\\n.SankeyLink-module_tooltip__28O9b .SankeyLink-module_tooltipValue__cTGcv {\\n font-size: 13px;\\n color: rgba(255, 255, 255, 0.7);\\n text-align: center;\\n }\\n\";\nvar css$m = {\n \"link\": \"SankeyLink-module_link__hzYa8\",\n \"tooltip\": \"SankeyLink-module_tooltip__28O9b\",\n \"tooltipLabel\": \"SankeyLink-module_tooltipLabel__odxY7\",\n \"tooltipValue\": \"SankeyLink-module_tooltipValue__cTGcv\"\n};\nstyleInject(css_248z$m);\n\nvar SankeyLink = /*#__PURE__*/function (_React$Component47) {\n _inherits(SankeyLink, _React$Component47);\n\n var _super59 = _createSuper(SankeyLink);\n\n function SankeyLink() {\n var _this38;\n\n _classCallCheck(this, SankeyLink);\n\n _this38 = _super59.apply(this, arguments);\n _this38.link = React.createRef();\n _this38.state = {};\n return _this38;\n }\n\n _createClass(SankeyLink, [{\n key: \"getEnter\",\n value: function getEnter() {\n var path = d3Sankey.sankeyLinkHorizontal();\n var d = path(this.getLink());\n var strokeWidth = Math.max(1, this.props.width);\n return {\n d: d,\n strokeWidth: strokeWidth\n };\n }\n }, {\n key: \"getExit\",\n value: function getExit() {\n var path = d3Sankey.sankeyLinkHorizontal();\n var d = path(Object.assign(Object.assign({}, this.getLink()), {\n width: 0\n }));\n return {\n d: d,\n strokeWidth: 0\n };\n }\n }, {\n key: \"getLink\",\n value: function getLink() {\n var _this$props101 = this.props,\n index = _this$props101.index,\n value = _this$props101.value,\n y0 = _this$props101.y0,\n y1 = _this$props101.y1,\n source = _this$props101.source,\n target = _this$props101.target,\n width = _this$props101.width;\n return {\n index: index,\n y0: y0,\n y1: y1,\n value: value,\n width: width,\n source: source,\n target: target\n };\n }\n }, {\n key: \"getStroke\",\n value: function getStroke() {\n var _this$props102 = this.props,\n color = _this$props102.color,\n index = _this$props102.index,\n gradient = _this$props102.gradient,\n chartId = _this$props102.chartId;\n return gradient ? \"url(#\".concat(chartId, \"-gradient-\").concat(index, \")\") : color;\n }\n }, {\n key: \"onMouseEnter\",\n value: function onMouseEnter(event) {\n this.setState({\n hovered: true\n });\n this.props.onMouseEnter(event);\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(event) {\n this.setState({\n hovered: false\n });\n this.props.onMouseLeave(event);\n }\n }, {\n key: \"renderLink\",\n value: function renderLink() {\n var _this$props103 = this.props,\n active = _this$props103.active,\n className = _this$props103.className,\n disabled = _this$props103.disabled,\n index = _this$props103.index,\n opacity = _this$props103.opacity,\n style = _this$props103.style,\n onClick = _this$props103.onClick;\n var enterProps = this.getEnter();\n var exitProps = this.getExit();\n return React__default['default'].createElement(\"g\", {\n ref: this.link\n }, React__default['default'].createElement(framerMotion.motion.path, {\n key: \"sankey-link-\".concat(enterProps.d, \"-\").concat(index),\n className: classNames__default['default'](css$m.link, className),\n style: style,\n initial: exitProps,\n animate: enterProps,\n exit: exitProps,\n transition: {\n duration: 0.5\n },\n stroke: this.getStroke(),\n strokeOpacity: opacity(active, disabled),\n onClick: onClick,\n onMouseEnter: bind__default['default'](this.onMouseEnter, this),\n onMouseLeave: bind__default['default'](this.onMouseLeave, this)\n }));\n }\n }, {\n key: \"renderTooltipContent\",\n value: function renderTooltipContent() {\n var _this$props104 = this.props,\n source = _this$props104.source,\n target = _this$props104.target,\n value = _this$props104.value;\n return React__default['default'].createElement(\"div\", {\n className: css$m.tooltip\n }, React__default['default'].createElement(\"div\", {\n className: css$m.tooltipLabel\n }, \"\".concat(source.title, \" \\u2192 \").concat(target.title)), React__default['default'].createElement(\"div\", {\n className: css$m.tooltipValue\n }, formatValue(value)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props105 = this.props,\n gradient = _this$props105.gradient,\n index = _this$props105.index,\n source = _this$props105.source,\n target = _this$props105.target,\n tooltip = _this$props105.tooltip,\n chartId = _this$props105.chartId;\n var linkSource = source;\n var linkTarget = target;\n return React__default['default'].createElement(React.Fragment, null, gradient && React__default['default'].createElement(\"linearGradient\", {\n id: \"\".concat(chartId, \"-gradient-\").concat(index),\n gradientUnits: \"userSpaceOnUse\",\n x1: linkSource.x1,\n x2: linkTarget.x0\n }, React__default['default'].createElement(\"stop\", {\n offset: \"0%\",\n stopColor: linkSource.color\n }), React__default['default'].createElement(\"stop\", {\n offset: \"100%\",\n stopColor: linkTarget.color\n })), this.renderLink(), !tooltip.props.disabled && React__default['default'].createElement(rdk.CloneElement, {\n content: this.renderTooltipContent.bind(this),\n element: tooltip,\n visible: this.state.hovered,\n reference: this.link\n }));\n }\n }]);\n\n return SankeyLink;\n}(React.Component);\n\nSankeyLink.defaultProps = {\n active: false,\n animated: true,\n color: DEFAULT_COLOR,\n disabled: false,\n gradient: true,\n opacity: function opacity(active, disabled) {\n return active ? 0.5 : disabled ? 0.1 : 0.35;\n },\n tooltip: React__default['default'].createElement(realayers.Tooltip, {\n followCursor: true,\n modifiers: {\n offset: {\n offset: '0, 5px'\n }\n }\n }),\n width: 0,\n onClick: function onClick() {\n return undefined;\n },\n onMouseEnter: function onMouseEnter() {\n return undefined;\n },\n onMouseLeave: function onMouseLeave() {\n return undefined;\n }\n};\nvar css_248z$n = \".SankeyNode-module_node__1rkj0 {\\n transition: opacity 100ms ease-in-out, fill-opacity 100ms ease-in-out;\\n}\\n\\n.SankeyNode-module_tooltip__1SZ4e {\\n text-align: center;\\n padding: 0 8px;\\n pointer-events: none;\\n}\\n\\n.SankeyNode-module_tooltip__1SZ4e .SankeyNode-module_tooltipLabel__HfJ93 {\\n font-size: 16px;\\n margin-bottom: 3px;\\n color: rgba(255, 255, 255, 1);\\n text-align: center;\\n }\\n\\n.SankeyNode-module_tooltip__1SZ4e .SankeyNode-module_tooltipValue__lnd_m {\\n font-size: 13px;\\n color: rgba(255, 255, 255, 0.7);\\n text-align: center;\\n }\\n\";\nvar css$n = {\n \"node\": \"SankeyNode-module_node__1rkj0\",\n \"tooltip\": \"SankeyNode-module_tooltip__1SZ4e\",\n \"tooltipLabel\": \"SankeyNode-module_tooltipLabel__HfJ93\",\n \"tooltipValue\": \"SankeyNode-module_tooltipValue__lnd_m\"\n};\nstyleInject(css_248z$n);\n\nvar SankeyNode = /*#__PURE__*/function (_React$Component48) {\n _inherits(SankeyNode, _React$Component48);\n\n var _super60 = _createSuper(SankeyNode);\n\n function SankeyNode() {\n var _this39;\n\n _classCallCheck(this, SankeyNode);\n\n _this39 = _super60.apply(this, arguments);\n _this39.state = {};\n _this39.rect = React.createRef();\n return _this39;\n }\n\n _createClass(SankeyNode, [{\n key: \"getNode\",\n value: function getNode() {\n var _this$props106 = this.props,\n id = _this$props106.id,\n title = _this$props106.title,\n color = _this$props106.color,\n sourceLinks = _this$props106.sourceLinks,\n targetLinks = _this$props106.targetLinks,\n value = _this$props106.value,\n index = _this$props106.index,\n x0 = _this$props106.x0,\n x1 = _this$props106.x1,\n y0 = _this$props106.y0,\n y1 = _this$props106.y1;\n return {\n id: id,\n title: title,\n color: color,\n sourceLinks: sourceLinks,\n targetLinks: targetLinks,\n value: value,\n index: index,\n x0: x0,\n x1: x1,\n y0: y0,\n y1: y1\n };\n }\n }, {\n key: \"onMouseEnter\",\n value: function onMouseEnter(event) {\n this.setState({\n hovered: true\n });\n this.props.onMouseEnter(event);\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(event) {\n this.setState({\n hovered: false\n });\n this.props.onMouseLeave(event);\n }\n }, {\n key: \"renderNode\",\n value: function renderNode() {\n var _this$props107 = this.props,\n active = _this$props107.active,\n className = _this$props107.className,\n color = _this$props107.color,\n disabled = _this$props107.disabled,\n index = _this$props107.index,\n opacity = _this$props107.opacity,\n style = _this$props107.style,\n width = _this$props107.width,\n x0 = _this$props107.x0,\n x1 = _this$props107.x1,\n y0 = _this$props107.y0,\n y1 = _this$props107.y1,\n onClick = _this$props107.onClick;\n var nodeWidth = width || (x1 && x0 && x1 - x0 > 0 ? x1 - x0 : 0);\n var nodeHeight = y1 && y0 && y1 - y0 > 0 ? y1 - y0 : 0;\n return React__default['default'].createElement(framerMotion.motion.g, {\n ref: this.rect\n }, React__default['default'].createElement(framerMotion.motion.rect, {\n key: \"sankey-node-\".concat(x0, \"-\").concat(x1, \"-\").concat(y0, \"-\").concat(y1, \"-\").concat(index),\n className: classNames__default['default'](css$n.node, className),\n fillOpacity: opacity(active, disabled),\n style: style,\n width: nodeWidth,\n height: nodeHeight,\n fill: color,\n initial: {\n opacity: 0,\n attrX: x0,\n attrY: y0\n },\n animate: {\n opacity: 1,\n attrX: x0,\n attrY: y0\n },\n exit: {\n opacity: 0,\n attrX: x0,\n attrY: y0\n },\n transition: {\n duration: 0.1\n },\n onClick: onClick,\n onMouseEnter: bind__default['default'](this.onMouseEnter, this),\n onMouseLeave: bind__default['default'](this.onMouseLeave, this)\n }));\n }\n }, {\n key: \"renderTooltipContent\",\n value: function renderTooltipContent() {\n var _this$props108 = this.props,\n title = _this$props108.title,\n value = _this$props108.value;\n return React__default['default'].createElement(\"div\", {\n className: css$n.tooltip\n }, React__default['default'].createElement(\"div\", {\n className: css$n.tooltipLabel\n }, title), React__default['default'].createElement(\"div\", {\n className: css$n.tooltipValue\n }, formatValue(value)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props109 = this.props,\n active = _this$props109.active,\n chartWidth = _this$props109.chartWidth,\n label = _this$props109.label,\n tooltip = _this$props109.tooltip,\n showLabel = _this$props109.showLabel;\n return React__default['default'].createElement(React.Fragment, null, this.renderNode(), showLabel && React__default['default'].createElement(rdk.CloneElement, {\n active: active,\n element: label,\n chartWidth: chartWidth,\n node: this.getNode()\n }), !tooltip.props.disabled && React__default['default'].createElement(rdk.CloneElement, {\n content: this.renderTooltipContent.bind(this),\n element: tooltip,\n visible: this.state.hovered,\n reference: this.rect\n }));\n }\n }]);\n\n return SankeyNode;\n}(React.Component);\n\nSankeyNode.defaultProps = {\n active: false,\n animated: true,\n color: DEFAULT_COLOR,\n disabled: false,\n label: React__default['default'].createElement(SankeyLabel, null),\n opacity: function opacity(active, disabled) {\n return active ? 1 : disabled ? 0.2 : 0.9;\n },\n showLabel: true,\n tooltip: React__default['default'].createElement(realayers.Tooltip, {\n followCursor: true,\n modifiers: {\n offset: {\n offset: '0, 5px'\n }\n }\n }),\n onClick: function onClick() {\n return undefined;\n },\n onMouseEnter: function onMouseEnter() {\n return undefined;\n },\n onMouseLeave: function onMouseLeave() {\n return undefined;\n }\n};\n\nvar SparklineChart = /*#__PURE__*/function (_React$Component49) {\n _inherits(SparklineChart, _React$Component49);\n\n var _super61 = _createSuper(SparklineChart);\n\n function SparklineChart() {\n _classCallCheck(this, SparklineChart);\n\n return _super61.apply(this, arguments);\n }\n\n _createClass(SparklineChart, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(LineChart, Object.assign({}, this.props));\n }\n }]);\n\n return SparklineChart;\n}(React.Component);\n\nSparklineChart.defaultProps = {\n gridlines: null,\n series: React__default['default'].createElement(AreaSeries, {\n symbols: React__default['default'].createElement(PointSeries, {\n show: \"hover\"\n }),\n interpolation: \"smooth\",\n markLine: null,\n area: null,\n line: React__default['default'].createElement(Line, {\n strokeWidth: 2\n })\n }),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n scaled: true,\n type: \"value\",\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n line: null,\n label: null\n })\n }),\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"time\",\n scaled: true,\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n line: null,\n label: null\n })\n })\n};\n\nvar AreaSparklineChart = /*#__PURE__*/function (_React$Component50) {\n _inherits(AreaSparklineChart, _React$Component50);\n\n var _super62 = _createSuper(AreaSparklineChart);\n\n function AreaSparklineChart() {\n _classCallCheck(this, AreaSparklineChart);\n\n return _super62.apply(this, arguments);\n }\n\n _createClass(AreaSparklineChart, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(AreaChart, Object.assign({}, this.props));\n }\n }]);\n\n return AreaSparklineChart;\n}(React.Component);\n\nAreaSparklineChart.defaultProps = {\n gridlines: null,\n series: React__default['default'].createElement(AreaSeries, {\n symbols: React__default['default'].createElement(PointSeries, {\n show: \"hover\"\n }),\n interpolation: \"smooth\",\n markLine: null,\n area: React__default['default'].createElement(Area, {\n mask: React__default['default'].createElement(Stripes, null),\n gradient: React__default['default'].createElement(Gradient, {\n stops: [React__default['default'].createElement(GradientStop, {\n offset: \"10%\",\n stopOpacity: 0,\n key: \"start\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"80%\",\n stopOpacity: 1,\n key: \"stop\"\n })]\n })\n }),\n line: React__default['default'].createElement(Line, {\n strokeWidth: 3\n })\n }),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"value\",\n scaled: true,\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n line: null,\n label: null\n })\n }),\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"time\",\n scaled: true,\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n line: null,\n label: null\n })\n })\n};\n\nvar BarSparklineChart = /*#__PURE__*/function (_React$Component51) {\n _inherits(BarSparklineChart, _React$Component51);\n\n var _super63 = _createSuper(BarSparklineChart);\n\n function BarSparklineChart() {\n _classCallCheck(this, BarSparklineChart);\n\n return _super63.apply(this, arguments);\n }\n\n _createClass(BarSparklineChart, [{\n key: \"render\",\n value: function render() {\n return React__default['default'].createElement(BarChart, Object.assign({}, this.props));\n }\n }]);\n\n return BarSparklineChart;\n}(React.Component);\n\nBarSparklineChart.defaultProps = {\n gridlines: null,\n series: React__default['default'].createElement(BarSeries, {\n colorScheme: schemes.cybertron[0]\n }),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"value\",\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n line: null,\n label: null\n })\n }),\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"category\",\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n line: null,\n label: null\n })\n })\n};\n\nvar SonarChart = function SonarChart(props) {\n return React__default['default'].createElement(StackedBarChart, Object.assign({}, props, {\n margins: 0,\n gridlines: null,\n series: React__default['default'].createElement(StackedBarSeries, {\n type: \"stackedDiverging\",\n colorScheme: \"rgb(17, 207, 247)\",\n tooltip: React__default['default'].createElement(TooltipArea, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n followCursor: true,\n modifiers: {\n offset: '5px, 5px'\n },\n content: function content(data, color) {\n return React__default['default'].createElement(TooltipTemplate, {\n color: color,\n value: {\n x: formatValue(data.x),\n y: \"\".concat(formatValue(Math.abs(data.data[0].y)))\n }\n });\n }\n })\n }),\n bar: [React__default['default'].createElement(Bar, {\n key: \"first\",\n width: 1,\n rangeLines: null,\n minHeight: 1,\n gradient: React__default['default'].createElement(Gradient, {\n stops: [React__default['default'].createElement(GradientStop, {\n offset: \"5%\",\n stopOpacity: 0.7,\n key: \"start\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"90%\",\n stopOpacity: 1,\n key: \"stop\"\n })]\n })\n }), React__default['default'].createElement(Bar, {\n key: \"second\",\n width: 1,\n rangeLines: null,\n minHeight: 1,\n gradient: React__default['default'].createElement(Gradient, {\n stops: [React__default['default'].createElement(GradientStop, {\n offset: \"5%\",\n stopOpacity: 1,\n key: \"stop\"\n }), React__default['default'].createElement(GradientStop, {\n offset: \"90%\",\n stopOpacity: 0.7,\n key: \"start\"\n })]\n })\n })]\n }),\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"value\",\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n line: null,\n label: null\n })\n }),\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"category\",\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n line: null,\n label: null\n })\n })\n }));\n};\n\nvar RadialArea = function RadialArea(_ref48) {\n var id = _ref48.id,\n data = _ref48.data,\n className = _ref48.className,\n yScale = _ref48.yScale,\n color = _ref48.color,\n animated = _ref48.animated,\n outerRadius = _ref48.outerRadius,\n xScale = _ref48.xScale,\n innerRadius = _ref48.innerRadius,\n interpolation = _ref48.interpolation,\n _ref48$gradient = _ref48.gradient,\n gradient = _ref48$gradient === void 0 ? React__default['default'].createElement(RadialGradient, null) : _ref48$gradient;\n var transition = React.useMemo(function () {\n return animated ? Object.assign({}, DEFAULT_TRANSITION) : {\n type: false,\n delay: 0\n };\n }, [animated]);\n var getFill = React.useCallback(function (c) {\n if (!gradient) {\n return c;\n }\n\n return \"url(#\".concat(id, \"-gradient)\");\n }, [id, gradient]);\n var getPath = React.useCallback(function (d) {\n var curve = interpolation === 'smooth' ? d3Shape.curveCardinalClosed : d3Shape.curveLinearClosed;\n var radialFn = d3Shape.radialArea().angle(function (dd) {\n return xScale(dd.x);\n }).innerRadius(function (_) {\n return innerRadius;\n }).outerRadius(function (d) {\n return yScale(d.y);\n }).curve(curve);\n return radialFn(d);\n }, [xScale, yScale, interpolation, innerRadius]);\n var enter = React.useMemo(function () {\n return {\n d: getPath(data),\n opacity: 1\n };\n }, [data, getPath]);\n var exit = React.useMemo(function () {\n var _yScale$domain3 = yScale.domain(),\n _yScale$domain4 = _slicedToArray(_yScale$domain3, 1),\n yStart = _yScale$domain4[0];\n\n return {\n d: getPath(data.map(function (d) {\n return Object.assign(Object.assign({}, d), {\n y: yStart\n });\n })),\n opacity: 0\n };\n }, [data, getPath, yScale]);\n var fill = color(data, 0);\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(MotionPath, {\n custom: {\n enter: enter,\n exit: exit\n },\n transition: transition,\n pointerEvents: \"none\",\n className: className,\n fill: getFill(color)\n }), gradient && React__default['default'].createElement(rdk.CloneElement, {\n element: gradient,\n id: \"\".concat(id, \"-gradient\"),\n radius: outerRadius,\n color: fill\n }));\n};\n\nvar RadialLine = function RadialLine(_ref49) {\n var xScale = _ref49.xScale,\n yScale = _ref49.yScale,\n className = _ref49.className,\n color = _ref49.color,\n data = _ref49.data,\n interpolation = _ref49.interpolation,\n _ref49$strokeWidth = _ref49.strokeWidth,\n strokeWidth = _ref49$strokeWidth === void 0 ? 2 : _ref49$strokeWidth,\n _ref49$animated = _ref49.animated,\n animated = _ref49$animated === void 0 ? true : _ref49$animated;\n var getPath = React.useCallback(function (preData) {\n var curve = interpolation === 'smooth' ? d3Shape.curveCardinalClosed : d3Shape.curveLinearClosed;\n var radialFn = d3Shape.radialLine().angle(function (d) {\n return xScale(d.x);\n }).radius(function (d) {\n return yScale(d.y);\n }).curve(curve);\n return radialFn(preData);\n }, [xScale, yScale, interpolation]);\n var transition = React.useMemo(function () {\n return animated ? Object.assign({}, DEFAULT_TRANSITION) : {\n type: false,\n delay: 0\n };\n }, [animated]);\n var fill = color(data, 0);\n var enter = React.useMemo(function () {\n return {\n d: getPath(data),\n opacity: 1\n };\n }, [data, getPath]);\n var exit = React.useMemo(function () {\n var _yScale$domain5 = yScale.domain(),\n _yScale$domain6 = _slicedToArray(_yScale$domain5, 1),\n yStart = _yScale$domain6[0];\n\n return {\n d: getPath(data.map(function (d) {\n return Object.assign(Object.assign({}, d), {\n y: yStart\n });\n })),\n opacity: 0\n };\n }, [data, yScale, getPath]);\n return React__default['default'].createElement(MotionPath, {\n custom: {\n enter: enter,\n exit: exit\n },\n transition: transition,\n className: className,\n pointerEvents: \"none\",\n stroke: fill,\n fill: \"none\",\n strokeWidth: strokeWidth\n });\n};\n\nvar css_248z$o = \".RadialScatterPoint-module_inactive__1RkCR {\\n opacity: 0.4;\\n transition: opacity 200ms ease-in-out;\\n}\\n\";\nvar css$o = {\n \"inactive\": \"RadialScatterPoint-module_inactive__1RkCR\"\n};\nstyleInject(css_248z$o);\n\nvar RadialScatterPoint = /*#__PURE__*/function (_React$Component52) {\n _inherits(RadialScatterPoint, _React$Component52);\n\n var _super64 = _createSuper(RadialScatterPoint);\n\n function RadialScatterPoint() {\n var _this40;\n\n _classCallCheck(this, RadialScatterPoint);\n\n _this40 = _super64.apply(this, arguments);\n _this40.ref = React.createRef();\n _this40.state = {\n hovered: false\n };\n return _this40;\n }\n\n _createClass(RadialScatterPoint, [{\n key: \"onMouseEnter\",\n value: function onMouseEnter(event) {\n this.setState({\n hovered: true\n });\n var _this$props110 = this.props,\n onMouseEnter = _this$props110.onMouseEnter,\n data = _this$props110.data;\n onMouseEnter({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(event) {\n this.setState({\n hovered: false\n });\n var _this$props111 = this.props,\n onMouseLeave = _this$props111.onMouseLeave,\n data = _this$props111.data;\n onMouseLeave({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n var _this$props112 = this.props,\n onClick = _this$props112.onClick,\n data = _this$props112.data;\n onClick({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"getTranslate\",\n value: function getTranslate(data) {\n var _this$props113 = this.props,\n xScale = _this$props113.xScale,\n yScale = _this$props113.yScale;\n var fn = d3Shape.radialLine().radius(function (d) {\n return yScale(d.y);\n }).angle(function (d) {\n return xScale(d.x);\n }); // Parse the generated path to get point coordinates\n // Ref: https://bit.ly/2CnZcPl\n\n var path = fn([data]);\n\n if (path) {\n var _path$slice$slice$spl = path.slice(1).slice(0, -1).split(','),\n _path$slice$slice$spl2 = _slicedToArray(_path$slice$slice$spl, 2),\n translateX = _path$slice$slice$spl2[0],\n translateY = _path$slice$slice$spl2[1];\n\n return {\n translateX: parseFloat(translateX),\n translateY: parseFloat(translateY)\n };\n }\n }\n }, {\n key: \"getTransition\",\n value: function getTransition() {\n var _this$props114 = this.props,\n animated = _this$props114.animated,\n index = _this$props114.index;\n\n if (animated) {\n return Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: index * 0.005\n });\n } else {\n return {\n type: false,\n delay: 0\n };\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props115 = this.props,\n size = _this$props115.size,\n data = _this$props115.data,\n color = _this$props115.color,\n index = _this$props115.index,\n symbol = _this$props115.symbol,\n active = _this$props115.active,\n tooltip = _this$props115.tooltip,\n yScale = _this$props115.yScale,\n className = _this$props115.className;\n var hovered = this.state.hovered;\n var fill = typeof color === 'function' ? color(data, index) : color;\n var transform = this.getTranslate(data);\n var sizeVal = typeof size === 'function' ? size(data) : size;\n var transition = this.getTransition();\n\n var _yScale$domain7 = yScale.domain(),\n _yScale$domain8 = _slicedToArray(_yScale$domain7, 1),\n yStart = _yScale$domain8[0];\n\n var exitTransform = this.getTranslate(Object.assign(Object.assign({}, data), {\n y: yStart\n }));\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(framerMotion.motion.g, {\n initial: Object.assign(Object.assign({}, exitTransform), {\n opacity: 0\n }),\n animate: Object.assign(Object.assign({}, transform), {\n opacity: 1\n }),\n exit: Object.assign(Object.assign({}, exitTransform), {\n opacity: 0\n }),\n transition: transition,\n ref: this.ref,\n onMouseEnter: bind__default['default'](this.onMouseEnter, this),\n onMouseLeave: bind__default['default'](this.onMouseLeave, this),\n onClick: bind__default['default'](this.onClick, this),\n className: classNames__default['default'](className, _defineProperty({}, css$o.inactive, !active))\n }, symbol && symbol(data), !symbol && React__default['default'].createElement(\"circle\", {\n r: sizeVal,\n fill: fill\n })), tooltip && React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n visible: hovered,\n reference: this.ref,\n value: data\n }));\n }\n }]);\n\n return RadialScatterPoint;\n}(React.Component);\n\nRadialScatterPoint.defaultProps = {\n size: 3,\n color: schemes.cybertron[0],\n tooltip: React__default['default'].createElement(ChartTooltip, null),\n active: true,\n onClick: function onClick() {\n return undefined;\n },\n onMouseEnter: function onMouseEnter() {\n return undefined;\n },\n onMouseLeave: function onMouseLeave() {\n return undefined;\n }\n};\n\nvar RadialScatterSeries = /*#__PURE__*/function (_React$Component53) {\n _inherits(RadialScatterSeries, _React$Component53);\n\n var _super65 = _createSuper(RadialScatterSeries);\n\n function RadialScatterSeries() {\n var _this41;\n\n _classCallCheck(this, RadialScatterSeries);\n\n _this41 = _super65.apply(this, arguments);\n _this41.state = {\n activeIds: []\n };\n return _this41;\n }\n\n _createClass(RadialScatterSeries, [{\n key: \"onMouseEnter\",\n value: function onMouseEnter(_ref50) {\n var value = _ref50.value;\n\n // Only perform this on unmanaged activations\n if (!this.props.activeIds) {\n this.setState({\n activeIds: [value.id]\n });\n }\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave() {\n // Only perform this on unmanaged activations\n if (!this.props.activeIds) {\n this.setState({\n activeIds: []\n });\n }\n }\n }, {\n key: \"renderPoint\",\n value: function renderPoint(data, index) {\n var _this$props116 = this.props,\n point = _this$props116.point,\n xScale = _this$props116.xScale,\n yScale = _this$props116.yScale,\n animated = _this$props116.animated;\n var dataId;\n\n if (data.id) {\n dataId = data.id;\n } else {\n console.warn('No \\'id\\' property provided for scatter point; provide one via \\'id\\'.');\n }\n\n var key = dataId || index;\n var activeIds = this.props.activeIds || this.state.activeIds;\n var active = !(activeIds && activeIds.length) || activeIds.includes(dataId);\n var visible = point.props.visible;\n\n if (visible && !visible(data, index)) {\n return React__default['default'].createElement(React.Fragment, {\n key: key\n });\n }\n\n return React__default['default'].createElement(rdk.CloneElement, {\n element: point,\n key: key,\n data: data,\n index: index,\n active: active,\n xScale: xScale,\n yScale: yScale,\n animated: animated,\n onMouseEnter: bind__default['default'](this.onMouseEnter, this),\n onMouseLeave: bind__default['default'](this.onMouseLeave, this)\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this42 = this;\n\n var data = this.props.data;\n return React__default['default'].createElement(React.Fragment, null, data.map(function (d, i) {\n return _this42.renderPoint(d, i);\n }));\n }\n }]);\n\n return RadialScatterSeries;\n}(React.Component);\n\nRadialScatterSeries.defaultProps = {\n point: React__default['default'].createElement(RadialScatterPoint, null),\n animated: true\n};\n\nvar RadialScatterPlot = /*#__PURE__*/function (_React$Component54) {\n _inherits(RadialScatterPlot, _React$Component54);\n\n var _super66 = _createSuper(RadialScatterPlot);\n\n function RadialScatterPlot() {\n var _this43;\n\n _classCallCheck(this, RadialScatterPlot);\n\n _this43 = _super66.apply(this, arguments);\n _this43.getScales = memoize__default['default'](function (preData, outerRadius, innerRadius) {\n var data = buildShallowChartData(preData);\n var yDomain = getYDomain({\n data: data,\n scaled: false\n });\n var xDomain = getXDomain({\n data: data\n });\n var xScale = d3Scale.scaleTime().range([0, 2 * Math.PI]).domain(xDomain);\n var yScale = getRadialYScale(innerRadius, outerRadius, yDomain);\n return {\n yScale: yScale,\n xScale: xScale,\n data: data\n };\n });\n return _this43;\n }\n\n _createClass(RadialScatterPlot, [{\n key: \"renderChart\",\n value: function renderChart(containerProps) {\n var chartWidth = containerProps.chartWidth,\n chartHeight = containerProps.chartHeight,\n id = containerProps.id;\n var _this$props117 = this.props,\n innerRadius = _this$props117.innerRadius,\n series = _this$props117.series,\n axis = _this$props117.axis;\n var outerRadius = Math.min(chartWidth, chartHeight) / 2;\n\n var _this$getScales3 = this.getScales(this.props.data, outerRadius, innerRadius),\n yScale = _this$getScales3.yScale,\n xScale = _this$getScales3.xScale,\n data = _this$getScales3.data;\n\n return React__default['default'].createElement(React.Fragment, null, axis && React__default['default'].createElement(rdk.CloneElement, {\n element: axis,\n xScale: xScale,\n height: chartHeight,\n width: chartWidth,\n innerRadius: innerRadius\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: id,\n data: data,\n xScale: xScale,\n yScale: yScale\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props118 = this.props,\n id = _this$props118.id,\n width = _this$props118.width,\n height = _this$props118.height,\n margins = _this$props118.margins,\n className = _this$props118.className;\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: false,\n yAxisVisible: false,\n center: true,\n className: className\n }, this.renderChart.bind(this));\n }\n }]);\n\n return RadialScatterPlot;\n}(React.Component);\n\nRadialScatterPlot.defaultProps = {\n innerRadius: 80,\n margins: 75,\n axis: React__default['default'].createElement(RadialAxis, null),\n series: React__default['default'].createElement(RadialScatterSeries, null)\n};\n\nvar RadialPointSeries = function RadialPointSeries(_ref51) {\n var data = _ref51.data,\n xScale = _ref51.xScale,\n yScale = _ref51.yScale,\n animated = _ref51.animated,\n color = _ref51.color,\n activeValues = _ref51.activeValues,\n _ref51$show = _ref51.show,\n show = _ref51$show === void 0 ? 'hover' : _ref51$show,\n _ref51$point = _ref51.point,\n point = _ref51$point === void 0 ? React__default['default'].createElement(RadialScatterPoint, null) : _ref51$point;\n var isVisible = React.useCallback(function (point, index) {\n var isActive = activeValues && point && isEqual__default['default'](activeValues.x, point.x);\n\n if (show === 'hover') {\n return isActive;\n } else if (show === 'first') {\n if (activeValues) {\n return isActive;\n } else {\n return index === 0;\n }\n } else if (show === 'last') {\n if (activeValues) {\n return isActive;\n } else {\n return index === data.length - 1;\n }\n }\n\n return show;\n }, [data, activeValues, point, show]);\n return React__default['default'].createElement(RadialScatterSeries, {\n animated: animated,\n data: data,\n xScale: xScale,\n yScale: yScale,\n point: React__default['default'].createElement(rdk.CloneElement, {\n element: point,\n color: color,\n tooltip: null,\n visible: isVisible\n })\n });\n};\n\nvar RadialAreaSeries = /*#__PURE__*/function (_React$Component55) {\n _inherits(RadialAreaSeries, _React$Component55);\n\n var _super67 = _createSuper(RadialAreaSeries);\n\n function RadialAreaSeries() {\n var _this44;\n\n _classCallCheck(this, RadialAreaSeries);\n\n _this44 = _super67.apply(this, arguments);\n _this44.state = {};\n return _this44;\n }\n\n _createClass(RadialAreaSeries, [{\n key: \"getColor\",\n value: function getColor(point, index) {\n var _this$props119 = this.props,\n colorScheme = _this$props119.colorScheme,\n data = _this$props119.data;\n return _getColor({\n colorScheme: colorScheme,\n data: data,\n index: index,\n point: point\n });\n }\n }, {\n key: \"onValueEnter\",\n value: function onValueEnter(event) {\n this.setState({\n activeValues: event.value\n });\n }\n }, {\n key: \"onValueLeave\",\n value: function onValueLeave() {\n this.setState({\n activeValues: undefined\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea() {\n var _this$props120 = this.props,\n area = _this$props120.area,\n id = _this$props120.id,\n xScale = _this$props120.xScale,\n yScale = _this$props120.yScale,\n data = _this$props120.data,\n interpolation = _this$props120.interpolation,\n animated = _this$props120.animated,\n innerRadius = _this$props120.innerRadius,\n outerRadius = _this$props120.outerRadius;\n return React__default['default'].createElement(rdk.CloneElement, {\n element: area,\n id: \"\".concat(id, \"-radial-area\"),\n xScale: xScale,\n yScale: yScale,\n animated: animated,\n color: this.getColor.bind(this),\n data: data,\n interpolation: interpolation,\n outerRadius: outerRadius,\n innerRadius: innerRadius\n });\n }\n }, {\n key: \"renderLine\",\n value: function renderLine() {\n var _this$props121 = this.props,\n line = _this$props121.line,\n xScale = _this$props121.xScale,\n yScale = _this$props121.yScale,\n data = _this$props121.data,\n animated = _this$props121.animated,\n interpolation = _this$props121.interpolation;\n return React__default['default'].createElement(rdk.CloneElement, {\n element: line,\n xScale: xScale,\n yScale: yScale,\n animated: animated,\n interpolation: interpolation,\n color: this.getColor.bind(this),\n data: data\n });\n }\n }, {\n key: \"renderSymbols\",\n value: function renderSymbols() {\n var _this$props122 = this.props,\n xScale = _this$props122.xScale,\n yScale = _this$props122.yScale,\n animated = _this$props122.animated,\n area = _this$props122.area,\n symbols = _this$props122.symbols,\n data = _this$props122.data;\n var activeValues = this.state.activeValues; // Animations are only valid for Area\n\n var activeSymbols = symbols && symbols.props.activeValues || activeValues;\n var isAnimated = area !== undefined && animated && !activeSymbols;\n return React__default['default'].createElement(rdk.CloneElement, {\n element: symbols,\n activeValues: activeValues,\n xScale: xScale,\n yScale: yScale,\n data: data,\n animated: isAnimated,\n color: this.getColor.bind(this)\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props123 = this.props,\n area = _this$props123.area,\n line = _this$props123.line,\n symbols = _this$props123.symbols,\n tooltip = _this$props123.tooltip,\n xScale = _this$props123.xScale,\n yScale = _this$props123.yScale,\n data = _this$props123.data,\n id = _this$props123.id,\n width = _this$props123.width,\n height = _this$props123.height,\n innerRadius = _this$props123.innerRadius,\n outerRadius = _this$props123.outerRadius;\n return React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n xScale: xScale,\n yScale: yScale,\n data: data,\n height: height,\n width: width,\n isRadial: true,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n color: this.getColor.bind(this),\n onValueEnter: bind__default['default'](this.onValueEnter, this),\n onValueLeave: bind__default['default'](this.onValueLeave, this)\n }, React__default['default'].createElement(\"g\", {\n clipPath: \"url(#\".concat(id, \"-path)\")\n }, area && this.renderArea(), line && this.renderLine(), symbols && this.renderSymbols()));\n }\n }]);\n\n return RadialAreaSeries;\n}(React.Component);\n\nRadialAreaSeries.defaultProps = {\n colorScheme: schemes.cybertron[0],\n interpolation: 'smooth',\n animated: true,\n area: React__default['default'].createElement(RadialArea, null),\n line: React__default['default'].createElement(RadialLine, null),\n symbols: React__default['default'].createElement(RadialPointSeries, null),\n tooltip: React__default['default'].createElement(TooltipArea, null)\n};\n\nvar RadialAreaChart = function RadialAreaChart(_ref52) {\n var id = _ref52.id,\n width = _ref52.width,\n height = _ref52.height,\n className = _ref52.className,\n data = _ref52.data,\n _ref52$innerRadius = _ref52.innerRadius,\n innerRadius = _ref52$innerRadius === void 0 ? 0.1 : _ref52$innerRadius,\n _ref52$series = _ref52.series,\n series = _ref52$series === void 0 ? React__default['default'].createElement(RadialAreaSeries, null) : _ref52$series,\n _ref52$axis = _ref52.axis,\n axis = _ref52$axis === void 0 ? React__default['default'].createElement(RadialAxis, null) : _ref52$axis,\n _ref52$margins = _ref52.margins,\n margins = _ref52$margins === void 0 ? 75 : _ref52$margins;\n var getScales = React.useCallback(function (preData, outerRadius, innerRadius) {\n var d = buildShallowChartData(preData);\n var yDomain = getYDomain({\n data: d,\n scaled: false\n });\n var xScale;\n\n if ((axis === null || axis === void 0 ? void 0 : axis.props.type) === 'category') {\n var xDomain = uniqueBy(d, function (dd) {\n return dd.x;\n });\n xScale = d3Scale.scaleBand().range([0, 2 * Math.PI]).domain(xDomain);\n } else {\n var _xDomain = getXDomain({\n data: d\n });\n\n xScale = d3Scale.scaleTime().range([0, 2 * Math.PI]).domain(_xDomain);\n }\n\n var yScale = getRadialYScale(innerRadius, outerRadius, yDomain);\n return {\n yScale: yScale,\n xScale: xScale,\n result: d\n };\n }, []);\n var renderChart = React.useCallback(function (containerProps) {\n var chartWidth = containerProps.chartWidth,\n chartHeight = containerProps.chartHeight,\n id = containerProps.id;\n var outerRadius = Math.min(chartWidth, chartHeight) / 2;\n\n var _getScales = getScales(data, outerRadius, innerRadius),\n yScale = _getScales.yScale,\n xScale = _getScales.xScale,\n result = _getScales.result;\n\n return React__default['default'].createElement(React.Fragment, null, axis && React__default['default'].createElement(rdk.CloneElement, {\n element: axis,\n xScale: xScale,\n height: chartHeight,\n width: chartWidth,\n innerRadius: innerRadius\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: id,\n data: result,\n xScale: xScale,\n yScale: yScale,\n height: chartHeight,\n width: chartWidth,\n outerRadius: outerRadius,\n innerRadius: innerRadius\n }));\n }, [data, series, id, innerRadius, axis]);\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: false,\n yAxisVisible: false,\n center: true,\n className: className\n }, renderChart);\n};\n\nvar pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n};\n\nvar MotionBar = function MotionBar(_a) {\n var custom = _a.custom,\n transition = _a.transition,\n arc = _a.arc,\n rest = __rest(_a, [\"custom\", \"transition\", \"arc\"]);\n\n var d = framerMotion.useMotionValue('');\n var prevPath = framerMotion.useMotionValue(custom.exit);\n var spring = framerMotion.useSpring(prevPath, Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n from: 0,\n to: 1\n }));\n React.useEffect(function () {\n var from = custom.previousEnter ? custom.previousEnter.y : prevPath.get().y;\n var interpolator = d3Interpolate.interpolate(from, custom.enter.y);\n var unsub = spring.onChange(function (v) {\n return d.set(arc(Object.assign(Object.assign({}, custom.enter), {\n y: interpolator(v)\n })));\n });\n prevPath.set(custom.enter);\n return unsub;\n });\n\n var _b = custom.enter,\n enterD = _b.d,\n enterRest = __rest(_b, [\"d\"]);\n\n var _c = custom.exit,\n exitRest = __rest(_c, [\"d\"]);\n\n return React__default['default'].createElement(framerMotion.motion.path, Object.assign({}, rest, {\n initial: exitRest,\n exit: exitRest,\n animate: enterRest,\n transition: transition,\n d: transition.type !== false ? d : enterD\n }));\n};\n\nvar RadialGuideBar = function RadialGuideBar(_ref53) {\n var active = _ref53.active,\n path = _ref53.path,\n _ref53$fill = _ref53.fill,\n fill = _ref53$fill === void 0 ? '#eee' : _ref53$fill,\n _ref53$opacity = _ref53.opacity,\n opacity = _ref53$opacity === void 0 ? 0.2 : _ref53$opacity;\n return React__default['default'].createElement(framerMotion.motion.path, {\n d: path,\n fill: fill,\n pointerEvents: \"none\",\n initial: \"hidden\",\n animate: active ? 'visible' : 'hidden',\n variants: {\n hidden: {\n opacity: 0\n },\n visible: {\n opacity: opacity\n }\n }\n });\n};\n\nvar RadialBar = /*#__PURE__*/function (_React$Component56) {\n _inherits(RadialBar, _React$Component56);\n\n var _super68 = _createSuper(RadialBar);\n\n function RadialBar() {\n _classCallCheck(this, RadialBar);\n\n return _super68.apply(this, arguments);\n }\n\n _createClass(RadialBar, [{\n key: \"getFill\",\n value: function getFill(color) {\n var _this$props124 = this.props,\n id = _this$props124.id,\n gradient = _this$props124.gradient;\n\n if (!gradient) {\n return color;\n }\n\n return \"url(#\".concat(id, \"-gradient)\");\n }\n }, {\n key: \"onMouseEnter\",\n value: function onMouseEnter(event) {\n var _this$props125 = this.props,\n onMouseEnter = _this$props125.onMouseEnter,\n data = _this$props125.data;\n onMouseEnter({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(event) {\n var _this$props126 = this.props,\n onMouseLeave = _this$props126.onMouseLeave,\n data = _this$props126.data;\n onMouseLeave({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"onMouseClick\",\n value: function onMouseClick(event) {\n var _this$props127 = this.props,\n onClick = _this$props127.onClick,\n data = _this$props127.data;\n onClick({\n value: data,\n nativeEvent: event\n });\n }\n }, {\n key: \"getArc\",\n value: function getArc(data) {\n var _this$props128 = this.props,\n innerRadius = _this$props128.innerRadius,\n xScale = _this$props128.xScale,\n yScale = _this$props128.yScale,\n curved = _this$props128.curved;\n var outerRadius = yScale(data.y);\n\n if (curved) {\n var startAngle = xScale(data.x);\n var endAngle = startAngle + xScale.bandwidth();\n var arcFn = d3Shape.arc().innerRadius(innerRadius).outerRadius(outerRadius).startAngle(startAngle).endAngle(endAngle).padAngle(0.01).padRadius(innerRadius);\n return arcFn(data);\n } else {\n var _startAngle = xScale(data.x) - Math.PI * 0.5;\n\n var _endAngle = _startAngle + xScale.bandwidth();\n\n var innerAngleDistance = _endAngle - _startAngle;\n var arcLength = innerRadius * innerAngleDistance;\n var outerAngleDistance = arcLength / outerRadius;\n var halfAngleDistanceDelta = (innerAngleDistance - outerAngleDistance) / 2;\n var pathFn = path();\n pathFn.arc(0, 0, innerRadius, _startAngle, _endAngle);\n pathFn.arc(0, 0, outerRadius, _endAngle - halfAngleDistanceDelta, _startAngle + halfAngleDistanceDelta, true);\n return pathFn.toString();\n }\n }\n }, {\n key: \"getTransition\",\n value: function getTransition() {\n var _this$props129 = this.props,\n animated = _this$props129.animated,\n barCount = _this$props129.barCount,\n index = _this$props129.index;\n\n if (animated) {\n return Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: index / barCount * 0.5\n });\n } else {\n return {\n type: false,\n delay: 0\n };\n }\n }\n }, {\n key: \"renderBar\",\n value: function renderBar(color) {\n var _this$props130 = this.props,\n className = _this$props130.className,\n data = _this$props130.data,\n yScale = _this$props130.yScale,\n active = _this$props130.active,\n guide = _this$props130.guide;\n var fill = this.getFill(color);\n var transition = this.getTransition(); // Track previous props\n\n var previousEnter = this.previousEnter ? Object.assign({}, this.previousEnter) : undefined;\n this.previousEnter = Object.assign({}, data);\n\n var _yScale$domain9 = yScale.domain(),\n _yScale$domain10 = _slicedToArray(_yScale$domain9, 2),\n yStart = _yScale$domain10[0],\n yEnd = _yScale$domain10[1];\n\n var exit = Object.assign(Object.assign({}, data), {\n y: yStart\n });\n var guidePath = this.getArc(Object.assign(Object.assign({}, data), {\n y: yEnd\n }));\n return React__default['default'].createElement(React.Fragment, null, guide && React__default['default'].createElement(rdk.CloneElement, {\n element: guide,\n active: active,\n path: guidePath\n }), React__default['default'].createElement(MotionBar, {\n arc: this.getArc.bind(this),\n custom: {\n enter: data,\n exit: exit,\n previousEnter: previousEnter\n },\n transition: transition,\n fill: fill,\n className: className,\n onMouseEnter: bind__default['default'](this.onMouseEnter, this),\n onMouseLeave: bind__default['default'](this.onMouseLeave, this),\n onClick: bind__default['default'](this.onMouseClick, this)\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props131 = this.props,\n data = _this$props131.data,\n index = _this$props131.index,\n color = _this$props131.color,\n gradient = _this$props131.gradient,\n id = _this$props131.id,\n active = _this$props131.active;\n var fill = color(data, index);\n var currentColorShade = active ? chroma__default['default'](fill).brighten(0.5) : fill;\n return React__default['default'].createElement(React.Fragment, null, this.renderBar(currentColorShade), gradient && React__default['default'].createElement(Gradient, {\n id: \"\".concat(id, \"-gradient\"),\n color: currentColorShade\n }));\n }\n }]);\n\n return RadialBar;\n}(React.Component);\n\nRadialBar.defaultProps = {\n gradient: true,\n curved: false,\n guide: React__default['default'].createElement(RadialGuideBar, null),\n onClick: function onClick() {\n return undefined;\n },\n onMouseEnter: function onMouseEnter() {\n return undefined;\n },\n onMouseLeave: function onMouseLeave() {\n return undefined;\n }\n};\n\nvar RadialBarSeries = /*#__PURE__*/function (_React$Component57) {\n _inherits(RadialBarSeries, _React$Component57);\n\n var _super69 = _createSuper(RadialBarSeries);\n\n function RadialBarSeries() {\n var _this45;\n\n _classCallCheck(this, RadialBarSeries);\n\n _this45 = _super69.apply(this, arguments);\n _this45.state = {};\n return _this45;\n }\n\n _createClass(RadialBarSeries, [{\n key: \"onValueEnter\",\n value: function onValueEnter(event) {\n this.setState({\n activeValues: event.value\n });\n }\n }, {\n key: \"onValueLeave\",\n value: function onValueLeave() {\n this.setState({\n activeValues: undefined\n });\n }\n }, {\n key: \"renderBar\",\n value: function renderBar(point, index) {\n var _this$props132 = this.props,\n innerRadius = _this$props132.innerRadius,\n xScale = _this$props132.xScale,\n yScale = _this$props132.yScale,\n bar = _this$props132.bar,\n id = _this$props132.id,\n data = _this$props132.data,\n animated = _this$props132.animated,\n colorScheme = _this$props132.colorScheme;\n var activeValues = this.state.activeValues;\n var active = activeValues && data && isEqual__default['default'](activeValues.x, point.x);\n return React__default['default'].createElement(React.Fragment, {\n key: index\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: bar,\n id: \"radialbar-\".concat(id, \"-\").concat(index),\n index: index,\n data: point,\n xScale: xScale,\n active: active,\n yScale: yScale,\n innerRadius: innerRadius,\n color: function color(point) {\n return _getColor({\n data: data,\n point: point,\n index: 0,\n colorScheme: colorScheme\n });\n },\n barCount: data.length,\n animated: animated\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props133 = this.props,\n data = _this$props133.data,\n id = _this$props133.id,\n innerRadius = _this$props133.innerRadius,\n outerRadius = _this$props133.outerRadius,\n xScale = _this$props133.xScale,\n yScale = _this$props133.yScale,\n height = _this$props133.height,\n width = _this$props133.width,\n tooltip = _this$props133.tooltip,\n colorScheme = _this$props133.colorScheme;\n return React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n xScale: xScale,\n yScale: yScale,\n data: data,\n height: height,\n width: width,\n isRadial: true,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n onValueEnter: this.onValueEnter.bind(this),\n onValueLeave: this.onValueLeave.bind(this),\n color: function color(point, index) {\n return _getColor({\n data: data,\n point: point,\n index: index,\n colorScheme: colorScheme\n });\n }\n }, React__default['default'].createElement(\"g\", {\n clipPath: \"url(#\".concat(id, \"-path)\")\n }, data.map(this.renderBar.bind(this))));\n }\n }]);\n\n return RadialBarSeries;\n}(React.Component);\n\nRadialBarSeries.defaultProps = {\n colorScheme: schemes.cybertron[0],\n tooltip: React__default['default'].createElement(TooltipArea, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n followCursor: true\n })\n }),\n bar: React__default['default'].createElement(RadialBar, null),\n animated: true\n};\n\nvar RadialBarChart = /*#__PURE__*/function (_React$Component58) {\n _inherits(RadialBarChart, _React$Component58);\n\n var _super70 = _createSuper(RadialBarChart);\n\n function RadialBarChart() {\n var _this46;\n\n _classCallCheck(this, RadialBarChart);\n\n _this46 = _super70.apply(this, arguments);\n _this46.getScales = memoize__default['default'](function (preData, innerRadius, outerRadius) {\n var data = buildShallowChartData(preData);\n var xDomain = uniqueBy(data, function (d) {\n return d.x;\n });\n var yDomain = getYDomain({\n data: data,\n scaled: false\n });\n var xScale = d3Scale.scaleBand().range([0, 2 * Math.PI]).domain(xDomain);\n var yScale = getRadialYScale(innerRadius, outerRadius, yDomain);\n return {\n xScale: xScale,\n yScale: yScale,\n data: data\n };\n });\n return _this46;\n }\n\n _createClass(RadialBarChart, [{\n key: \"renderChart\",\n value: function renderChart(containerProps) {\n var chartWidth = containerProps.chartWidth,\n chartHeight = containerProps.chartHeight,\n id = containerProps.id;\n var _this$props134 = this.props,\n innerRadius = _this$props134.innerRadius,\n series = _this$props134.series,\n axis = _this$props134.axis;\n var outerRadius = Math.min(chartWidth, chartHeight) / 2;\n\n var _this$getScales4 = this.getScales(this.props.data, innerRadius, outerRadius),\n yScale = _this$getScales4.yScale,\n xScale = _this$getScales4.xScale,\n data = _this$getScales4.data;\n\n return React__default['default'].createElement(React.Fragment, null, axis && React__default['default'].createElement(rdk.CloneElement, {\n element: axis,\n xScale: xScale,\n height: chartHeight,\n width: chartWidth,\n innerRadius: innerRadius\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: id,\n data: data,\n height: chartHeight,\n width: chartWidth,\n xScale: xScale,\n yScale: yScale,\n innerRadius: innerRadius,\n outerRadius: outerRadius\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this47 = this;\n\n var _this$props135 = this.props,\n id = _this$props135.id,\n width = _this$props135.width,\n height = _this$props135.height,\n margins = _this$props135.margins,\n className = _this$props135.className;\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: false,\n yAxisVisible: false,\n center: true,\n className: className\n }, function (props) {\n return _this47.renderChart(props);\n });\n }\n }]);\n\n return RadialBarChart;\n}(React.Component);\n\nRadialBarChart.defaultProps = {\n innerRadius: 0.1,\n margins: 75,\n axis: React__default['default'].createElement(RadialAxis, null),\n series: React__default['default'].createElement(RadialBarSeries, null)\n};\n\nvar RadialGaugeArc = function RadialGaugeArc(_ref54) {\n var data = _ref54.data,\n startAngle = _ref54.startAngle,\n endAngle = _ref54.endAngle,\n innerRadius = _ref54.innerRadius,\n outerRadius = _ref54.outerRadius,\n _ref54$cornerRadius = _ref54.cornerRadius,\n cornerRadius = _ref54$cornerRadius === void 0 ? 0 : _ref54$cornerRadius,\n _ref54$padAngle = _ref54.padAngle,\n padAngle = _ref54$padAngle === void 0 ? 0 : _ref54$padAngle,\n _ref54$padRadius = _ref54.padRadius,\n padRadius = _ref54$padRadius === void 0 ? 0 : _ref54$padRadius,\n _ref54$color = _ref54.color,\n color = _ref54$color === void 0 ? '#353d44' : _ref54$color,\n _ref54$animated = _ref54.animated,\n animated = _ref54$animated === void 0 ? true : _ref54$animated,\n _ref54$disabled = _ref54.disabled,\n disabled = _ref54$disabled === void 0 ? false : _ref54$disabled,\n _ref54$onClick = _ref54.onClick,\n onClick = _ref54$onClick === void 0 ? function () {\n return undefined;\n } : _ref54$onClick,\n _ref54$onMouseEnter = _ref54.onMouseEnter,\n onMouseEnter = _ref54$onMouseEnter === void 0 ? function () {\n return undefined;\n } : _ref54$onMouseEnter,\n _ref54$onMouseLeave = _ref54.onMouseLeave,\n onMouseLeave = _ref54$onMouseLeave === void 0 ? function () {\n return undefined;\n } : _ref54$onMouseLeave,\n _ref54$tooltip = _ref54.tooltip,\n tooltip = _ref54$tooltip === void 0 ? React__default['default'].createElement(ChartTooltip, null) : _ref54$tooltip;\n\n /**\r\n * This function will generate the arcs\r\n * https://github.com/d3/d3-shape#arcs\r\n */\n var arcGenerator = React.useMemo(function () {\n return d3Shape.arc().innerRadius(innerRadius).outerRadius(outerRadius).cornerRadius(cornerRadius);\n }, [innerRadius, outerRadius, cornerRadius, padAngle, padRadius]);\n var arcData = {\n // @ts-ignore Data must be passed\n data: data || {},\n startAngle: startAngle,\n endAngle: endAngle,\n padAngle: padAngle\n };\n return React__default['default'].createElement(PieArc, {\n arc: arcGenerator,\n data: arcData,\n animated: animated,\n color: color,\n disabled: disabled,\n tooltip: tooltip,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n });\n};\n\nvar css_248z$p = \".RadialGaugeLabel-module_valueLabel__3I4QC {\\n font-size: 14px;\\n font-weight: 400;\\n fill: var(--color-on-background);\\n opacity: .6;\\n}\\n\";\nvar css$p = {\n \"valueLabel\": \"RadialGaugeLabel-module_valueLabel__3I4QC\"\n};\nstyleInject(css_248z$p);\n\nvar RadialGaugeLabel = /*#__PURE__*/function (_React$PureComponent13) {\n _inherits(RadialGaugeLabel, _React$PureComponent13);\n\n var _super71 = _createSuper(RadialGaugeLabel);\n\n function RadialGaugeLabel() {\n _classCallCheck(this, RadialGaugeLabel);\n\n return _super71.apply(this, arguments);\n }\n\n _createClass(RadialGaugeLabel, [{\n key: \"render\",\n value: function render() {\n var _this$props136 = this.props,\n data = _this$props136.data,\n className = _this$props136.className,\n offset = _this$props136.offset,\n _onClick3 = _this$props136.onClick;\n var label = formatValue(data.key);\n return React__default['default'].createElement(\"text\", {\n x: \"0\",\n y: offset,\n textAnchor: \"middle\",\n // This is only valid when placed below the chart\n alignmentBaseline: 'text-after-edge',\n onClick: function onClick(nativeEvent) {\n return _onClick3({\n data: data,\n nativeEvent: nativeEvent\n });\n },\n className: classNames__default['default'](className, css$p.valueLabel)\n }, label);\n }\n }]);\n\n return RadialGaugeLabel;\n}(React.PureComponent);\n\nRadialGaugeLabel.defaultProps = {\n onClick: function onClick() {\n return undefined;\n }\n};\nvar css_248z$q = \".RadialGaugeValueLabel-module_valueLabel__vjqac {\\n font-size: 18px;\\n font-weight: 400;\\n fill: var(--color-on-background);\\n}\\n\";\nvar css$q = {\n \"valueLabel\": \"RadialGaugeValueLabel-module_valueLabel__vjqac\"\n};\nstyleInject(css_248z$q);\n\nvar RadialGaugeValueLabel = /*#__PURE__*/function (_React$PureComponent14) {\n _inherits(RadialGaugeValueLabel, _React$PureComponent14);\n\n var _super72 = _createSuper(RadialGaugeValueLabel);\n\n function RadialGaugeValueLabel() {\n _classCallCheck(this, RadialGaugeValueLabel);\n\n return _super72.apply(this, arguments);\n }\n\n _createClass(RadialGaugeValueLabel, [{\n key: \"render\",\n value: function render() {\n var _this$props137 = this.props,\n data = _this$props137.data,\n className = _this$props137.className; // TODO: Get seperator based on locale\n\n return React__default['default'].createElement(CountUp__default['default'], {\n start: 0,\n end: data.data,\n delay: 0,\n duration: 1,\n separator: \",\"\n }, function (_ref55) {\n var countUpRef = _ref55.countUpRef;\n return React__default['default'].createElement(\"text\", {\n dy: \"-0.5em\",\n x: \"0\",\n y: \"15\",\n textAnchor: \"middle\",\n className: classNames__default['default'](className, css$q.valueLabel),\n ref: countUpRef\n });\n });\n }\n }]);\n\n return RadialGaugeValueLabel;\n}(React.PureComponent);\n\nRadialGaugeValueLabel.defaultProps = {};\n\nvar RadialGaugeSeries = function RadialGaugeSeries(_a) {\n var data = _a.data,\n scale = _a.scale,\n startAngle = _a.startAngle,\n endAngle = _a.endAngle,\n _a$arcWidth = _a.arcWidth,\n arcWidth = _a$arcWidth === void 0 ? 10 : _a$arcWidth,\n _a$outerArc = _a.outerArc,\n outerArc = _a$outerArc === void 0 ? React__default['default'].createElement(RadialGaugeArc, {\n disabled: true\n }) : _a$outerArc,\n _a$innerArc = _a.innerArc,\n innerArc = _a$innerArc === void 0 ? React__default['default'].createElement(RadialGaugeArc, {\n animated: true\n }) : _a$innerArc,\n _a$label = _a.label,\n label = _a$label === void 0 ? React__default['default'].createElement(RadialGaugeLabel, null) : _a$label,\n _a$valueLabel = _a.valueLabel,\n valueLabel = _a$valueLabel === void 0 ? React__default['default'].createElement(RadialGaugeValueLabel, null) : _a$valueLabel,\n _a$colorScheme = _a.colorScheme,\n colorScheme = _a$colorScheme === void 0 ? ['#00ECB1'] : _a$colorScheme,\n _a$padding = _a.padding,\n padding = _a$padding === void 0 ? 20 : _a$padding,\n _a$minGaugeWidth = _a.minGaugeWidth,\n minGaugeWidth = _a$minGaugeWidth === void 0 ? 50 : _a$minGaugeWidth,\n props = __rest(_a, [\"data\", \"scale\", \"startAngle\", \"endAngle\", \"arcWidth\", \"outerArc\", \"innerArc\", \"label\", \"valueLabel\", \"colorScheme\", \"padding\", \"minGaugeWidth\"]);\n\n function getWidths() {\n var rows = 1;\n var columns = data.length;\n\n if (props.width / data.length < minGaugeWidth) {\n while (props.width / columns < minGaugeWidth) {\n rows += 1;\n columns = Math.ceil(data.length / rows);\n }\n }\n\n var xScale = d3Scale.scaleBand();\n xScale.domain(d3Array.range(columns));\n xScale.rangeRound([0, props.width], 0.1);\n var yScale = d3Scale.scaleBand();\n yScale.domain(d3Array.range(rows));\n yScale.rangeRound([0, props.height], 0.1);\n return {\n columns: columns,\n xScale: xScale,\n yScale: yScale,\n width: xScale.bandwidth(),\n height: yScale.bandwidth()\n };\n }\n\n function renderGauge(point, index, columns, height, width, xScale, yScale) {\n var dataEndAngle = scale(point.data);\n var outerRadius = d3Array.min([width - padding * 2, height - padding * 2]) / 2;\n var innerRadius = outerRadius - arcWidth;\n var labelOffset = height / 2;\n var x = xScale(index % columns);\n var y = yScale(Math.floor(index / columns));\n var xOffset = x + (width - padding) / 2;\n var yOffset = y + height / 2;\n return React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(xOffset, \", \").concat(yOffset, \")\"),\n key: point.key.toLocaleString()\n }, outerArc && React.cloneElement(outerArc, {\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n }), innerArc && React.cloneElement(innerArc, {\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n startAngle: startAngle,\n endAngle: dataEndAngle,\n data: point,\n color: _getColor({\n data: data,\n colorScheme: colorScheme,\n point: point,\n index: index\n })\n }), valueLabel && React.cloneElement(valueLabel, {\n data: point\n }), label && React.cloneElement(label, {\n data: point,\n offset: labelOffset\n }));\n }\n\n var _getWidths = getWidths(),\n columns = _getWidths.columns,\n width = _getWidths.width,\n height = _getWidths.height,\n xScale = _getWidths.xScale,\n yScale = _getWidths.yScale;\n\n return React__default['default'].createElement(React__default['default'].Fragment, null, data.map(function (d, i) {\n return renderGauge(d, i, columns, height, width, xScale, yScale);\n }));\n};\n\nvar css_248z$r = \".StackedRadialGaugeValueLabel-module_stackedValueLabel__1qplE {\\n font-size: 18px;\\n font-weight: 400;\\n fill: var(--color-on-background);\\n}\\n\";\nvar css$r = {\n \"stackedValueLabel\": \"StackedRadialGaugeValueLabel-module_stackedValueLabel__1qplE\"\n};\nstyleInject(css_248z$r);\n\nvar StackedRadialGaugeLabel = function StackedRadialGaugeLabel(_ref56) {\n var label = _ref56.label,\n className = _ref56.className,\n _ref56$yOffset = _ref56.yOffset,\n yOffset = _ref56$yOffset === void 0 ? 0 : _ref56$yOffset;\n return React__default['default'].createElement(React__default['default'].Fragment, null, label && React__default['default'].createElement(\"text\", {\n x: \"0\",\n y: yOffset,\n textAnchor: \"middle\",\n alignmentBaseline: \"middle\",\n className: classNames__default['default'](className, css$r.stackedValueLabel)\n }, label));\n};\n\nvar StackedRadialGaugeSeries = function StackedRadialGaugeSeries(_ref57) {\n var data = _ref57.data,\n width = _ref57.width,\n height = _ref57.height,\n scale = _ref57.scale,\n startAngle = _ref57.startAngle,\n endAngle = _ref57.endAngle,\n _ref57$outerArc = _ref57.outerArc,\n outerArc = _ref57$outerArc === void 0 ? React__default['default'].createElement(RadialGaugeArc, {\n disabled: true\n }) : _ref57$outerArc,\n _ref57$innerArc = _ref57.innerArc,\n innerArc = _ref57$innerArc === void 0 ? React__default['default'].createElement(RadialGaugeArc, {\n animated: true\n }) : _ref57$innerArc,\n _ref57$label = _ref57.label,\n label = _ref57$label === void 0 ? React__default['default'].createElement(StackedRadialGaugeLabel, null) : _ref57$label,\n _ref57$colorScheme = _ref57.colorScheme,\n colorScheme = _ref57$colorScheme === void 0 ? ['#00ECB1'] : _ref57$colorScheme,\n _ref57$fillFactor = _ref57.fillFactor,\n fillFactor = _ref57$fillFactor === void 0 ? 0.2 : _ref57$fillFactor,\n _ref57$arcPadding = _ref57.arcPadding,\n arcPadding = _ref57$arcPadding === void 0 ? 0.15 : _ref57$arcPadding;\n var radius = Math.min(width, height) / 2;\n var innerRadius = radius * (1 - Math.min(fillFactor, 1));\n var rAxis = d3Scale.scaleBand();\n rAxis.domain(d3Array.range(data.length));\n rAxis.range([innerRadius, radius]);\n rAxis.paddingInner(arcPadding);\n\n function renderStackedGauges(point, index, rAxis) {\n var dataEndAngle = scale(point.data);\n var outerRadius = rAxis(index);\n var innerRadius = outerRadius - rAxis.bandwidth();\n return React__default['default'].createElement(\"g\", {\n key: point.key.toLocaleString()\n }, outerArc && React.cloneElement(outerArc, {\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n }), innerArc && React.cloneElement(innerArc, {\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n startAngle: startAngle,\n endAngle: dataEndAngle,\n data: point,\n color: _getColor({\n data: data,\n colorScheme: colorScheme,\n point: point,\n index: index\n })\n }));\n }\n\n return React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(\"g\", {\n transform: \"translate(\".concat(width / 2, \", \").concat(height / 2, \")\")\n }, data.map(function (d, i) {\n return renderStackedGauges(d, i, rAxis);\n }), label));\n};\n\nvar RadialGauge = function RadialGauge(_ref58) {\n var id = _ref58.id,\n width = _ref58.width,\n height = _ref58.height,\n margins = _ref58.margins,\n className = _ref58.className,\n data = _ref58.data,\n _ref58$minValue = _ref58.minValue,\n minValue = _ref58$minValue === void 0 ? 0 : _ref58$minValue,\n _ref58$maxValue = _ref58.maxValue,\n maxValue = _ref58$maxValue === void 0 ? 100 : _ref58$maxValue,\n _ref58$startAngle = _ref58.startAngle,\n startAngle = _ref58$startAngle === void 0 ? 0 : _ref58$startAngle,\n _ref58$endAngle = _ref58.endAngle,\n endAngle = _ref58$endAngle === void 0 ? Math.PI * 2 : _ref58$endAngle,\n _ref58$series = _ref58.series,\n series = _ref58$series === void 0 ? React__default['default'].createElement(RadialGaugeSeries, null) : _ref58$series;\n var scale = d3Scale.scaleLinear().domain([minValue, maxValue]).range([startAngle, endAngle]);\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: false,\n yAxisVisible: false,\n className: className\n }, function (props) {\n return React.cloneElement(series, {\n scale: scale,\n data: data,\n startAngle: startAngle,\n endAngle: endAngle,\n width: props.width,\n height: props.height\n });\n });\n};\n\nvar css_248z$s = \".HeatmapCell-module_cell__2iO3O {\\n transition: stroke 150ms ease-in-out;\\n}\\n\";\nvar css$s = {\n \"cell\": \"HeatmapCell-module_cell__2iO3O\"\n};\nstyleInject(css_248z$s); // Set padding modifier for the tooltips\n\nvar modifiers$1 = {\n offset: {\n offset: '0, 3px'\n }\n};\n\nvar HeatmapCell = function HeatmapCell(_a) {\n var _a$rx = _a.rx,\n rx = _a$rx === void 0 ? 2 : _a$rx,\n _a$ry = _a.ry,\n ry = _a$ry === void 0 ? 2 : _a$ry,\n _a$cursor2 = _a.cursor,\n cursor = _a$cursor2 === void 0 ? 'auto' : _a$cursor2,\n _a$tooltip2 = _a.tooltip,\n tooltip = _a$tooltip2 === void 0 ? React__default['default'].createElement(ChartTooltip, null) : _a$tooltip2,\n _a$onClick2 = _a.onClick,\n onClick = _a$onClick2 === void 0 ? function () {\n return undefined;\n } : _a$onClick2,\n _a$onMouseEnter2 = _a.onMouseEnter,\n onMouseEnter = _a$onMouseEnter2 === void 0 ? function () {\n return undefined;\n } : _a$onMouseEnter2,\n _a$onMouseLeave2 = _a.onMouseLeave,\n onMouseLeave = _a$onMouseLeave2 === void 0 ? function () {\n return undefined;\n } : _a$onMouseLeave2,\n data = _a.data,\n animated = _a.animated,\n cellIndex = _a.cellIndex,\n cellCount = _a.cellCount,\n fill = _a.fill,\n x = _a.x,\n y = _a.y,\n style = _a.style,\n className = _a.className,\n rest = __rest(_a, [\"rx\", \"ry\", \"cursor\", \"tooltip\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"data\", \"animated\", \"cellIndex\", \"cellCount\", \"fill\", \"x\", \"y\", \"style\", \"className\"]);\n\n var _React$useState25 = React.useState(false),\n _React$useState26 = _slicedToArray(_React$useState25, 2),\n active = _React$useState26[0],\n setActive = _React$useState26[1];\n\n var rect = React.useRef(null);\n\n var onMouseEnterWrapper = function onMouseEnterWrapper(event) {\n setActive(true);\n onMouseEnter({\n value: data,\n nativeEvent: event\n });\n };\n\n var onMouseLeaveWrapper = function onMouseLeaveWrapper(event) {\n setActive(false);\n onMouseLeave({\n value: data,\n nativeEvent: event\n });\n };\n\n var onMouseClick = function onMouseClick(event) {\n onClick({\n value: data,\n nativeEvent: event\n });\n };\n\n var tooltipData = React.useMemo(function () {\n return {\n y: data.value,\n x: \"\".concat(data.key, \" \\u2219 \").concat(data.x),\n data: data\n };\n }, [data]);\n var transition = React.useMemo(function () {\n if (animated) {\n return Object.assign(Object.assign({}, DEFAULT_TRANSITION), {\n delay: cellIndex / cellCount * 0.005\n });\n } else {\n return {\n type: false,\n delay: 0\n };\n }\n }, [animated, cellIndex, cellCount]);\n var extras = constructFunctionProps({\n style: style,\n className: className\n }, data);\n var isTransparent = fill === 'transparent';\n var stroke = active && !isTransparent ? chroma__default['default'](fill).brighten(1) : fill;\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(framerMotion.motion.g, {\n ref: rect,\n x: x,\n y: y\n }, React__default['default'].createElement(framerMotion.motion.rect, Object.assign({}, rest, {\n fill: fill,\n stroke: stroke,\n style: Object.assign(Object.assign({}, extras.style), {\n cursor: cursor\n }),\n className: classNames__default['default'](css$s.cell, extras.className),\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n transition: transition,\n onMouseEnter: onMouseEnterWrapper,\n onMouseLeave: onMouseLeaveWrapper,\n onClick: onMouseClick\n }))), tooltip && !tooltip.props.disabled && !isTransparent && React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n visible: active,\n modifiers: tooltip.props.modifiers || modifiers$1,\n reference: rect,\n value: tooltipData\n }));\n};\n\nvar HeatmapSeries = /*#__PURE__*/function (_React$Component59) {\n _inherits(HeatmapSeries, _React$Component59);\n\n var _super73 = _createSuper(HeatmapSeries);\n\n function HeatmapSeries() {\n var _this48;\n\n _classCallCheck(this, HeatmapSeries);\n\n _this48 = _super73.apply(this, arguments);\n _this48.getValueScale = memoize__default['default'](function (data, colorScheme, emptyColor) {\n var valueDomain = d3Array.extent(uniqueBy(data, function (d) {\n return d.data;\n }, function (d) {\n return d.value;\n }));\n return function (point) {\n // For 0 values, lets show a placeholder fill\n if (point === undefined || point === null) {\n return emptyColor;\n }\n\n return _getColor({\n scale: d3Scale.scaleQuantile,\n domain: valueDomain,\n key: point,\n colorScheme: colorScheme\n });\n };\n });\n return _this48;\n }\n\n _createClass(HeatmapSeries, [{\n key: \"renderCell\",\n value: function renderCell(_ref59) {\n var row = _ref59.row,\n cell = _ref59.cell,\n rowIndex = _ref59.rowIndex,\n cellIndex = _ref59.cellIndex,\n valueScale = _ref59.valueScale,\n width = _ref59.width,\n height = _ref59.height,\n cellCount = _ref59.cellCount;\n var _this$props138 = this.props,\n xScale = _this$props138.xScale,\n yScale = _this$props138.yScale,\n id = _this$props138.id,\n animated = _this$props138.animated,\n cellElement = _this$props138.cell;\n var x = xScale(row.key);\n var y = yScale(cell.x);\n var fill = valueScale(cell.value);\n return React__default['default'].createElement(rdk.CloneElement, {\n key: \"\".concat(id, \"-\").concat(rowIndex, \"-\").concat(cellIndex),\n element: cellElement,\n animated: animated,\n cellIndex: rowIndex + cellIndex,\n cellCount: cellCount,\n x: x,\n y: y,\n fill: fill,\n width: width,\n height: height,\n data: cell\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this49 = this;\n\n var _this$props139 = this.props,\n xScale = _this$props139.xScale,\n yScale = _this$props139.yScale,\n data = _this$props139.data,\n colorScheme = _this$props139.colorScheme,\n emptyColor = _this$props139.emptyColor;\n var valueScale = this.getValueScale(data, colorScheme, emptyColor);\n var height = yScale.bandwidth();\n var width = xScale.bandwidth();\n var cellCount = d3Array.sum([].concat(_toConsumableArray(yScale.domain()), _toConsumableArray(xScale.domain())));\n return React__default['default'].createElement(React.Fragment, null, data.map(function (row, rowIndex) {\n return row.data.map(function (cell, cellIndex) {\n return _this49.renderCell({\n height: height,\n width: width,\n valueScale: valueScale,\n cellCount: cellCount,\n row: row,\n cell: cell,\n rowIndex: rowIndex,\n cellIndex: cellIndex\n });\n });\n }));\n }\n }]);\n\n return HeatmapSeries;\n}(React.Component);\n\nHeatmapSeries.defaultProps = {\n padding: 0.1,\n animated: true,\n emptyColor: 'rgba(200,200,200,0.08)',\n colorScheme: ['rgba(28, 107, 86, 0.5)', '#2da283'],\n cell: React__default['default'].createElement(HeatmapCell, null)\n};\n\nvar Heatmap = function Heatmap(_ref60) {\n var _ref60$data = _ref60.data,\n data = _ref60$data === void 0 ? [] : _ref60$data,\n _ref60$margins = _ref60.margins,\n margins = _ref60$margins === void 0 ? 10 : _ref60$margins,\n _ref60$series = _ref60.series,\n series = _ref60$series === void 0 ? React__default['default'].createElement(HeatmapSeries, null) : _ref60$series,\n _ref60$yAxis = _ref60.yAxis,\n yAxis = _ref60$yAxis === void 0 ? React__default['default'].createElement(LinearYAxis, {\n type: \"category\",\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n line: null,\n label: React__default['default'].createElement(LinearYAxisTickLabel, {\n padding: 5\n })\n })\n }) : _ref60$yAxis,\n _ref60$xAxis = _ref60.xAxis,\n xAxis = _ref60$xAxis === void 0 ? React__default['default'].createElement(LinearXAxis, {\n type: \"category\",\n axisLine: null,\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n line: null,\n label: React__default['default'].createElement(LinearXAxisTickLabel, {\n padding: 5\n })\n })\n }) : _ref60$xAxis,\n secondaryAxis = _ref60.secondaryAxis,\n id = _ref60.id,\n width = _ref60.width,\n height = _ref60.height,\n className = _ref60.className;\n var getScalesData = React.useCallback(function (chartHeight, chartWidth) {\n var nestedData = buildNestedChartData(data);\n var xDomain = xAxis.props.domain || uniqueBy(nestedData, function (d) {\n return d.key;\n });\n var xScale = d3Scale.scaleBand().range([0, chartWidth]).domain(xDomain).paddingInner(series.props.padding);\n var yDomain = yAxis.props.domain || uniqueBy(nestedData, function (d) {\n return d.data;\n }, function (d) {\n return d.x;\n });\n var yScale = d3Scale.scaleBand().domain(yDomain).range([chartHeight, 0]).paddingInner(series.props.padding);\n return {\n yScale: yScale,\n xScale: xScale,\n data: nestedData\n };\n }, [data, xAxis, yAxis, series]);\n\n var renderChart = function renderChart(containerProps) {\n var chartWidth = containerProps.chartWidth,\n chartHeight = containerProps.chartHeight,\n updateAxes = containerProps.updateAxes,\n id = containerProps.id;\n\n var _getScalesData = getScalesData(chartHeight, chartWidth),\n xScale = _getScalesData.xScale,\n yScale = _getScalesData.yScale,\n scalesData = _getScalesData.data;\n\n return React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(rdk.CloneElement, {\n element: xAxis,\n height: chartHeight,\n width: chartWidth,\n scale: xScale,\n onDimensionsChange: function onDimensionsChange(event) {\n return updateAxes('horizontal', event);\n }\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: yAxis,\n height: chartHeight,\n width: chartWidth,\n scale: yScale,\n onDimensionsChange: function onDimensionsChange(event) {\n return updateAxes('vertical', event);\n }\n }), secondaryAxis && secondaryAxis.map(function (axis, i) {\n return React__default['default'].createElement(rdk.CloneElement, {\n key: i,\n element: axis,\n height: chartHeight,\n width: chartWidth,\n onDimensionsChange: function onDimensionsChange(event) {\n return updateAxes('horizontal', event);\n }\n });\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: \"heat-series-\".concat(id),\n data: scalesData,\n xScale: xScale,\n yScale: yScale\n }));\n };\n\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: isAxisVisible(xAxis.props),\n yAxisVisible: isAxisVisible(yAxis.props),\n className: className\n }, renderChart);\n};\n\nvar getFirstOfMonth = function getFirstOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n};\n\nvar addWeeksToDate = function addWeeksToDate(date, weeks) {\n var d = new Date(date.getTime());\n d.setDate(d.getDate() + weeks * 7);\n return d;\n};\n\nvar getStartOfDay = function getStartOfDay(date) {\n var d = new Date(date.getTime());\n d.setHours(0, 0, 0, 0);\n return d;\n};\n\nvar getNewDayFromDay = function getNewDayFromDay(date, num) {\n var d = new Date(date.getTime());\n d.setDate(d.getDate() + num);\n return d;\n};\n\nvar weekDays = function () {\n var base = new Date(Date.UTC(2017, 0, 2));\n return d3Array.range(7).map(function () {\n var name = base.toLocaleDateString('default', {\n weekday: 'short'\n });\n base.setDate(base.getDate() + 1);\n return name;\n });\n}();\n\nvar buildDataScales = function buildDataScales(rawData, view) {\n var _a; // Get the most recent date to get the range from\n // From the end date, lets find the start year/month of that\n // From that start year/month, lets find the end year/month for our bounds\n\n\n var startDate = d3Array.min(rawData, function (d) {\n return d.key;\n });\n var start = getFirstOfMonth(startDate);\n var endDomain = view === 'year' ? 53 : 5;\n var end = addWeeksToDate(start, endDomain); // Base on the view type, swap out some ranges\n\n var xDomainRange = view === 'year' ? 53 : 5; // Build our x/y domains for days of week + number of weeks in year\n\n var yDomain = d3Array.range(7).reverse();\n var xDomain = d3Array.range(xDomainRange); // Filter out dates that are not in the start/end ranges\n // and turn them into something our chart can read\n\n var dates = rawData.filter(function (d) {\n return d.key.getTime() > start.getTime() || d.key.getTime() < end.getTime();\n }).map(function (d) {\n return {\n key: getStartOfDay(d.key),\n data: d.data\n };\n }); // Find the first day of the duration and subtract the delta\n\n var firstDayOfStart = start.getDay();\n var curDate = getNewDayFromDay(start, -firstDayOfStart);\n var rows = []; // Build out the dataset for the n duration\n\n for (var week = 0; week < xDomainRange; week++) {\n var row = {\n key: week,\n data: []\n };\n\n for (var day = 0; day <= 6; day++) {\n var dayValue = dates.find(function (d) {\n return d.key.getTime() === curDate.getTime();\n });\n row.data.push({\n key: day,\n data: (_a = dayValue === null || dayValue === void 0 ? void 0 : dayValue.data) !== null && _a !== void 0 ? _a : undefined,\n metadata: {\n date: new Date(curDate.getTime()),\n start: start,\n end: end\n }\n });\n curDate.setDate(curDate.getDate() + 1);\n }\n\n rows.push(row);\n }\n\n return {\n data: rows,\n yDomain: yDomain,\n xDomain: xDomain,\n start: start\n };\n}; // Format the xAxis label for the start + n week\n\n\nvar xAxisLabelFormat = function xAxisLabelFormat(start) {\n return function (weeks) {\n return addWeeksToDate(start, weeks).toLocaleString('default', {\n month: 'long'\n });\n };\n};\n\nvar CalendarHeatmap = function CalendarHeatmap(_a) {\n var _a$view = _a.view,\n view = _a$view === void 0 ? 'year' : _a$view,\n _a$series5 = _a.series,\n series = _a$series5 === void 0 ? React__default['default'].createElement(HeatmapSeries, {\n padding: 0.3,\n emptyColor: 'transparent',\n cell: React__default['default'].createElement(HeatmapCell, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n content: function content(d) {\n return \"\".concat(formatValue(d.data.metadata.date), \" \\u2219 \").concat(formatValue(d.data.value));\n }\n })\n })\n }) : _a$series5,\n data = _a.data,\n rest = __rest(_a, [\"view\", \"series\", \"data\"]);\n\n var dataDomains = React.useMemo(function () {\n return buildDataScales(data, view);\n }, [data, view]);\n var domainData = dataDomains.data,\n yDomain = dataDomains.yDomain,\n xDomain = dataDomains.xDomain,\n start = dataDomains.start; // For month, only pass 1 tick value\n\n var xTickValues = view === 'year' ? undefined : [1]; // Get the yAxis label formatting based on view type\n\n var yAxisLabelFormat = view === 'year' ? function (d) {\n return weekDays[d];\n } : function () {\n return null;\n };\n return React__default['default'].createElement(Heatmap, Object.assign({}, rest, {\n data: domainData,\n yAxis: React__default['default'].createElement(LinearYAxis, {\n type: \"category\",\n axisLine: null,\n domain: yDomain,\n tickSeries: React__default['default'].createElement(LinearYAxisTickSeries, {\n tickSize: 20,\n line: null,\n label: React__default['default'].createElement(LinearYAxisTickLabel, {\n padding: 5,\n format: yAxisLabelFormat\n })\n })\n }),\n xAxis: React__default['default'].createElement(LinearXAxis, {\n type: \"category\",\n axisLine: null,\n domain: xDomain,\n tickSeries: React__default['default'].createElement(LinearXAxisTickSeries, {\n line: null,\n tickValues: xTickValues,\n label: React__default['default'].createElement(LinearXAxisTickLabel, {\n padding: 5,\n align: \"end\",\n format: xAxisLabelFormat(start)\n })\n })\n })\n }));\n};\n\nvar LinearGaugeBar = function LinearGaugeBar(props) {\n return React__default['default'].createElement(Bar, Object.assign({}, props, {\n tooltip: React__default['default'].createElement(ChartTooltip, {\n placement: \"top\",\n content: function content(data) {\n return React__default['default'].createElement(TooltipTemplate, {\n value: {\n y: data.value,\n x: data.y\n }\n });\n }\n })\n }));\n};\n\nvar LinearGaugeOuterBar = function LinearGaugeOuterBar(_a) {\n var height = _a.height,\n width = _a.width,\n fill = _a.fill,\n rest = __rest(_a, [\"height\", \"width\", \"fill\"]);\n\n return React__default['default'].createElement(\"rect\", Object.assign({}, rest, {\n fill: fill || '#484848',\n width: Math.max(width, 0),\n height: Math.max(height, 0)\n }));\n};\n\nvar defaultProps = {\n outerBar: React__default['default'].createElement(LinearGaugeOuterBar, null),\n bar: React__default['default'].createElement(LinearGaugeBar, null)\n};\n\nvar LinearGaugeSeries = function LinearGaugeSeries(_a) {\n var height = _a.height,\n width = _a.width,\n bar = _a.bar,\n outerBar = _a.outerBar,\n isMultiSeries = _a.isMultiSeries,\n rest = __rest(_a, [\"height\", \"width\", \"bar\", \"outerBar\", \"isMultiSeries\"]);\n\n return React__default['default'].createElement(React.Fragment, null, !isMultiSeries && React__default['default'].createElement(rdk.CloneElement, {\n element: outerBar || defaultProps.outerBar,\n height: height,\n width: width\n }), React__default['default'].createElement(BarSeries, Object.assign({}, rest, {\n layout: \"horizontal\",\n tooltip: null,\n bar: React__default['default'].createElement(rdk.CloneElement, {\n element: bar || defaultProps.bar\n })\n })));\n};\n\nvar LinearGauge = /*#__PURE__*/function (_React$Component60) {\n _inherits(LinearGauge, _React$Component60);\n\n var _super74 = _createSuper(LinearGauge);\n\n function LinearGauge() {\n _classCallCheck(this, LinearGauge);\n\n return _super74.apply(this, arguments);\n }\n\n _createClass(LinearGauge, [{\n key: \"getData\",\n value: function getData(data) {\n if (Array.isArray(data)) {\n return buildBarStackData([{\n key: 'default',\n data: data\n }], 'expand', 'horizontal');\n } else {\n return buildShallowChartData([data], 'horizontal');\n }\n }\n }, {\n key: \"getScales\",\n value: function getScales(isMultiSeries, data, width, height, minValue, maxValue) {\n var domain = !isMultiSeries ? [minValue, maxValue] : undefined;\n var keyScale = getXScale({\n width: width,\n type: 'value',\n data: data,\n domain: domain,\n isMultiSeries: isMultiSeries\n });\n var valueScale = getYScale({\n type: 'category',\n height: height,\n data: data,\n isMultiSeries: isMultiSeries\n });\n return {\n keyScale: keyScale,\n valueScale: valueScale\n };\n }\n }, {\n key: \"renderChart\",\n value: function renderChart(_ref61) {\n var chartHeight = _ref61.chartHeight,\n chartWidth = _ref61.chartWidth,\n id = _ref61.id,\n chartSized = _ref61.chartSized;\n var _this$props140 = this.props,\n series = _this$props140.series,\n data = _this$props140.data,\n minValue = _this$props140.minValue,\n maxValue = _this$props140.maxValue;\n var isMultiSeries = Array.isArray(data);\n var type = isMultiSeries ? 'stackedNormalized' : 'standard';\n var transformedData = this.getData(data);\n\n var _this$getScales5 = this.getScales(isMultiSeries, transformedData, chartWidth, chartHeight, minValue, maxValue),\n keyScale = _this$getScales5.keyScale,\n valueScale = _this$getScales5.valueScale;\n\n return React__default['default'].createElement(React.Fragment, null, chartSized && React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n id: \"linear-gauge-series-\".concat(id),\n data: transformedData,\n isCategorical: true,\n xScale: keyScale,\n yScale: valueScale,\n type: type,\n height: chartHeight,\n width: chartWidth,\n isMultiSeries: isMultiSeries\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this50 = this;\n\n var _this$props141 = this.props,\n id = _this$props141.id,\n width = _this$props141.width,\n height = _this$props141.height,\n margins = _this$props141.margins,\n className = _this$props141.className;\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n className: className\n }, function (props) {\n return _this50.renderChart(props);\n });\n }\n }]);\n\n return LinearGauge;\n}(React.Component);\n\nLinearGauge.defaultProps = {\n minValue: 0,\n maxValue: 100,\n series: React__default['default'].createElement(LinearGaugeSeries, null)\n};\n\nvar useInterpolate$1 = function useInterpolate$1(_ref62) {\n var data = _ref62.data,\n animated = _ref62.animated;\n var transition = animated ? Object.assign({}, DEFAULT_TRANSITION) : {\n delay: 0,\n type: false\n };\n var d = framerMotion.useMotionValue(data.path);\n var prevPath = framerMotion.useMotionValue(data.path);\n var spring = framerMotion.useSpring(prevPath, {\n from: 0,\n to: 1\n });\n React.useEffect(function () {\n var interpolator = d3Interpolate.interpolate(prevPath.get(), data.path);\n spring.onChange(function (v) {\n return d.set(interpolator(v));\n });\n prevPath.set(data.path);\n });\n return {\n transition: transition,\n d: d\n };\n};\n\nvar VennArc = function VennArc(_ref63) {\n var data = _ref63.data,\n fill = _ref63.fill,\n disabled = _ref63.disabled,\n animated = _ref63.animated,\n stroke = _ref63.stroke,\n mask = _ref63.mask,\n id = _ref63.id,\n _ref63$active = _ref63.active,\n active = _ref63$active === void 0 ? false : _ref63$active,\n style = _ref63.style,\n _ref63$inactiveStyle = _ref63.inactiveStyle,\n inactiveStyle = _ref63$inactiveStyle === void 0 ? {\n opacity: 0.3\n } : _ref63$inactiveStyle,\n _ref63$activeStyle = _ref63.activeStyle,\n activeStyle = _ref63$activeStyle === void 0 ? {\n opacity: 0.8\n } : _ref63$activeStyle,\n _ref63$initialStyle = _ref63.initialStyle,\n initialStyle = _ref63$initialStyle === void 0 ? {\n opacity: 0.6\n } : _ref63$initialStyle,\n _ref63$strokeWidth = _ref63.strokeWidth,\n strokeWidth = _ref63$strokeWidth === void 0 ? 3 : _ref63$strokeWidth,\n _ref63$gradient = _ref63.gradient,\n gradient = _ref63$gradient === void 0 ? React__default['default'].createElement(Gradient, null) : _ref63$gradient,\n _ref63$tooltip = _ref63.tooltip,\n tooltip = _ref63$tooltip === void 0 ? React__default['default'].createElement(ChartTooltip, null) : _ref63$tooltip,\n _ref63$onClick = _ref63.onClick,\n _onClick4 = _ref63$onClick === void 0 ? function () {\n return undefined;\n } : _ref63$onClick,\n _ref63$onMouseEnter = _ref63.onMouseEnter,\n _onMouseEnter3 = _ref63$onMouseEnter === void 0 ? function () {\n return undefined;\n } : _ref63$onMouseEnter,\n _ref63$onMouseLeave = _ref63.onMouseLeave,\n _onMouseLeave3 = _ref63$onMouseLeave === void 0 ? function () {\n return undefined;\n } : _ref63$onMouseLeave;\n\n var _a, _b;\n\n var _React$useState27 = React.useState(false),\n _React$useState28 = _slicedToArray(_React$useState27, 2),\n internalActive = _React$useState28[0],\n setInternalActive = _React$useState28[1];\n\n var arcRef = React.useRef(null);\n\n var _useInterpolate$ = useInterpolate$1({\n animated: animated,\n data: data\n }),\n transition = _useInterpolate$.transition,\n d = _useInterpolate$.d;\n\n var currentStyle = active ? activeStyle : active === null ? inactiveStyle : initialStyle;\n var arcFill = gradient && !mask ? \"url(#gradient-\".concat(id, \")\") : mask ? \"url(#mask-pattern-\".concat(id, \")\") : fill;\n return React__default['default'].createElement(\"g\", {\n title: data.data.key,\n onMouseEnter: function onMouseEnter(event) {\n if (!disabled) {\n setInternalActive(true);\n\n _onMouseEnter3({\n value: data.data,\n nativeEvent: event\n });\n }\n },\n onMouseLeave: function onMouseLeave(event) {\n if (!disabled) {\n setInternalActive(false);\n\n _onMouseLeave3({\n value: data.data,\n nativeEvent: event\n });\n }\n },\n onClick: function onClick(event) {\n if (!disabled) {\n _onClick4({\n value: data.data,\n nativeEvent: event\n });\n }\n }\n }, React__default['default'].createElement(framerMotion.motion.path, {\n ref: arcRef,\n fill: arcFill,\n id: \"\".concat(id, \"-arc\"),\n strokeWidth: strokeWidth,\n stroke: stroke,\n transition: transition,\n d: d,\n initial: initialStyle,\n animate: currentStyle,\n style: style\n }), mask && React__default['default'].createElement(React.Fragment, null, React__default['default'].createElement(Mask, {\n id: \"mask-\".concat(id),\n fill: \"url(#gradient-\".concat(id, \")\")\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: mask,\n id: \"mask-pattern-\".concat(id),\n fill: fill\n })), gradient && React__default['default'].createElement(rdk.CloneElement, {\n element: gradient,\n id: \"gradient-\".concat(id),\n color: fill\n }), tooltip && !tooltip.props.disabled && React__default['default'].createElement(rdk.CloneElement, {\n element: tooltip,\n visible: !!internalActive,\n reference: arcRef,\n value: {\n y: data.data.size,\n x: (_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.sets) === null || _b === void 0 ? void 0 : _b.join(' | ')\n }\n }));\n};\n\nfunction wrapText(_ref64) {\n var key = _ref64.key,\n data = _ref64.data,\n fontFamily = _ref64.fontFamily,\n fontSize = _ref64.fontSize;\n\n var _a, _b;\n\n var size = calculateDimensions(key, fontFamily, fontSize);\n var width = (_b = (_a = data === null || data === void 0 ? void 0 : data.circles) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.radius;\n\n if (size.width > width) {\n var words = key.split(/\\s+/);\n var rows = [];\n var sum = 0;\n var curText = '';\n var lineNum = 0;\n\n var _iterator26 = _createForOfIteratorHelper(words),\n _step26;\n\n try {\n for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {\n var word = _step26.value;\n var wordSize = calculateDimensions(word, fontFamily, fontSize);\n var wordWidth = wordSize.width;\n lineNum++;\n\n if (sum + wordWidth < width) {\n sum += wordWidth;\n curText = \"\".concat(curText, \" \").concat(word);\n } else {\n rows.push(curText);\n sum = 0;\n curText = word;\n }\n\n if (words.length === lineNum) {\n rows.push(curText);\n }\n }\n } catch (err) {\n _iterator26.e(err);\n } finally {\n _iterator26.f();\n }\n\n return rows.map(function (r, i) {\n return React__default['default'].createElement(\"tspan\", {\n key: i,\n dominantBaseline: \"alphabetic\",\n style: {\n baselineShift: '0%'\n },\n dy: i * size.height,\n x: data.text.x\n }, r);\n });\n }\n\n return key;\n}\n\nvar VennLabel = function VennLabel(_ref65) {\n var data = _ref65.data,\n format = _ref65.format,\n id = _ref65.id,\n active = _ref65.active,\n _ref65$labelType = _ref65.labelType,\n labelType = _ref65$labelType === void 0 ? 'key' : _ref65$labelType,\n _ref65$showAll = _ref65.showAll,\n showAll = _ref65$showAll === void 0 ? false : _ref65$showAll,\n _ref65$wrap = _ref65.wrap,\n wrap = _ref65$wrap === void 0 ? true : _ref65$wrap,\n _ref65$animated = _ref65.animated,\n animated = _ref65$animated === void 0 ? true : _ref65$animated,\n _ref65$fill = _ref65.fill,\n fill = _ref65$fill === void 0 ? '#000' : _ref65$fill,\n _ref65$fontSize = _ref65.fontSize,\n fontSize = _ref65$fontSize === void 0 ? 11 : _ref65$fontSize,\n _ref65$fontFamily = _ref65.fontFamily,\n fontFamily = _ref65$fontFamily === void 0 ? 'sans-serif' : _ref65$fontFamily;\n\n var _a, _b, _c; // If the text area is very large, then lets just skip showing the label\n\n\n if (!showAll && !((_a = data.arcs) === null || _a === void 0 ? void 0 : _a.filter(function (a) {\n return a.large;\n }).length)) {\n return null;\n }\n\n var key = labelType === 'key' ? (_c = (_b = data.data) === null || _b === void 0 ? void 0 : _b.sets) === null || _c === void 0 ? void 0 : _c.join(' | ') : data.data.size;\n var transition = animated ? {} : {\n delay: 0,\n type: false\n };\n var text = wrap ? wrapText({\n key: key,\n data: data,\n fontFamily: fontFamily,\n fontSize: fontSize\n }) : key;\n return React__default['default'].createElement(framerMotion.motion.text, {\n id: \"\".concat(id, \"-text\"),\n style: {\n pointerEvents: 'none',\n fontFamily: fontFamily,\n fontSize: fontSize\n },\n fill: fill,\n initial: {\n attrX: data.text.x,\n attrY: data.text.y,\n opacity: 1\n },\n animate: {\n attrX: data.text.x,\n attrY: data.text.y,\n opacity: active === null ? 0.3 : 1\n },\n transition: transition,\n textAnchor: \"middle\"\n }, format ? format(data) : text);\n};\n\nvar VennOuterLabel = function VennOuterLabel(_ref66) {\n var data = _ref66.data,\n format = _ref66.format,\n _ref66$animated = _ref66.animated,\n animated = _ref66$animated === void 0 ? true : _ref66$animated,\n _ref66$fill = _ref66.fill,\n fill = _ref66$fill === void 0 ? '#000' : _ref66$fill,\n _ref66$fontSize = _ref66.fontSize,\n fontSize = _ref66$fontSize === void 0 ? 14 : _ref66$fontSize,\n _ref66$fontFamily = _ref66.fontFamily,\n fontFamily = _ref66$fontFamily === void 0 ? 'sans-serif' : _ref66$fontFamily;\n var transition = animated ? {} : {\n delay: 0,\n type: false\n };\n var text = data.set.data.key;\n var label = format ? format(data) : text;\n var isElement = React.isValidElement(label);\n var showIcon = isElement && data.set.icon; // TODO: framer-motion doesn't seem to like the translates on the g\n // initial={pos} animate={pos}\n\n var pos = {\n x: showIcon ? data.set.icon.x : data.set.text.x,\n y: showIcon ? data.set.icon.y : data.set.text.y\n };\n return React__default['default'].createElement(React.Fragment, null, isElement ? React__default['default'].createElement(\"g\", {\n style: {\n transform: \"translate(\".concat(pos.x, \"px, \").concat(pos.y, \"px)\")\n }\n }, label) : React__default['default'].createElement(framerMotion.motion.text, {\n fill: fill,\n style: {\n pointerEvents: 'none',\n fontFamily: fontFamily,\n fontSize: fontSize\n },\n textAnchor: data.set.align === 'middle' ? 'center' : data.set.align,\n alignmentBaseline: data.set.verticalAlign,\n initial: {\n attrX: pos.x,\n attrY: pos.y\n },\n animate: {\n attrX: pos.x,\n attrY: pos.y\n },\n transition: transition\n }, label));\n};\n\nvar getSafeKey = function getSafeKey(d) {\n var _a, _b;\n\n return (_b = (_a = d.data) === null || _a === void 0 ? void 0 : _a.key) === null || _b === void 0 ? void 0 : _b.replace(' ', '');\n};\n\nvar VennSeries = function VennSeries(_ref67) {\n var data = _ref67.data,\n id = _ref67.id,\n selections = _ref67.selections,\n _ref67$animated = _ref67.animated,\n animated = _ref67$animated === void 0 ? true : _ref67$animated,\n _ref67$disabled = _ref67.disabled,\n disabled = _ref67$disabled === void 0 ? false : _ref67$disabled,\n _ref67$colorScheme = _ref67.colorScheme,\n colorScheme = _ref67$colorScheme === void 0 ? 'cybertron' : _ref67$colorScheme,\n _ref67$outerLabel = _ref67.outerLabel,\n outerLabel = _ref67$outerLabel === void 0 ? React__default['default'].createElement(VennOuterLabel, null) : _ref67$outerLabel,\n _ref67$arc = _ref67.arc,\n arc = _ref67$arc === void 0 ? React__default['default'].createElement(VennArc, null) : _ref67$arc,\n _ref67$label = _ref67.label,\n label = _ref67$label === void 0 ? React__default['default'].createElement(VennLabel, null) : _ref67$label;\n var transition = animated ? {} : {\n type: false,\n delay: 0\n };\n\n var _React$useState29 = React.useState([]),\n _React$useState30 = _slicedToArray(_React$useState29, 2),\n actives = _React$useState30[0],\n setActives = _React$useState30[1];\n\n var _React$useState31 = React.useState(null),\n _React$useState32 = _slicedToArray(_React$useState31, 2),\n hovered = _React$useState32[0],\n setHovered = _React$useState32[1];\n\n var onActivate = React.useCallback(function (point) {\n setHovered(point);\n setActives(data.filter(function (d) {\n var _a;\n\n return ((_a = d.data) === null || _a === void 0 ? void 0 : _a.key.indexOf(point)) > -1;\n }).map(function (d) {\n var _a;\n\n return (_a = d.data) === null || _a === void 0 ? void 0 : _a.key;\n }));\n }, [data]);\n var renderArc = React.useCallback(function (d, index) {\n var _a; // Get the colors of the fill\n\n\n var fill = _getColor({\n data: data,\n colorScheme: colorScheme,\n point: d.data,\n index: index\n });\n\n var arcFill = arc.props.fill || fill;\n var key = (_a = d === null || d === void 0 ? void 0 : d.data) === null || _a === void 0 ? void 0 : _a.key;\n var safeKey = getSafeKey(d);\n var isSelected = selections === null || selections === void 0 ? void 0 : selections.includes(key); // Get the state of the arc\n\n var isHovered = hovered === key || isSelected;\n var isActive = isSelected || actives.includes(key) || (actives.length > 0 ? null : false); // Get the colors for the stroke\n\n var stroke = typeof arc.props.stroke === 'function' ? arc.props.stroke(data, index, isActive, isHovered) : arc.props.stroke;\n var arcStroke = stroke || chroma__default['default'](arcFill).darken(isActive ? 0.8 : 0.5).hex();\n return React__default['default'].createElement(React.Fragment, {\n key: safeKey\n }, React__default['default'].createElement(rdk.CloneElement, {\n element: arc,\n id: \"\".concat(id, \"-\").concat(safeKey),\n data: d,\n fill: arcFill,\n stroke: arcStroke,\n disabled: disabled,\n animated: animated,\n active: isActive,\n onMouseEnter: function onMouseEnter() {\n return onActivate(key);\n },\n onMouseLeave: function onMouseLeave() {\n setActives([]);\n setHovered(null);\n }\n }), React__default['default'].createElement(rdk.CloneElement, {\n element: label,\n data: d,\n id: \"\".concat(id, \"-\").concat(safeKey),\n active: isActive,\n animated: animated\n }), d.set && outerLabel && React__default['default'].createElement(rdk.CloneElement, {\n element: outerLabel,\n data: d,\n animated: animated\n }));\n }, [colorScheme, data, arc, animated, label, outerLabel, hovered, selections, actives, onActivate]);\n var topArcs = React.useMemo(function () {\n var result = [];\n\n if (actives.length > 0) {\n result.push.apply(result, _toConsumableArray(actives.filter(function (s) {\n return s !== hovered;\n })));\n }\n\n if (selections === null || selections === void 0 ? void 0 : selections.length) {\n result.push.apply(result, _toConsumableArray(selections.filter(function (s) {\n return !actives.includes(s) && s !== hovered;\n })));\n }\n\n if (hovered) {\n result.push(hovered);\n }\n\n return result;\n }, [hovered, actives, selections]);\n return React__default['default'].createElement(framerMotion.motion.g, {\n initial: {\n opacity: 0,\n scale: 0\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n transition: transition\n }, data.map(renderArc), topArcs.length > 0 && topArcs.map(function (a) {\n return React__default['default'].createElement(\"use\", {\n key: a,\n xlinkHref: \"#\".concat(id, \"-\").concat(a, \"-arc\"),\n style: {\n pointerEvents: 'none'\n }\n });\n }), data.map(function (d, index) {\n return React__default['default'].createElement(\"use\", {\n key: index,\n xlinkHref: \"#\".concat(id, \"-\").concat(getSafeKey(d), \"-text\"),\n style: {\n pointerEvents: 'none'\n }\n });\n }));\n};\n\nvar sets = [];\nvar intersections = [];\nvar bb = {\n x: 0,\n y: 0,\n width: 10,\n height: 10\n};\nvar venn0 = {\n sets: sets,\n intersections: intersections,\n bb: bb\n};\nvar sets$1 = [{\n cx: 0,\n cy: 0,\n r: 5,\n text: {\n x: 3.5,\n y: -4\n },\n align: \"start\",\n verticalAlign: \"bottom\"\n}];\nvar intersections$1 = [{\n sets: [0],\n x1: 0,\n y1: 5,\n arcs: [{\n mode: \"i\",\n ref: 0,\n x2: 0,\n y2: -5,\n sweep: false,\n large: false\n }, {\n mode: \"i\",\n ref: 0,\n x2: 0,\n y2: 5,\n sweep: false,\n large: false\n }],\n text: {\n x: 0,\n y: 0\n }\n}];\nvar bb$1 = {\n x: -5,\n y: -5,\n width: 10,\n height: 10\n};\nvar venn1 = {\n sets: sets$1,\n intersections: intersections$1,\n bb: bb$1\n};\nvar sets$2 = [{\n cx: -4,\n cy: 0,\n r: 5,\n text: {\n x: -7.5,\n y: 4\n },\n align: \"end\",\n verticalAlign: \"top\"\n}, {\n cx: 4,\n cy: 0,\n r: 5,\n text: {\n x: 7.5,\n y: -4\n },\n align: \"start\",\n verticalAlign: \"bottom\"\n}];\nvar intersections$2 = [{\n sets: [0],\n x1: 0,\n y1: -3,\n arcs: [{\n mode: \"i\",\n ref: 0,\n x2: 0,\n y2: 3,\n sweep: false,\n large: true\n }, {\n mode: \"o\",\n ref: 1,\n x2: 0,\n y2: -3,\n sweep: true,\n large: false\n }],\n text: {\n x: -4,\n y: 0\n }\n}, {\n sets: [1],\n x1: 0,\n y1: 3,\n arcs: [{\n mode: \"i\",\n ref: 1,\n x2: 0,\n y2: -3,\n sweep: false,\n large: true\n }, {\n mode: \"o\",\n ref: 0,\n x2: 0,\n y2: 3,\n sweep: true,\n large: false\n }],\n text: {\n x: 4,\n y: 0\n }\n}, {\n sets: [0, 1],\n x1: 0,\n y1: 3,\n arcs: [{\n mode: \"i\",\n ref: 0,\n x2: 0,\n y2: -3,\n sweep: false,\n large: false\n }, {\n mode: \"i\",\n ref: 1,\n x2: 0,\n y2: 3,\n sweep: false,\n large: false\n }],\n text: {\n x: 0,\n y: 0\n }\n}];\nvar bb$2 = {\n x: -9,\n y: -5,\n width: 18,\n height: 10\n};\nvar venn2 = {\n sets: sets$2,\n intersections: intersections$2,\n bb: bb$2\n};\nvar sets$3 = [{\n cx: -3.464,\n cy: -2,\n r: 5,\n text: {\n x: -7,\n y: -6\n },\n align: \"end\"\n}, {\n cx: 3.464,\n cy: -2,\n r: 5,\n text: {\n x: 7,\n y: -6\n },\n align: \"start\"\n}, {\n cx: 0,\n cy: 4,\n r: 5,\n text: {\n x: 4,\n y: 7.5\n },\n align: \"start\",\n verticalAlign: \"top\"\n}];\nvar intersections$3 = [{\n sets: [0],\n x1: -4.855,\n y1: 2.803,\n arcs: [{\n mode: \"o\",\n ref: 2,\n x2: -1.39,\n y2: -0.803,\n sweep: true,\n large: false\n }, {\n mode: \"o\",\n ref: 1,\n x2: 0,\n y2: -5.606,\n sweep: true,\n large: false\n }, {\n mode: \"i\",\n ref: 0,\n x2: -4.855,\n y2: 2.803,\n sweep: false,\n large: true\n }],\n text: {\n x: -4.216,\n y: -2.434\n }\n}, {\n sets: [1],\n x1: 0,\n y1: -5.606,\n arcs: [{\n mode: \"o\",\n ref: 0,\n x2: 1.39,\n y2: -0.803,\n sweep: true,\n large: false\n }, {\n mode: \"o\",\n ref: 2,\n x2: 4.855,\n y2: 2.803,\n sweep: true,\n large: false\n }, {\n mode: \"i\",\n ref: 1,\n x2: 0,\n y2: -5.606,\n sweep: false,\n large: true\n }],\n text: {\n x: 4.216,\n y: -2.434\n }\n}, {\n sets: [2],\n x1: -4.855,\n y1: 2.803,\n arcs: [{\n mode: \"o\",\n ref: 0,\n x2: 0,\n y2: 1.606,\n sweep: false,\n large: false\n }, {\n mode: \"o\",\n ref: 1,\n x2: 4.855,\n y2: 2.803,\n sweep: false,\n large: false\n }, {\n mode: \"i\",\n ref: 2,\n x2: -4.855,\n y2: 2.803,\n sweep: true,\n large: true\n }],\n text: {\n x: 0,\n y: 4.869\n }\n}, {\n sets: [0, 1],\n x1: 0,\n y1: -5.606,\n arcs: [{\n mode: \"i\",\n ref: 1,\n x2: -1.39,\n y2: -0.803,\n sweep: false,\n large: false\n }, {\n mode: \"o\",\n ref: 2,\n x2: 1.39,\n y2: -0.803,\n sweep: true,\n large: false\n }, {\n mode: \"i\",\n ref: 0,\n x2: 0,\n y2: -5.606,\n sweep: false,\n large: false\n }],\n text: {\n x: 0,\n y: -2.404\n }\n}, {\n sets: [0, 2],\n x1: -4.855,\n y1: 2.803,\n arcs: [{\n mode: \"i\",\n ref: 2,\n x2: -1.39,\n y2: -0.803,\n sweep: true,\n large: false\n }, {\n mode: \"o\",\n ref: 1,\n x2: 0,\n y2: 1.606,\n sweep: false,\n large: false\n }, {\n mode: \"i\",\n ref: 0,\n x2: -4.855,\n y2: 2.803,\n sweep: true,\n large: false\n }],\n text: {\n x: -2.082,\n y: 1.202\n }\n}, {\n sets: [1, 2],\n x1: 4.855,\n y1: 2.803,\n arcs: [{\n mode: \"i\",\n ref: 2,\n x2: 1.39,\n y2: -0.803,\n sweep: false,\n large: false\n }, {\n mode: \"o\",\n ref: 0,\n x2: 0,\n y2: 1.606,\n sweep: true,\n large: false\n }, {\n mode: \"i\",\n ref: 1,\n x2: 4.855,\n y2: 2.803,\n sweep: false,\n large: false\n }],\n text: {\n x: 2.082,\n y: 1.202\n }\n}, {\n sets: [0, 1, 2],\n x1: 1.39,\n y1: -0.803,\n arcs: [{\n mode: \"i\",\n ref: 0,\n x2: 0,\n y2: 1.606,\n sweep: true,\n large: false\n }, {\n mode: \"i\",\n ref: 1,\n x2: -1.39,\n y2: -0.803,\n sweep: true,\n large: false\n }, {\n mode: \"i\",\n ref: 2,\n x2: 1.39,\n y2: -0.803,\n sweep: true,\n large: false\n }],\n text: {\n x: 0,\n y: 0\n }\n}];\nvar bb$3 = {\n x: -8.464,\n y: -7,\n width: 16.928,\n height: 16\n};\nvar venn3 = {\n sets: sets$3,\n intersections: intersections$3,\n bb: bb$3\n};\nvar sets$4 = [{\n cx: 0.439,\n cy: -1.061,\n rx: 2.5,\n ry: 5,\n rotation: 45,\n text: {\n x: 4.5,\n y: -4.5\n },\n align: \"start\",\n verticalAlign: \"bottom\"\n}, {\n cx: 2.561,\n cy: 1.061,\n rx: 2.5,\n ry: 5,\n rotation: 45,\n text: {\n x: 4,\n y: 3.75\n },\n align: \"start\",\n verticalAlign: \"top\"\n}, {\n cx: -2.561,\n cy: 1.061,\n rx: 2.5,\n ry: 5,\n rotation: -45,\n text: {\n x: -4,\n y: 3.7\n },\n align: \"end\",\n verticalAlign: \"top\"\n}, {\n cx: -0.439,\n cy: -1.061,\n rx: 2.5,\n ry: 5,\n rotation: -45,\n text: {\n x: -4.5,\n y: -4.5\n },\n align: \"end\",\n verticalAlign: \"bottom\"\n}];\nvar intersections$4 = [{\n sets: [0],\n x1: 0,\n y1: -3.94,\n arcs: [{\n ref: 0,\n mode: \"i\",\n x2: 4.328,\n y2: -2.828,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 2.179,\n y2: -1.858,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 0,\n y2: -3.94,\n large: false\n }],\n text: {\n x: 2.914,\n y: -3.536\n }\n}, {\n sets: [1],\n x1: 4.328,\n y1: -2.828,\n arcs: [{\n ref: 1,\n mode: \"i\",\n x2: 0,\n y2: 5.006,\n sweep: true,\n large: true\n }, {\n ref: 2,\n mode: \"o\",\n x2: 1.328,\n y2: 2.828\n }, {\n ref: 3,\n mode: \"o\",\n x2: 3.108,\n y2: -0.328\n }, {\n ref: 0,\n mode: \"o\",\n x2: 4.328,\n y2: -2.828\n }],\n text: {\n x: 5.036,\n y: -1.414\n }\n}, {\n sets: [2],\n x1: 0,\n y1: 5.006,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: -4.328,\n y2: -2.828,\n sweep: true,\n large: true\n }, {\n ref: 3,\n mode: \"o\",\n x2: -3.108,\n y2: -0.328\n }, {\n ref: 0,\n mode: \"o\",\n x2: -1.328,\n y2: 2.828\n }, {\n ref: 1,\n mode: \"o\",\n x2: 0,\n y2: 5.006\n }],\n text: {\n x: -5.036,\n y: -1.414\n }\n}, {\n sets: [3],\n x1: -4.328,\n y1: -2.828,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: 0,\n y2: -3.94,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: -2.179,\n y2: -1.858,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -4.328,\n y2: -2.828,\n large: false\n }],\n text: {\n x: -2.914,\n y: -3.536\n }\n}, {\n sets: [0, 1],\n x1: 4.328,\n y1: -2.828,\n arcs: [{\n ref: 1,\n mode: \"i\",\n x2: 3.108,\n y2: -0.328,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 2.179,\n y2: -1.858,\n sweep: false,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: 4.328,\n y2: -2.828,\n sweep: true,\n large: false\n }],\n text: {\n x: 3.205,\n y: -1.672\n }\n}, {\n sets: [0, 2],\n x1: -1.328,\n y1: 2.828,\n arcs: [{\n ref: 0,\n mode: \"i\",\n x2: -3.108,\n y2: -0.328,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: -0.969,\n y2: 1.755,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: -1.328,\n y2: 2.828,\n large: false\n }],\n text: {\n x: -2.212,\n y: 1.591\n }\n}, {\n sets: [0, 3],\n x1: 0,\n y1: -3.94,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: 2.179,\n y2: -1.858,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 0,\n y2: 0.188,\n sweep: false,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -2.179,\n y2: -1.858,\n sweep: false,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: 0,\n y2: -3.94,\n sweep: true\n }],\n text: {\n x: 0,\n y: -1.87\n }\n}, {\n sets: [1, 2],\n x1: 1.328,\n y1: 2.828,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: 0,\n y2: 5.006,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: -1.328,\n y2: 2.828,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: 0,\n y2: 2.346,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 1.328,\n y2: 2.828\n }],\n text: {\n x: 0,\n y: 3.393\n }\n}, {\n sets: [1, 3],\n x1: 3.108,\n y1: -0.328,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: 1.328,\n y2: 2.828,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: 0.969,\n y2: 1.755,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: 3.108,\n y2: -0.328,\n large: false\n }],\n text: {\n x: 2.212,\n y: 1.591\n }\n}, {\n sets: [2, 3],\n x1: -3.108,\n y1: -0.328,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: -4.328,\n y2: -2.828,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"i\",\n x2: -2.179,\n y2: -1.858,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: -3.108,\n y2: -0.328,\n large: false\n }],\n text: {\n x: -3.205,\n y: -1.672\n }\n}, {\n sets: [0, 1, 2],\n x1: 0,\n y1: 2.346,\n arcs: [{\n ref: 0,\n mode: \"i\",\n x2: -1.328,\n y2: 2.828,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: -0.969,\n y2: 1.755,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 0,\n y2: 2.346,\n large: false\n }],\n text: {\n x: -0.766,\n y: 2.31\n }\n}, {\n sets: [0, 1, 3],\n x1: 2.179,\n y1: -1.858,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: 3.108,\n y2: -0.328,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: 0.969,\n y2: 1.755,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: 0,\n y2: 0.188,\n sweep: false,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: 2.179,\n y2: -1.858,\n sweep: true\n }],\n text: {\n x: 1.558,\n y: -0.056\n }\n}, {\n sets: [0, 2, 3],\n x1: -0.969,\n y1: 1.755,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: -3.108,\n y2: -0.328,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: -2.179,\n y2: -1.858,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"i\",\n x2: 0,\n y2: 0.188,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: -0.969,\n y2: 1.755\n }],\n text: {\n x: -1.558,\n y: -0.056\n }\n}, {\n sets: [1, 2, 3],\n x1: 1.328,\n y1: 2.828,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: 0,\n y2: 2.346,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: 0.969,\n y2: 1.755,\n sweep: false,\n large: false\n }, {\n ref: 2,\n mode: \"i\",\n x2: 1.328,\n y2: 2.828,\n sweep: true,\n large: false\n }],\n text: {\n x: 0.766,\n y: 2.31\n }\n}, {\n sets: [0, 1, 2, 3],\n x1: 0,\n y1: 0.188,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: 0.969,\n y2: 1.755,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: 0,\n y2: 2.346,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"i\",\n x2: -0.969,\n y2: 1.755,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: 0,\n y2: 0.188,\n sweep: true\n }],\n text: {\n x: 0,\n y: 1.43\n }\n}];\nvar bb$4 = {\n x: -6.5,\n y: -5,\n width: 13,\n height: 10\n};\nvar venn4 = {\n sets: sets$4,\n intersections: intersections$4,\n bb: bb$4\n};\nvar sets$5 = [{\n cx: 0.5,\n cy: -1,\n rx: 2.5,\n ry: 5,\n rotation: 0,\n text: {\n x: 2.25,\n y: -5\n },\n icon: {\n x: 0,\n y: -6.3\n },\n align: \"start\",\n verticalAlign: \"bottom\"\n}, {\n cx: 1.106,\n cy: 0.167,\n rx: 2.5,\n ry: 5,\n rotation: 72,\n text: {\n x: 4.5,\n y: 1.5\n },\n icon: {\n x: 6.2,\n y: -1.9\n },\n align: \"start\",\n verticalAlign: \"top\"\n}, {\n cx: 0.183,\n cy: 1.103,\n rx: 2.5,\n ry: 5,\n rotation: 144,\n icon: {\n x: 3.2,\n y: 6\n },\n text: {\n x: 4,\n y: 4\n },\n align: \"start\",\n verticalAlign: \"bottom\"\n}, {\n cx: -0.992,\n cy: 0.515,\n rx: 2.5,\n ry: 5,\n rotation: 216,\n icon: {\n x: -4.4,\n y: 5.2\n },\n text: {\n x: -4.7,\n y: 2\n },\n align: \"end\",\n verticalAlign: \"bottom\"\n}, {\n cx: -0.797,\n cy: -0.785,\n rx: 2.5,\n ry: 5,\n rotation: 288,\n icon: {\n x: -6,\n y: -2\n },\n text: {\n x: -4,\n y: -3.6\n },\n align: \"end\",\n verticalAlign: \"bottom\"\n}];\nvar intersections$5 = [{\n sets: [0],\n x1: -1.653,\n y1: -3.541,\n arcs: [{\n ref: 0,\n mode: \"i\",\n x2: 2.857,\n y2: -2.666,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 2.5,\n y2: -2.648,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: -0.495,\n y2: -3.303,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: -1.653,\n y2: -3.541\n }],\n text: {\n x: 0.5,\n y: -5\n }\n}, {\n sets: [1],\n x1: 2.857,\n y1: -2.666,\n arcs: [{\n ref: 1,\n mode: \"i\",\n x2: 3.419,\n y2: 1.893,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: 3.291,\n y2: 1.559,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: 2.988,\n y2: -1.492,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: 2.857,\n y2: -2.666\n }],\n text: {\n x: 4.91,\n y: -1.07\n }\n}, {\n sets: [2],\n x1: 3.419,\n y1: 1.893,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: -0.744,\n y2: 3.837,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: -0.466,\n y2: 3.612,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: 2.342,\n y2: 2.381,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 3.419,\n y2: 1.893\n }],\n text: {\n x: 2.534,\n y: 4.339\n }\n}, {\n sets: [3],\n x1: -0.744,\n y1: 3.837,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: -3.879,\n y2: 0.478,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: -3.579,\n y2: 0.673,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: -1.54,\n y2: 2.963,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -0.744,\n y2: 3.837\n }],\n text: {\n x: -3.343,\n y: 3.751\n }\n}, {\n sets: [4],\n x1: -3.879,\n y1: 0.478,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: -1.653,\n y2: -3.541,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: -1.746,\n y2: -3.196,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -3.294,\n y2: -0.549,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: -3.879,\n y2: 0.478\n }],\n text: {\n x: -4.601,\n y: -2.021\n }\n}, {\n sets: [0, 1],\n x1: 2.5,\n y1: -2.648,\n arcs: [{\n ref: 1,\n mode: \"i\",\n x2: 2.857,\n y2: -2.666,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: 2.988,\n y2: -1.492,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: 2.572,\n y2: -1.839,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 2.5,\n y2: -2.648\n }],\n text: {\n x: 2.741,\n y: -2.152\n }\n}, {\n sets: [0, 2],\n x1: 2.342,\n y1: 2.381,\n arcs: [{\n ref: 0,\n mode: \"i\",\n x2: -0.466,\n y2: 3.612,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 0.257,\n y2: 2.922,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 2.342,\n y2: 2.381,\n large: false\n }],\n text: {\n x: 0.5,\n y: 3.5\n }\n}, {\n sets: [0, 3],\n x1: -0.495,\n y1: -3.303,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: 2.5,\n y2: -2.648,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 1.51,\n y2: -2.515,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: -0.495,\n y2: -3.303,\n large: false\n }],\n text: {\n x: 1.653,\n y: -3.125\n }\n}, {\n sets: [0, 4],\n x1: -1.653,\n y1: -3.541,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: -0.495,\n y2: -3.303,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: -0.954,\n y2: -3.015,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -1.746,\n y2: -3.196,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: -1.653,\n y2: -3.541\n }],\n text: {\n x: -1.199,\n y: -3.272\n }\n}, {\n sets: [1, 2],\n x1: 3.291,\n y1: 1.559,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: 3.419,\n y2: 1.893,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: 2.342,\n y2: 2.381,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: 2.544,\n y2: 1.878,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: 3.291,\n y2: 1.559\n }],\n text: {\n x: 2.894,\n y: 1.942\n }\n}, {\n sets: [1, 3],\n x1: -1.54,\n y1: 2.963,\n arcs: [{\n ref: 1,\n mode: \"i\",\n x2: -3.579,\n y2: 0.673,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: -2.7,\n y2: 1.147,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -1.54,\n y2: 2.963,\n large: false\n }],\n text: {\n x: -3.174,\n y: 1.557\n }\n}, {\n sets: [1, 4],\n x1: 2.988,\n y1: -1.492,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: 3.291,\n y2: 1.559,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: 2.858,\n y2: 0.659,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: 2.988,\n y2: -1.492,\n large: false\n }],\n text: {\n x: 3.483,\n y: 0.606\n }\n}, {\n sets: [2, 3],\n x1: -0.466,\n y1: 3.612,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: -0.744,\n y2: 3.837,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"i\",\n x2: -1.54,\n y2: 2.963,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: -1,\n y2: 3,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: -0.466,\n y2: 3.612\n }],\n text: {\n x: -0.953,\n y: 3.352\n }\n}, {\n sets: [2, 4],\n x1: -3.294,\n y1: -0.549,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: -1.746,\n y2: -3.196,\n sweep: true\n }, {\n ref: 0,\n mode: \"o\",\n x2: -1.925,\n y2: -2.213\n }, {\n ref: 3,\n mode: \"o\",\n x2: -3.294,\n y2: -0.549\n }],\n text: {\n x: -2.462,\n y: -2.538\n }\n}, {\n sets: [3, 4],\n x1: -3.579,\n y1: 0.673,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: -3.879,\n y2: 0.478,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"i\",\n x2: -3.294,\n y2: -0.549,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -3.162,\n y2: -0.024,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: -3.579,\n y2: 0.673\n }],\n text: {\n x: -3.483,\n y: 0.13\n }\n}, {\n sets: [0, 1, 2],\n x1: 2.544,\n y1: 1.878,\n arcs: [{\n ref: 0,\n mode: \"i\",\n x2: 2.342,\n y2: 2.381,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: 0.257,\n y2: 2.922,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 0.983,\n y2: 2.049,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: 2.544,\n y2: 1.878\n }],\n text: {\n x: 1.457,\n y: 2.331\n }\n}, {\n sets: [0, 1, 3],\n x1: 1.51,\n y1: -2.515,\n arcs: [{\n ref: 1,\n mode: \"i\",\n x2: 2.5,\n y2: -2.648,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"i\",\n x2: 2.572,\n y2: -1.839,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: 1.51,\n y2: -2.515,\n large: false\n }],\n text: {\n x: 2.194,\n y: -2.334\n }\n}, {\n sets: [0, 1, 4],\n x1: 2.572,\n y1: -1.839,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: 2.988,\n y2: -1.492,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: 2.858,\n y2: 0.659,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: 2.253,\n y2: -0.302,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 2.572,\n y2: -1.839\n }],\n text: {\n x: 2.667,\n y: -0.665\n }\n}, {\n sets: [0, 2, 3],\n x1: 0.257,\n y1: 2.922,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: -0.466,\n y2: 3.612,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: -1,\n y2: 3,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 0.257,\n y2: 2.922,\n large: false\n }],\n text: {\n x: -0.403,\n y: 3.178\n }\n}, {\n sets: [0, 2, 4],\n x1: -1.746,\n y1: -3.196,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: -0.954,\n y2: -3.015,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: -1.925,\n y2: -2.213,\n sweep: false,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: -1.746,\n y2: -3.196,\n sweep: true,\n large: false\n }],\n text: {\n x: -1.542,\n y: -2.808\n }\n}, {\n sets: [0, 3, 4],\n x1: -0.495,\n y1: -3.303,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: 1.51,\n y2: -2.515,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: 0.409,\n y2: -2.236,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -0.954,\n y2: -3.015,\n large: false\n }, {\n ref: 3,\n mode: \"i\",\n x2: -0.495,\n y2: -3.303\n }],\n text: {\n x: 0.192,\n y: -2.742\n }\n}, {\n sets: [1, 2, 3],\n x1: -1.54,\n y1: 2.963,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: -2.7,\n y2: 1.147,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: -1.645,\n y2: 1.568,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: -1,\n y2: 3,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: -1.54,\n y2: 2.963\n }],\n text: {\n x: -1.767,\n y: 2.106\n }\n}, {\n sets: [1, 2, 4],\n x1: 2.858,\n y1: 0.659,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: 3.291,\n y2: 1.559,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"i\",\n x2: 2.544,\n y2: 1.878,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: 2.858,\n y2: 0.659,\n large: false\n }],\n text: {\n x: 2.898,\n y: 1.365\n }\n}, {\n sets: [1, 3, 4],\n x1: -2.7,\n y1: 1.147,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: -3.579,\n y2: 0.673,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: -3.162,\n y2: -0.024,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: -2.7,\n y2: 1.147,\n large: false\n }],\n text: {\n x: -3.147,\n y: 0.599\n }\n}, {\n sets: [2, 3, 4],\n x1: -3.294,\n y1: -0.549,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: -1.925,\n y2: -2.213,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: -2,\n y2: -1.08,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: -3.162,\n y2: -0.024,\n large: false\n }, {\n ref: 2,\n mode: \"i\",\n x2: -3.294,\n y2: -0.549\n }],\n text: {\n x: -2.548,\n y: -1.029\n }\n}, {\n sets: [0, 1, 2, 3],\n x1: 0.983,\n y1: 2.049,\n arcs: [{\n ref: 3,\n mode: \"i\",\n x2: 0.257,\n y2: 2.922,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: -1,\n y2: 3,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: -1.645,\n y2: 1.568,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"o\",\n x2: 0.983,\n y2: 2.049\n }],\n text: {\n x: -0.407,\n y: 2.31\n }\n}, {\n sets: [0, 1, 2, 4],\n x1: 2.253,\n y1: -0.302,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: 2.858,\n y2: 0.659,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: 2.544,\n y2: 1.878,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"i\",\n x2: 0.983,\n y2: 2.049,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"o\",\n x2: 2.253,\n y2: -0.302\n }],\n text: {\n x: 2.071,\n y: 1.101\n }\n}, {\n sets: [0, 1, 3, 4],\n x1: 1.51,\n y1: -2.515,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: 2.572,\n y2: -1.839,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"i\",\n x2: 2.253,\n y2: -0.302,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"o\",\n x2: 0.409,\n y2: -2.236,\n sweep: false,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: 1.51,\n y2: -2.515,\n sweep: true\n }],\n text: {\n x: 1.687,\n y: -1.63\n }\n}, {\n sets: [0, 2, 3, 4],\n x1: -2,\n y1: -1.08,\n arcs: [{\n ref: 0,\n mode: \"i\",\n x2: -1.925,\n y2: -2.213,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"i\",\n x2: -0.954,\n y2: -3.015,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"i\",\n x2: 0.409,\n y2: -2.236,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"o\",\n x2: -2,\n y2: -1.08\n }],\n text: {\n x: -1.028,\n y: -2.108\n }\n}, {\n sets: [1, 2, 3, 4],\n x1: -1.645,\n y1: 1.568,\n arcs: [{\n ref: 4,\n mode: \"i\",\n x2: -2.7,\n y2: 1.147,\n sweep: true,\n large: false\n }, {\n ref: 2,\n mode: \"i\",\n x2: -3.162,\n y2: -0.024,\n sweep: true,\n large: false\n }, {\n ref: 1,\n mode: \"i\",\n x2: -2,\n y2: -1.08,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"o\",\n x2: -1.645,\n y2: 1.568\n }],\n text: {\n x: -2.323,\n y: 0.327\n }\n}, {\n sets: [0, 1, 2, 3, 4],\n x1: 0.409,\n y1: -2.236,\n arcs: [{\n ref: 2,\n mode: \"i\",\n x2: 2.253,\n y2: -0.302,\n sweep: true,\n large: false\n }, {\n ref: 3,\n mode: \"i\",\n x2: 0.983,\n y2: 2.049,\n sweep: true,\n large: false\n }, {\n ref: 4,\n mode: \"i\",\n x2: -1.645,\n y2: 1.568,\n sweep: true,\n large: false\n }, {\n ref: 0,\n mode: \"i\",\n x2: -2,\n y2: -1.08,\n sweep: true\n }, {\n ref: 1,\n mode: \"i\",\n x2: 0.409,\n y2: -2.236,\n sweep: true\n }],\n text: {\n x: 0,\n y: 0\n }\n}];\nvar bb$5 = {\n x: -5.5,\n y: -6,\n width: 11.6,\n height: 11.8\n};\nvar venn5 = {\n sets: sets$5,\n intersections: intersections$5,\n bb: bb$5\n}; // Static shapes for rendering\n\nvar shapes = [venn0, venn1, venn2, venn3, venn4, venn5];\n/**\r\n * Sort helper.\r\n * Reference: https://stackoverflow.com/a/64449554/1288340\r\n */\n\nvar upto = function upto(limit) {\n return Array.from({\n length: limit\n }, function (_, i) {\n return i;\n });\n};\n/**\r\n * Detect ellipse.\r\n * Reference: https://github.com/upsetjs/chartjs-chart-venn/blob/master/src/model/generate.ts#L4\r\n */\n\n\nfunction isEllipse(d) {\n return typeof d.rx === 'number';\n}\n/**\r\n * Generate all combinations of a given array.\r\n * Reference: https://stackoverflow.com/questions/5752002/find-all-possible-subset-combos-in-an-array\r\n */\n\n\nfunction combinations(array) {\n return new Array(1 << array.length).fill().map(function (_e1, i) {\n return array.filter(function (_e2, j) {\n return i & 1 << j;\n });\n });\n}\n/**\r\n * Given a array set, lookup the data.\r\n */\n\n\nfunction lookup(combo, data) {\n var key = combo.join('|');\n var found = data.find(function (d) {\n return d.key === key;\n });\n return {\n key: key,\n sets: combo,\n size: (found === null || found === void 0 ? void 0 : found.size) || 0\n };\n}\n/**\r\n * Build the data combinations for the layout.\r\n */\n\n\nfunction buildData(data) {\n // Collect all unique sets and sort by size\n var uniqueSets = data.filter(function (d) {\n return d.sets.length === 1;\n }).sort(function (a, b) {\n return b.size - a.size;\n }); // Map our unique sets\n\n var uniqueSetKeys = uniqueSets.map(function (u) {\n return u.key;\n }); // Build all combos and return 1+ combos\n\n var sets = combinations(uniqueSetKeys);\n var filteredSets = sets.slice(1, sets.length); // Sort the child sets based on the parent\n\n var result = filteredSets.map(function (d) {\n return _toConsumableArray(d).sort(function (a, b) {\n return uniqueSetKeys.indexOf(a) - uniqueSetKeys.indexOf(b);\n });\n }); // Sort the data based on index of keys and length\n // Reference: https://stackoverflow.com/a/64449554/1288340\n\n result.sort(function (a, b) {\n return a.length - b.length || upto(a.length).reduce(function (diff, i) {\n return diff || uniqueSetKeys.indexOf(a[i]) - uniqueSetKeys.indexOf(b[i]);\n }, 0);\n }); // reshape the data key so they will match combos\n\n var keyedData = data.map(function (d) {\n var sets = _toConsumableArray(d.sets).sort(function (a, b) {\n return uniqueSetKeys.indexOf(a) - uniqueSetKeys.indexOf(b);\n });\n\n var key = sets.join('|');\n return {\n size: d.size,\n sets: sets,\n key: key\n };\n });\n return {\n uniqueCount: uniqueSets.length,\n data: result.map(function (r) {\n return lookup(r, keyedData);\n })\n };\n}\n/**\r\n * Generate the arc slice path.\r\n * Reference: https://github.com/upsetjs/chartjs-chart-venn/blob/master/src/model/generate.ts#L4\r\n */\n\n\nfunction generateArcSlicePath(s, refs) {\n return \"M \".concat(s.x1, \",\").concat(s.y1, \" \").concat(s.arcs.map(function (arc) {\n var ref = refs[arc.ref];\n var rx = isEllipse(ref) ? ref.rx : ref.r;\n var ry = isEllipse(ref) ? ref.ry : ref.r;\n var rot = isEllipse(ref) ? ref.rotation : 0;\n return \"A \".concat(rx, \" \").concat(ry, \" \").concat(rot, \" \").concat(arc.large ? 1 : 0, \" \").concat(arc.sweep ? 1 : 0, \" \").concat(arc.x2, \" \").concat(arc.y2);\n }).join(' '));\n}\n/**\r\n * Build the layout for the given chart.\r\n * Reference: https://github.com/upsetjs/chartjs-chart-venn/blob/master/src/model/generate.ts#L4\r\n */\n\n\nfunction buildLayout(_ref68, box) {\n var data = _ref68.data,\n uniqueCount = _ref68.uniqueCount;\n var shape = shapes[Math.min(shapes.length - 1, uniqueCount)];\n var f = Math.min(box.width / shape.bb.width, box.height / shape.bb.height);\n var x = f * -shape.bb.x + (box.width - f * shape.bb.width) / 2 + 0;\n var y = f * -shape.bb.y + (box.height - f * shape.bb.height) / 2 + 0;\n\n var mx = function mx(v) {\n return x + f * v;\n };\n\n var my = function my(v) {\n return y + f * v;\n };\n\n var shapeSets = shape.sets.map(function (c, i) {\n return Object.assign(Object.assign(Object.assign({}, c), Object.assign({\n data: data[i],\n cx: mx(c.cx),\n cy: my(c.cy),\n text: {\n x: mx(c.text.x),\n y: my(c.text.y)\n }\n }, c.icon ? {\n icon: {\n x: mx(c.icon.x),\n y: my(c.icon.y)\n }\n } : {})), isEllipse(c) ? {\n rx: c.rx * f,\n ry: c.ry * f\n } : {\n r: c.r * f\n });\n });\n var intersections = shape.intersections.map(function (c, i) {\n return {\n text: {\n x: mx(c.text.x),\n y: my(c.text.y)\n },\n x1: mx(c.x1),\n y1: my(c.y1),\n data: data[i],\n set: shapeSets[i],\n arcs: c.arcs.map(function (a) {\n return Object.assign(Object.assign({}, a), {\n x2: mx(a.x2),\n y2: my(a.y2)\n });\n })\n };\n });\n return intersections.map(function (i) {\n return Object.assign(Object.assign({}, i), {\n path: generateArcSlicePath(i, shapeSets)\n });\n });\n}\n/**\r\n * Generate the star euler layout.\r\n * Adapted from: https://github.com/upsetjs/chartjs-chart-venn\r\n */\n\n\nfunction starEulerLayout(data, bb) {\n return buildLayout(buildData(data), bb);\n}\n\nvar VennDiagram = function VennDiagram(_ref69) {\n var id = _ref69.id,\n _ref69$type = _ref69.type,\n type = _ref69$type === void 0 ? 'venn' : _ref69$type,\n width = _ref69.width,\n height = _ref69.height,\n margins = _ref69.margins,\n className = _ref69.className,\n data = _ref69.data,\n disabled = _ref69.disabled,\n _ref69$series = _ref69.series,\n series = _ref69$series === void 0 ? React__default['default'].createElement(VennSeries, null) : _ref69$series;\n var renderChart = React.useCallback(function (containerProps) {\n var normalized = data.map(function (d) {\n return {\n key: d.key.join('|'),\n sets: d.key,\n size: d.data\n };\n });\n var layoutData;\n\n if (type === 'starEuler') {\n layoutData = starEulerLayout(normalized, {\n height: containerProps.height,\n width: containerProps.width\n });\n } else {\n layoutData = venn_js.layout(normalized, {\n height: containerProps.height,\n width: containerProps.width,\n distinct: type !== 'euler'\n });\n }\n\n return React__default['default'].createElement(rdk.CloneElement, {\n element: series,\n data: layoutData,\n disabled: disabled,\n id: containerProps.id\n });\n }, [data, series, type]);\n return React__default['default'].createElement(ChartContainer, {\n id: id,\n width: width,\n height: height,\n margins: margins,\n xAxisVisible: false,\n yAxisVisible: false,\n center: false,\n className: className\n }, function (props) {\n return renderChart(props);\n });\n};\n\nexports.Area = Area;\nexports.AreaChart = AreaChart;\nexports.AreaSeries = AreaSeries;\nexports.AreaSparklineChart = AreaSparklineChart;\nexports.Bar = Bar;\nexports.BarChart = BarChart;\nexports.BarLabel = BarLabel;\nexports.BarSeries = BarSeries;\nexports.BarSparklineChart = BarSparklineChart;\nexports.Brush = Brush;\nexports.BrushSlice = BrushSlice;\nexports.CalendarHeatmap = CalendarHeatmap;\nexports.ChartBrush = ChartBrush;\nexports.ChartContainer = ChartContainer;\nexports.ChartTooltip = ChartTooltip;\nexports.ChartZoomPan = ChartZoomPan;\nexports.DEFAULT_TRANSITION = DEFAULT_TRANSITION;\nexports.DiscreteLegend = DiscreteLegend;\nexports.DiscreteLegendEntry = DiscreteLegendEntry;\nexports.DiscreteLegendSymbol = DiscreteLegendSymbol;\nexports.Gradient = Gradient;\nexports.GradientStop = GradientStop;\nexports.GridStripe = GridStripe;\nexports.Gridline = Gridline;\nexports.GridlineSeries = GridlineSeries;\nexports.GuideBar = GuideBar;\nexports.Heatmap = Heatmap;\nexports.HeatmapCell = HeatmapCell;\nexports.HeatmapSeries = HeatmapSeries;\nexports.HistogramBarChart = HistogramBarChart;\nexports.HistogramBarSeries = HistogramBarSeries;\nexports.HivePlot = HivePlot;\nexports.Line = Line;\nexports.LineChart = LineChart;\nexports.LineSeries = LineSeries;\nexports.LinearAxis = LinearAxis;\nexports.LinearAxisLine = LinearAxisLine;\nexports.LinearAxisTickLabel = LinearAxisTickLabel;\nexports.LinearAxisTickLine = LinearAxisTickLine;\nexports.LinearAxisTickSeries = LinearAxisTickSeries;\nexports.LinearGauge = LinearGauge;\nexports.LinearGaugeBar = LinearGaugeBar;\nexports.LinearGaugeOuterBar = LinearGaugeOuterBar;\nexports.LinearGaugeSeries = LinearGaugeSeries;\nexports.LinearXAxis = LinearXAxis;\nexports.LinearXAxisTickLabel = LinearXAxisTickLabel;\nexports.LinearXAxisTickLine = LinearXAxisTickLine;\nexports.LinearXAxisTickSeries = LinearXAxisTickSeries;\nexports.LinearYAxis = LinearYAxis;\nexports.LinearYAxisTickLabel = LinearYAxisTickLabel;\nexports.LinearYAxisTickLine = LinearYAxisTickLine;\nexports.LinearYAxisTickSeries = LinearYAxisTickSeries;\nexports.Map = Map$1;\nexports.MapMarker = MapMarker;\nexports.MarimekkoBarSeries = MarimekkoBarSeries;\nexports.MarimekkoChart = MarimekkoChart;\nexports.MarkLine = MarkLine;\nexports.Mask = Mask;\nexports.MotionPath = MotionPath;\nexports.Move = Move;\nexports.Pan = Pan;\nexports.PieArc = PieArc;\nexports.PieArcLabel = PieArcLabel;\nexports.PieArcSeries = PieArcSeries;\nexports.PieChart = PieChart;\nexports.PointSeries = PointSeries;\nexports.RadialArea = RadialArea;\nexports.RadialAreaChart = RadialAreaChart;\nexports.RadialAreaSeries = RadialAreaSeries;\nexports.RadialAxis = RadialAxis;\nexports.RadialAxisArc = RadialAxisArc;\nexports.RadialAxisArcSeries = RadialAxisArcSeries;\nexports.RadialAxisTick = RadialAxisTick;\nexports.RadialAxisTickLabel = RadialAxisTickLabel;\nexports.RadialAxisTickLine = RadialAxisTickLine;\nexports.RadialAxisTickSeries = RadialAxisTickSeries;\nexports.RadialBar = RadialBar;\nexports.RadialBarChart = RadialBarChart;\nexports.RadialBarSeries = RadialBarSeries;\nexports.RadialGauge = RadialGauge;\nexports.RadialGaugeArc = RadialGaugeArc;\nexports.RadialGaugeLabel = RadialGaugeLabel;\nexports.RadialGaugeSeries = RadialGaugeSeries;\nexports.RadialGaugeValueLabel = RadialGaugeValueLabel;\nexports.RadialGradient = RadialGradient;\nexports.RadialGuideBar = RadialGuideBar;\nexports.RadialLine = RadialLine;\nexports.RadialPointSeries = RadialPointSeries;\nexports.RadialScatterPlot = RadialScatterPlot;\nexports.RadialScatterPoint = RadialScatterPoint;\nexports.RadialScatterSeries = RadialScatterSeries;\nexports.RangeLines = RangeLines;\nexports.Sankey = Sankey;\nexports.SankeyLabel = SankeyLabel;\nexports.SankeyLink = SankeyLink;\nexports.SankeyNode = SankeyNode;\nexports.ScatterPlot = ScatterPlot;\nexports.ScatterPoint = ScatterPoint;\nexports.ScatterSeries = ScatterSeries;\nexports.SequentialLegend = SequentialLegend;\nexports.SonarChart = SonarChart;\nexports.SparklineChart = SparklineChart;\nexports.StackedAreaChart = StackedAreaChart;\nexports.StackedAreaSeries = StackedAreaSeries;\nexports.StackedBarChart = StackedBarChart;\nexports.StackedBarSeries = StackedBarSeries;\nexports.StackedNormalizedAreaChart = StackedNormalizedAreaChart;\nexports.StackedNormalizedAreaSeries = StackedNormalizedAreaSeries;\nexports.StackedNormalizedBarChart = StackedNormalizedBarChart;\nexports.StackedNormalizedBarSeries = StackedNormalizedBarSeries;\nexports.StackedRadialGaugeLabel = StackedRadialGaugeLabel;\nexports.StackedRadialGaugeSeries = StackedRadialGaugeSeries;\nexports.Stripes = Stripes;\nexports.TooltipArea = TooltipArea;\nexports.TooltipTemplate = TooltipTemplate;\nexports.VennArc = VennArc;\nexports.VennDiagram = VennDiagram;\nexports.VennLabel = VennLabel;\nexports.VennOuterLabel = VennOuterLabel;\nexports.VennSeries = VennSeries;\nexports.Zoom = Zoom;\nexports.ZoomPan = ZoomPan;\nexports.addWeeksToDate = addWeeksToDate;\nexports.bigIntegerToLocaleString = bigIntegerToLocaleString;\nexports.buildBarStackData = buildBarStackData;\nexports.buildBins = buildBins;\nexports.buildDataScales = buildDataScales;\nexports.buildMarimekkoData = buildMarimekkoData;\nexports.buildNestedChartData = buildNestedChartData;\nexports.buildShallowChartData = buildShallowChartData;\nexports.buildStackData = buildStackData;\nexports.buildWaterfall = buildWaterfall;\nexports.calculateDimensions = calculateDimensions;\nexports.calculateShowStroke = calculateShowStroke;\nexports.constrainMatrix = constrainMatrix;\nexports.constructFunctionProps = constructFunctionProps;\nexports.extent = extent;\nexports.formatValue = formatValue;\nexports.functionProps = functionProps;\nexports.getClosestPoint = getClosestPoint;\nexports.getColor = _getColor;\nexports.getDegrees = getDegrees;\nexports.getDimension = getDimension;\nexports.getDurationTicks = getDurationTicks;\nexports.getLimitMatrix = getLimitMatrix;\nexports.getMaxBigIntegerForNested = getMaxBigIntegerForNested;\nexports.getMaxBigIntegerForShallow = getMaxBigIntegerForShallow;\nexports.getMaxTicks = getMaxTicks;\nexports.getParentSVG = getParentSVG;\nexports.getPointFromMatrix = getPointFromMatrix;\nexports.getPositionForTarget = getPositionForTarget;\nexports.getTicks = _getTicks;\nexports.getXDomain = getXDomain;\nexports.getYDomain = getYDomain;\nexports.humanFormatBigInteger = humanFormatBigInteger;\nexports.interpolate = interpolate;\nexports.isAxisVisible = isAxisVisible;\nexports.isZoomLevelGoingOutOfBounds = isZoomLevelGoingOutOfBounds;\nexports.normalizeValue = normalizeValue;\nexports.normalizeValueForFormatting = normalizeValueForFormatting;\nexports.reduceTicks = reduceTicks;\nexports.schemes = schemes;\nexports.toggleTextSelection = toggleTextSelection;\nexports.uniqueBy = uniqueBy;\nexports.weekDays = weekDays;"],"sourceRoot":""}