{"version":3,"sources":["component/react-stockcharts/lib/utils/index.js","component/react-stockcharts/lib/GenericChartComponent.js","component/react-stockcharts/lib/GenericComponent.js","component/react-stockcharts/lib/coordinates/index.js","component/react-stockcharts/lib/series/index.js","component/react-stockcharts/lib/indicator/index.js","component/react-stockcharts/lib/calculator/defaultOptionsForComputation.js","component/react-stockcharts/lib/indicator/baseIndicator.js","component/react-stockcharts/lib/calculator/index.js","component/react-stockcharts/lib/axes/index.js","component/react-stockcharts/lib/interactive/utils.js","component/react-stockcharts/lib/interactive/index.js","component/react-stockcharts/lib/interactive/components/HoverTextNearMouse.js","component/react-stockcharts/lib/tooltip/index.js","component/react-stockcharts/lib/tooltip/ToolTipText.js","component/react-stockcharts/lib/tooltip/ToolTipTSpanLabel.js","component/react-stockcharts/lib/tooltip/displayValuesFor.js","component/react-stockcharts/lib/interactive/components/StraightLine.js","component/react-stockcharts/lib/utils/ChartDataUtil.js","component/react-stockcharts/lib/scale/index.js","component/react-stockcharts/lib/series/LineSeries.js","component/react-stockcharts/lib/utils/identity.js","component/react-stockcharts/lib/utils/noop.js","component/react-stockcharts/lib/series/StraightLine.js","component/react-stockcharts/lib/calculator/ema.js","component/react-stockcharts/lib/interactive/components/ClickableCircle.js","component/react-stockcharts/lib/interactive/components/MouseLocationIndicator.js","component/react-stockcharts/lib/series/StackedBarSeries.js","component/react-stockcharts/lib/coordinates/EdgeCoordinateV3.js","component/react-stockcharts/lib/series/AreaOnlySeries.js","component/react-stockcharts/lib/calculator/atr.js","component/react-stockcharts/lib/indicator/defaultOptionsForAppearance.js","component/react-stockcharts/lib/series/AreaSeries.js","component/react-stockcharts/lib/utils/zipper.js","component/react-stockcharts/lib/utils/shallowEqual.js","component/react-stockcharts/lib/utils/PureComponent.js","component/react-stockcharts/lib/series/SVGComponent.js","component/react-stockcharts/lib/series/BarSeries.js","component/react-stockcharts/lib/axes/Axis.js","component/react-stockcharts/lib/coordinates/MouseCoordinateY.js","component/react-stockcharts/lib/GenericComponent1.js","component/react-stockcharts/lib/scale/financeDiscontinuousScale.js","component/react-stockcharts/lib/scale/levels.js","component/react-stockcharts/lib/calculator/sma.js","component/react-stockcharts/lib/calculator/forceIndex.js","component/react-stockcharts/lib/interactive/wrapper/EachTrendLine.js","component/react-stockcharts/lib/helper/index.js","component/react-stockcharts/lib/utils/rebind.js","component/react-stockcharts/lib/utils/merge.js","component/react-stockcharts/lib/utils/slidingWindow.js","component/react-stockcharts/lib/utils/mappedSlidingWindow.js","component/react-stockcharts/lib/utils/accumulatingWindow.js","component/react-stockcharts/lib/utils/barWidth.js","component/react-stockcharts/lib/utils/strokeDasharray.js","component/react-stockcharts/lib/series/AlternatingFillAreaSeries.js","component/react-stockcharts/lib/series/ScatterSeries.js","component/react-stockcharts/lib/series/CircleMarker.js","component/react-stockcharts/lib/series/TriangleMarker.js","component/react-stockcharts/lib/series/SquareMarker.js","component/react-stockcharts/lib/series/CandlestickSeries.js","component/react-stockcharts/lib/series/OHLCSeries.js","component/react-stockcharts/lib/series/GroupedBarSeries.js","component/react-stockcharts/lib/series/KagiSeries.js","component/react-stockcharts/lib/series/PointAndFigureSeries.js","component/react-stockcharts/lib/series/RenkoSeries.js","component/react-stockcharts/lib/series/MACDSeries.js","component/react-stockcharts/lib/series/BollingerSeries.js","component/react-stockcharts/lib/series/RSISeries.js","component/react-stockcharts/lib/series/StochasticSeries.js","component/react-stockcharts/lib/series/ElderRaySeries.js","component/react-stockcharts/lib/series/OverlayBarSeries.js","component/react-stockcharts/lib/series/VolumeProfileSeries.js","component/react-stockcharts/lib/series/SARSeries.js","component/react-stockcharts/lib/axes/XAxis.js","component/react-stockcharts/lib/axes/AxisZoomCapture.js","component/react-stockcharts/lib/axes/YAxis.js","component/react-stockcharts/lib/coordinates/EdgeIndicator.js","component/react-stockcharts/lib/coordinates/CurrentCoordinate.js","component/react-stockcharts/lib/coordinates/MouseCoordinateX.js","component/react-stockcharts/lib/coordinates/MouseCoordinateXV2.js","component/react-stockcharts/lib/coordinates/CrossHairCursor.js","component/react-stockcharts/lib/coordinates/PriceCoordinate.js","component/react-stockcharts/lib/scale/discontinuousTimeScaleProvider.js","component/react-stockcharts/lib/tooltip/MACDTooltip.js","component/react-stockcharts/lib/tooltip/OHLCTooltip.js","component/react-stockcharts/lib/tooltip/SingleValueTooltip.js","component/react-stockcharts/lib/tooltip/MovingAverageTooltip.js","component/react-stockcharts/lib/tooltip/BollingerBandTooltip.js","component/react-stockcharts/lib/tooltip/RSITooltip.js","component/react-stockcharts/lib/tooltip/StochasticTooltip.js","component/react-stockcharts/lib/tooltip/HoverTooltip.js","component/react-stockcharts/lib/tooltip/GroupTooltip.js","component/react-stockcharts/lib/indicator/ema.js","component/react-stockcharts/lib/calculator/wma.js","component/react-stockcharts/lib/calculator/tma.js","component/react-stockcharts/lib/calculator/bollingerband.js","component/react-stockcharts/lib/calculator/heikinAshi.js","component/react-stockcharts/lib/calculator/kagi.js","component/react-stockcharts/lib/calculator/pointAndFigure.js","component/react-stockcharts/lib/calculator/renko.js","component/react-stockcharts/lib/calculator/macd.js","component/react-stockcharts/lib/calculator/rsi.js","component/react-stockcharts/lib/calculator/sto.js","component/react-stockcharts/lib/calculator/smoothedForceIndex.js","component/react-stockcharts/lib/calculator/elderRay.js","component/react-stockcharts/lib/calculator/sar.js","component/react-stockcharts/lib/calculator/compare.js","component/react-stockcharts/lib/calculator/change.js","component/react-stockcharts/lib/indicator/sma.js","component/react-stockcharts/lib/indicator/wma.js","component/react-stockcharts/lib/indicator/tma.js","component/react-stockcharts/lib/indicator/bollingerBand.js","component/react-stockcharts/lib/indicator/heikinAshi.js","component/react-stockcharts/lib/indicator/kagi.js","component/react-stockcharts/lib/indicator/pointAndFigure.js","component/react-stockcharts/lib/indicator/renko.js","component/react-stockcharts/lib/indicator/macd.js","component/react-stockcharts/lib/indicator/rsi.js","component/react-stockcharts/lib/indicator/atr.js","component/react-stockcharts/lib/indicator/stochasticOscillator.js","component/react-stockcharts/lib/indicator/forceIndex.js","component/react-stockcharts/lib/indicator/sar.js","component/react-stockcharts/lib/indicator/elderRay.js","component/react-stockcharts/lib/indicator/change.js","component/react-stockcharts/lib/indicator/elderImpulse.js","component/react-stockcharts/lib/indicator/compare.js","component/react-stockcharts/lib/helper/TypeChooser.js","component/react-stockcharts/lib/helper/SaveChartAsImage.js","component/react-stockcharts/lib/helper/fitWidth.js","component/react-stockcharts/lib/helper/fitDimensions.js","component/react-stockcharts/lib/interactive/TrendLine.js","component/react-stockcharts/lib/Chart.js","component/react-stockcharts/lib/interactive/FibonacciRetracement.js","component/react-stockcharts/lib/interactive/wrapper/EachFibRetracement.js","component/react-stockcharts/lib/interactive/components/Text.js","component/react-stockcharts/lib/interactive/EquidistantChannel.js","component/react-stockcharts/lib/interactive/wrapper/EachEquidistantChannel.js","component/react-stockcharts/lib/interactive/components/ChannelWithArea.js","component/react-stockcharts/lib/interactive/StandardDeviationChannel.js","component/react-stockcharts/lib/interactive/wrapper/EachLinearRegressionChannel.js","component/react-stockcharts/lib/interactive/components/LinearRegressionChannelWithArea.js","component/react-stockcharts/lib/interactive/GannFan.js","component/react-stockcharts/lib/interactive/wrapper/EachGannFan.js","component/react-stockcharts/lib/interactive/components/GannFan.js","component/react-stockcharts/lib/interactive/ClickCallback.js","component/react-stockcharts/lib/interactive/Brush.js","component/react-stockcharts/lib/interactive/InteractiveText.js","component/react-stockcharts/lib/interactive/wrapper/EachText.js","component/react-stockcharts/lib/interactive/components/InteractiveText.js","component/react-stockcharts/lib/interactive/InteractiveYCoordinate.js","component/react-stockcharts/lib/interactive/wrapper/EachInteractiveYCoordinate.js","component/react-stockcharts/lib/interactive/components/ClickableShape.js","component/react-stockcharts/lib/interactive/components/InteractiveYCoordinate.js","component/react-stockcharts/lib/coordinates/EdgeCoordinateV4.js","component/react-stockcharts/lib/interactive/DrawingObjectSelector.js","component/react-stockcharts/es/lib/utils/noop.js","component/react-stockcharts/es/lib/utils/identity.js","component/react-stockcharts/es/lib/utils/zipper.js","component/react-stockcharts/es/lib/utils/shallowEqual.js","component/react-stockcharts/es/lib/utils/mappedSlidingWindow.js","component/react-stockcharts/es/lib/utils/PureComponent.js","component/react-stockcharts/es/lib/utils/index.js","component/react-stockcharts/es/lib/utils/strokeDasharray.js","component/react-stockcharts/es/lib/Chart.js","component/react-stockcharts/es/lib/utils/ChartDataUtil.js","component/react-stockcharts/es/lib/EventCapture.js","component/react-stockcharts/es/lib/CanvasContainer.js","component/react-stockcharts/es/lib/scale/evaluator.js","component/react-stockcharts/es/lib/ChartCanvas.js","component/react-stockcharts/es/lib/utils/zoomBehavior.js","component/react-stockcharts/es/lib/GenericComponent.js","component/react-stockcharts/es/lib/GenericChartComponent.js","component/react-stockcharts/es/lib/BackgroundText.js","component/react-stockcharts/es/lib/ZoomButtons.js","chart.js","utils/interactiveutils.js","utils/utils.js","component/DailyOpinionBox/DailyOpinionBox.js","component/DailyOpinionBox/index.js","App.js","serviceWorker.js","index.js"],"names":["Object","defineProperty","exports","value","isArray","first","overlayColors","TOUCHEND","TOUCHMOVE","MOUSEUP","MOUSEMOVE","MOUSELEAVE","MOUSEENTER","yes","PureComponent","accumulatingWindow","mappedSlidingWindow","shallowEqual","noop","identity","slidingWindow","merge","zipper","rebind","undefined","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_slicedToArray","arr","Array","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","push","err","sliceIterator","TypeError","_typeof","obj","constructor","_rebind","require","enumerable","get","_interopRequireDefault","default","_zipper","_merge","_slidingWindow","_identity","_noop","_shallowEqual","_mappedSlidingWindow","_accumulatingWindow","_PureComponent","_barWidth","keys","forEach","_strokeDasharray","getLogger","prefix","process","_noop2","sign","x","path","loc","defaultValue","isDefined","index","functor","v","createVerticalLinearGradient","stops","moreProps","ctx","height","chartConfig","grd","createLinearGradient","each","addColorStop","stop","color","getClosestItemIndexes2","array","accessor","left","_d3Array","bisector","Math","max","right","min","item","degrees","radians","PI","getClosestValue","inputValue","currentValue","diff","map","reduce","diff1","diff2","abs","find","list","predicate","context","this","d3Window","node","ownerDocument","defaultView","document","getTouchProps","touch","pageX","pageY","clientX","clientY","getClosestItemIndexes","getClosestItem","log","_getClosestItemIndexe","closest","console","head","tail","slice","last","isNotDefined","d","isObject","touchPosition","e","container","rect","getBoundingClientRect","clientLeft","y","top","clientTop","round","mousePosition","defaultRect","currentTarget","clearCanvas","canvasList","ratio","setTransform","clearRect","canvas","width","scale","capitalizeFirst","str","charAt","toUpperCase","substring","hexToRGBA","inputHex","opacity","hex","replace","indexOf","multiplier","r","parseInt","g","b","result","toObject","iteratee","_identity2","returnObj","a","_iteratee","_iteratee2","configurable","writable","_defineProperty","mapValue","object","mappedValue","mapObject","props","replaceAtIndex","concat","forOwn","_d3Scale","__esModule","lo","hi","mid","valueOf","scaleOrdinal","schemeCategory10","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_get","property","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","getter","_propTypes2","_GenericComponent3","_utils","ALWAYS_TRUE_TYPES","GenericChartComponent","_GenericComponent","instance","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","preCanvasDraw","bind","postCanvasDraw","shouldTypeProceed","preEvaluate","subClass","superClass","create","setPrototypeOf","_inherits","save","_context","margin","canvasOriginX","origin","canvasOriginY","_moreProps$chartConfi","_props","clip","edgeClip","beginPath","translate","restore","chartConfigList","chartId","id","_moreProps$chartConfi2","ox","oy","mouseXY","_moreProps$mouseXY","startPos","_moreProps$startPos","_x","_y","type","disablePan","currentCharts","propTypes","defaultProps","contextTypes","number","oneOfType","string","isRequired","getAxisCanvas","contexts","axes","getMouseCanvas","mouseCoord","_react","_react2","aliases","mouseleave","panend","pinchzoom","mousedown","click","contextmenu","dblclick","dragstart","dragend","dragcancel","GenericComponent","_Component","drawOnCanvas","getMoreProps","listener","draw","updateMoreProps","evaluateType","isHover","getPanConditions","generateSubscriptionId","suscriberId","state","updateCount","Component","_this2","evaluationInProgress","newType","drawOn","hovering","onUnHover","onContextMenu","onContextMenuWhenHover","onMouseDown","_moreProps","onClickWhenHover","onClickOutside","onClick","prevHover","amIOnTop","setCursorClass","selected","onHover","iSetTheCursorClass","interactiveCursorClass","_moreProps2","onMouseMove","_moreProps3","onDoubleClick","onDoubleClickWhenHover","onPan","onPanEnd","draggable","_amIOnTop","dragInProgress","onDragStart","someDragInProgress","onDrag","onDragComplete","_setCursorClass","enableDragOnHover","panEnabled","_ref","force","trigger","chartCanvasType","canvasDraw","setState","_context2","subscribe","componentWillReceiveProps","unsubscribe","componentDidUpdate","prevProps","_props2","nextProps","nextContext","xScale","plotData","getMutableState","debug","_context3","morePropsDecorator","xAccessor","displayXAccessor","_context4","fullData","_props3","canvasToDraw","getCanvasContexts","_context5","_props4","svgDraw","suffix","style","clipPath","createElement","func","bool","_EdgeIndicator","_CurrentCoordinate","_MouseCoordinateX","_MouseCoordinateXV","_MouseCoordinateY","_CrossHairCursor","_PriceCoordinate","_AreaSeries","_AlternatingFillAreaSeries","_AreaOnlySeries","_ScatterSeries","_CircleMarker","_TriangleMarker","_SquareMarker","_LineSeries","_CandlestickSeries","_OHLCSeries","_BarSeries","_StackedBarSeries","_GroupedBarSeries","_KagiSeries","_PointAndFigureSeries","_RenkoSeries","_MACDSeries","_BollingerSeries","_RSISeries","_StochasticSeries","_ElderRaySeries","_VolumeProfileSeries","_StraightLine","_SARSeries","defaultOptionsForAppearance","defaultOptionsForComputation","compare","elderImpulse","change","elderRay","sar","forceIndex","stochasticOscillator","atr","rsi","macd","renko","pointAndFigure","kagi","heikinAshi","bollingerBand","tma","wma","sma","ema","_ema","_sma","_wma","_tma","_bollingerBand","_heikinAshi","_kagi","_pointAndFigure","_renko","_macd","_rsi","_atr","_stochasticOscillator","_forceIndex","_sar","_elderRay","_change","_elderImpulse","_compare","_interopRequireWildcard","newObj","BollingerBand","windowSize","sourcePath","movingAverageType","ATR","ForceIndex","volumePath","SmoothedForceIndex","smoothingType","smoothingWindow","Change","Compare","basePath","mainKeys","compareKeys","ElderRay","ElderImpulse","SAR","accelerationFactor","maxAccelerationFactor","MACD","fast","slow","signal","FullStochasticOscillator","kWindowSize","dWindowSize","RSI","EMA","SMA","WMA","TMA","Kagi","reversalType","reversal","Renko","fixedBrickSize","PointAndFigure","boxSize","stroke","fill","echo","baseIndicator","_bollingerband","_sto","_smoothedForceIndex","_XAxis","_YAxis","getValueFromOverride","override","terminate","current","saveNodeType","nodes","isHoverForInteractiveType","interactiveType","selecedNodes","interactive","t","idx","getMorePropsForChart","_ref2","getMouseXY","getSelected","interactives","objects","filter","_TrendLine","_FibonacciRetracement","_EquidistantChannel","_StandardDeviationChannel","_GannFan","_ClickCallback","_Brush","_InteractiveText","_InteractiveYCoordinate","_DrawingObjectSelector","_GenericChartComponent2","PADDING","MIN_WIDTH","HoverTextNearMouse","textWidth","textHeight","saveNode","updateTextSize","renderSVG","textNode","bgWidth","bgHeight","_textNode$getBBox","getBBox","bgFill","fontFamily","fontSize","bgStroke","bgOpacity","textMetaData","show","mouseInsideCanvas","getContext","font","measureText","text","includes","_mouseXY","cx","cy","sideRect","helper","getBgWidth","getBgHeight","fillOpacity","xmlns","paddingTop","paddingLeft","paddingRight","display","numberOrString","oneOf","_MACDTooltip","_OHLCTooltip","_SingleValueTooltip","_MovingAverageTooltip","_BollingerBandTooltip","_RSITooltip","_StochasticTooltip","_HoverTooltip","_ToolTipText","_ToolTipTSpanLabel","_GroupTooltip","ToolTipText","apply","className","children","ToolTipTSpanLabel","currentItem","isHovering2","start","end","tolerance","mouseX","mouseY","m","getSlope","getYIntercept","isHovering","generateLine","StraightLine","x1Value","x2Value","y1Value","y2Value","yScale","strokeWidth","strokeOpacity","strokeDasharray","_helper","x1","y1","x2","y2","lineWidth","strokeStyle","setLineDash","getStrokeDasharray","split","moveTo","lineTo","_helper2","_props5","_props6","_ref3","line","modLine","_ref4","_ref5","_xScale$domain","domain","_xScale$domain2","xBegin","xFinish","_yScale$domain","_yScale$domain2","yBegin","yFinish","_ref6","_ref7","getXLineCoordinates","_ref8","_xScale$domain3","_xScale$domain4","_yScale$domain3","_yScale$domain4","getRayCoordinates","_ref9","_start","_end","getLineCoordinates","any","strokeDashTypes","onEdge1Drag","onEdge2Drag","defaultClassName","edgeFill","edgeStroke","edgeStrokeWidth","withEdge","getChartOrigin","contextWidth","contextHeight","getDimensions","getNewChartConfig","innerDimension","existingChartConfig","Children","toString","_Chart2","chartProps","padding","yExtentsProp","yExtents","yScaleProp","flipYScale","yExtentsCalculator","copy","_getDimensions","availableHeight","yPan","yPanEnabled","_index","prevChartConfig","isArraySize2AndNumber","originalYExtentsProp","_yExtentsProp2","getCurrentCharts","eachConfig","bottom","config","getChartConfigWithUpdatedYScales","xDomain","dy","chartsToPan","yDomains","realYDomain","yValues","eachExtent","allYValues","_lodash2","invert","extent","_d3Collection","set","values","yDomainFromYExtents","yDomainDY","range","prevYDomain","combine","_config$yPanEnabled","another","newYScale","rangeRoundPoints","isNaN","Error","rangeRound","setRange","getCurrentItem","xValue","getXValue","_yExtentsProp","_discontinuousTimeScaleProvider","discontinuousTimeScaleProviderBuilder","_financeDiscontinuousScale","defaultScaleProvider","data","_d3Shape","LineSeries","highlightOnHover","yAccessor","hoverTolerance","radius","pow","l","desiredY","hoverStrokeWidth","defined","interpolation","canvasClip","connectNulls","dataSeries","curve","close","hoverProps","yValue","_getLineCoordinates","lineCoordinates","propName","options","_defaultOptionsForComputation","calculator","_options","alpha","previous","initialAccumulator","skip","initialValue","nextValue","undefinedLength","ClickableCircle","mx","my","_helper3","_helper4","fillStyle","arc","_helper5","_helper6","ref","xyProvider","onMove","_ChartDataUtil","MouseLocationIndicator","handleMousePosChange","handleMouseDown","handleClick","xy","mutableState","pos","enabled","snap","shouldDisableSnap","snapTo","mousXY","prevMouseXY","_mutableState","_mutableState2","handleContextMenu","rotateXY","identityStack","drawOnCanvasHelper","svgHelper","getBarsSVG2","drawOnCanvas2","getBars","StackedBarSeries","stack","arrays","stackFn","defaultPostAction","postRotateAction","doStuff","convertToArray","swapScales","baseAt","direction","plotDataLengthBarWidth","widthRatio","bars","nest","entries","outer","fillRect","strokeRect","after","_props$spaceBetweenBa","spaceBetweenBar","getClassName","getFill","getBase","widthFunctor","barWidth","eachBarWidth","offset","ds","appearance","eachYAccessor","_","newData","h","groupOffset","groupWidth","bar","edge","coordinateBase","coordinate","_edge$coordinateBase","rectWidth","rectHeight","arrowWidth","orient","transform","edgeXRect","edgeYRect","strokeLinejoin","edgeXText","edgeYText","textAnchor","textFill","displayCoordinate","textBaseline","dashArray","_edge$coordinateBase2","rectRadius","halfHeight","closePath","quadraticCurveTo","roundRect","textAlign","fillText","edgeAt","hideLine","lineStrokeDasharray","lineStroke","lineOpacity","dx","AreaOnlySeries","base","canvasGradient","newBase","areaSeries","area","y0","newClassName","open","high","low","trueRangeAlgorithm","undefinedValue","accumulator","prev","prevATR","skipInitial","tr","sum","atrAlgorithm","themes","light","middle","up","down","neutral","divergence","dLine","kLine","dark","_LineSeries2","_AreaOnlySeries2","AreaSeries","hoverHighlight","zip","n","d3_zipLength","zips","j","_zip","isDate","date","numKeysA","numKeysB","val1","val2","getTime","_shallowEqual2","_React$Component","nextState","SVGComponent","_StackedBarSeries2","BarSeries","floor","_d3Force","_AxisZoomCapture2","Axis","showDomain","showTicks","getScale","outerTickSize","xAxis","drawAxisLine","tickStroke","tickStrokeOpacity","tickLabelFill","fontWeight","ticks","showTickLabel","tick","tickStrokeWidth","tickStrokeDasharray","drawEachTick","canvas_dy","format","labelX","labelY","drawEachTickLabel","drawTicks","tickHelper","Tick","axisTicksSVG","domainClassName","axisLineSVG","bg","axisZoomCallback","zoomCursorClassName","zoomEnabled","inverted","getMouseDelta","zoomCapture","innerTickSize","tickFormat","tickPadding","flexTicks","tickArguments","tickValuesProp","tickValues","tickInterval","tickIntervalFunction","_scale$domain","_scale$domain2","baseTickValues","baseFormat","tickSpacing","fy","origX","simulation","forceSimulation","forceX","strength","forceCollide","shapeRendering","tickSize","arrayOf","getYCoordinate","_EdgeCoordinateV","MouseCoordinateY","displayFormat","displayValue","at","yAxisPad","mouseHover","financeDiscontinuousScale","futureProvider","backingLinearScale","scaleLinear","clamp","interpolate","backingTicks","ticksMap","_backingLinearScale$d","_backingLinearScale$d2","domainStart","domainEnd","ceil","desiredTickCount","MAX_LEVEL","ticksAtLevel","temp","level","unsortedTicks","sort","ascending","ticksSet","distance","_i2","_j","remove","_index$Math$floor","nice","levelDefinition","defaultFormatters","yearFormat","quarterFormat","monthFormat","weekFormat","dayFormat","hourFormat","minuteFormat","secondFormat","milliSecondFormat","startOfYear","getFullYear","startOfQuarter","startOfMonth","startOfWeek","startOfDay","startOfHalfDay","startOfQuarterDay","startOfEighthOfADay","startOfHour","getHours","startOf30Minutes","startOf15Minutes","startOf5Minutes","startOfMinute","startOf30Seconds","mean","average","volume","curr","forceIndexCalulator","getNewXY","_utils2","_StraightLine2","_ClickableCircle2","_HoverTextNearMouse2","EachTrendLine","handleEdge1Drag","handleEdge2Drag","handleLineDragStart","handleLineDrag","handleEdge1DragStart","handleEdge2DragStart","handleDragComplete","handleHover","hover","dragStart","_dragStart","anchor","_getNewXY","_getNewXY2","_props7","_getNewXY3","_getNewXY4","_props8","edgeInteractiveCursor","lineInteractiveCursor","hoverText","hoverTextEnabled","enable","hoverTextSelected","selectedText","hoverTextUnselected","restHoverTextProps","_objectWithoutProperties","_state","_yScale$domain$slice$","_yScale$domain$slice$2","small","big","onSelect","onUnSelect","_TypeChooser","_SaveChartAsImage","_fitWidth","_fitDimensions","createReboundMethod","name","method","_len","args","_key","_len2","names","_key2","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","algorithm","skipUndefined","mergeCompute","_zipper2","datum","indicator","misc","sourceFunction","size","windowData","accumulatorIdx","undef","shift","mapped","pop","accumulateTill","discardTillStart","discardTillEnd","accumulatedWindow","response","_xScale$range","_xScale$range2","totalWidth","dl","dr","_width","timeIntervalBarWidth","interval","getStrokeDasharrayCanvas","Number","_AreaSeries2","_SVGComponent2","AlternatingFillAreaSeries","renderClip","topClip","bottomClip","id1","String","random","clipPathId1","id2","clipPathId2","style1","style2","shape","ScatterSeries","points","markerProps","fillGroup","fillKey","fillValues","strokeGroup","strokeValues","point","marker","_drawOnCanvas","Marker","markerProvider","mProps","Circle","drawOnCanvasWithNoStateChange","Triangle","rotation","getRotationInDegrees","fillColor","getFillColor","strokeColor","getStrokeColor","w","_getTrianglePoints","getTrianglePoints","innerOpposite","innerHypotenuse","cos","tan","directionVal","rotate","_getTrianglePoints2","rotationDeg","Square","CandlestickSeries","candleStrokeWidth","candleData","getCandleData","wick","y3","y4","strokeKey","inner","wickClassName","candleClassName","getWicksSVG","getCandlesSVG","wickStrokeProp","wickStroke","classNames","fillProp","strokeProp","trueOffset","candles","ohlc","sma50","sma200","sma20","OHLCSeries","barData","wickNest","openX1","openY","openX2","closeX1","closeY","closeX2","getOHLCBars","classNamesProp","strokeFunc","classNameFunc","absoluteChange","GroupedBarSeries","postProcessor","KagiSeries","currentValueStroke","paths","begin","prevX","plot","lastPlot","curveStepBefore","kagiLine","startAs","changeTo","changePoint","added","reverseAt","yang","yin","PointAndFigureSeries","columns","getColumns","col","_col$offset","offsetX","offsetY","boxes","box","columnWidth","boxHeight","rx","ry","ellipse","anyBox","xOffset","RenkoSeries","getRenko","candleWidth","fullyFormed","partial","_BarSeries2","MACDSeries","yAccessorForMACD","yAccessorForSignal","yAccessorForDivergence","yAccessorForDivergenceBase","divergenceStroke","zeroLineStroke","zeroLineOpacity","BollingerSeries","yAccessorForTop","yAccessorForMiddle","yAccessorForBottom","yAccessorForScalledBottom","areaClassName","RSISeries","topAndBottomClip","mainClip","overSold","overBought","insideThreshold","outsideThreshold","StochasticSeries","yAccessorForD","yAccessorForK","D","K","refLineOpacity","_OverlayBarSeries2","ElderRaySeries","fillForEachBar","yAccessorTop","yAccessorBullTop","yAccessorBearTop","yAccessorBullBottom","yAccessorBearBottom","yAccessorForBarBase","bullPower","bearPower","yAccessorNumber","bullPowerFill","bearPowerFill","straightLineStroke","straightLineOpacity","OverlayBarSeries","innerBars","VolumeProfileSeries","rects","sessionBg","sessionBackGround","sessionBackGroundOpacity","showSessionBackground","w1","w2","stroke1","stroke2","fill1","fill2","sessionBgSvg","realXScale","sessionStart","bySession","partialStartOK","partialEndOK","bins","maxProfileWidthPercent","sessionBuilder","allRects","session","finish","sessionWidth","histogram2","histogram","thresholds","rollup","sortKeys","descending","leaves","volumeInBins","volumeValues","totalVolumes","volumes","totalVolume","totalVolumeX","ws","_ref6$","x0","getMonth","SARSeries","currentY","centerX","centerY","falling","rising","_Axis2","XAxis","newXDomain","xAxisZoom","axisAt","xZoomHeight","_context$chartConfig","axisLocation","getXScale","trueRange","trueDomain","startXY","_d3Selection","AxisZoomCapture","handleDragStartMouse","handleDragStartTouch","handleDrag","handleDragEnd","handleRightClick","startPosition","stopPropagation","preventDefault","select","on","contextMenuClicked","mouseInteraction","startScale","dragHappened","touches","mouse","center","tempRange","newDomain","clicked","event","setTimeout","cursor","onTouchStart","YAxis","newYDomain","yAxisZoom","yZoomWidth","getYScale","_d3Format","EdgeIndicator","itemType","edgeType","edgeX","getEdge","CurrentCoordinate","circle","MouseCoordinateX","customX","_customX","snapX","xPosition","drawCoordinate","fontStyle","_props$bg","_props$text","halfWidth","pad","MouseCoordinateXV2","getXCoordinateInfo","_GenericComponent2","CrossHairCursor","lines","originX","originY","rest","line1","PriceCoordinate","lowerYValue","upperYValue","price","_d3TimeFormat","_financeDiscontinuousScale2","_levels","evaluateLevel","formatters","eachLevel","discontinuousIndexCalculatorLocalTime","initialIndex","row","prevDate","nowDate","getSeconds","getMinutes","getDay","realDateAccessor","inputDateAccessor","dateAccessor","calculate","Date","timeFormat","indexAccessor","indexMutator","withIndex","currentFormatters","discontinuousTimeScaleProvider","inputIndex","mergedData","utc","offsetInMillis","getTimezoneOffset","setLocale","locale","timeFormatDefaultLocale","indexCalculator","_displayValuesFor2","_ToolTipText2","_ToolTipTSpanLabel2","MACDTooltip","labelFill","displayValuesFor","macdValue","originProp","_origin","_origin2","OHLCTooltip","xDisplayFormat","volumeFormat","ohlcFormat","percentFormat","displayTexts","displayDate","percent","na","itemsToDisplay","o","c","SingleValueTooltip","valueFill","yDisplayFormat","xLabel","yLabel","xDisplayValue","yDisplayValue","SingleMAToolTip","forChart","displayName","MovingAverageTooltip","_Component2","_config$origin","tooltipLabel","label","BollingerBandTooltip","tooltipValue","RSITooltip","StochasticTooltip","stochastic","_toConsumableArray","arr2","from","mobilecheck","check","navigator","userAgent","vendor","window","opera","test","substr","HoverTooltip","pointer","hoveringInteractiveText","backgroundShapeCanvas","tooltipCanvas","content","pointWidth","bgSize","handleSelectAsterisk","backgroundShapeSVG","tooltipSVG","bgheight","bgwidth","bgShape","tooltipContent","fontFill","tspans","startY","Y","textY","X","findIndex","chartIndex","normalizeX","normalizeY","calculateTooltipSize","removeIndex","splice","_content$y$map$reduce","res","sizes","sumSizes","tooltipContentForTMTI","tooltipContentForMACD","tooltipContentForStochastic","tooltipContentForForceIndex","tooltipContentForElderray","tooltipContentForRsiAtr","indicator2","VALID_LAYOUTS","SingleTooltip","withShape","comp","layout","renderValueNextToLabel","renderValueBeneathToLabel","renderInline","GroupTooltip","position","xyPos","verticalSize","_getPosition","getPosition","xPos","yPos","singleTooltip","_baseIndicator2","ALGORITHM_TYPE","underlyingAlgorithm","_calculator","mergedAlgorithm","_baseIndicator","weight","waverage","triaverage","meanAlgorithm","_ema2","avg","stdDev","deviation","bollingerBandAlgorithm","now","dateMutator","reversalThreshold","_atr2","atrCalculator","kagiData","prevPeak","prevTrough","to","priceMovement","nextLineOpen","nextChangePoint","nextChangeTo","dir","rawData","pricingMethod","columnData","column","createBox","upwardMovement","downwardMovement","toDate","noOfBoxes","prevBoxClose","fromDate","_upwardMovement","_downwardMovement","_prevBoxClose","_noOfBoxes","_prevBoxClose2","eachBox","updateColumns","brickSize","renkoData","prevBrickClose","prevBrickOpen","brick","prevCloseToHigh","prevCloseToLow","prevOpenToHigh","prevOpenToLow","noOfBricks","newBrick","fastEMA","slowEMA","signalEMA","macdArray","macdCalculator","signalArray","_options2","prevAvgGain","prevAvgLoss","avgGain","gain","avgLoss","loss","rsiAlgorithm","tuple","gainsAndLossesCalculator","kWindow","highestHigh","lowestLow","kSmoothed","dWindow","stoAlgorithm","kData","_forceIndex2","smoothed","algo","_sma2","forceMA","risingSar","risingEp","fallingSar","fallingEp","af","_calc","calc","use","firsts","subkey","percentChange","bollingerband","ha","_defaultOptionsForAppearance","sto","macdSource","emaSource","prevMACDDivergence","currMACDDivergence","prevEMA","currEMA","TypeChooser","handleTypeChange","onChange","_saveSvgAsPng","_saveSvgAsPng2","SaveChartAsImage","doc","background","cb","svgAsDataUri","getElementsByTagName","uri","image","Image","onload","parentNode","drawImage","toDataURL","src","saveWithWhiteBG","saveWithBG","saveWithDarkBG","saveChartAsImage","setAttribute","body","appendChild","addEventListener","removeChild","WrappedComponent","withRef","minWidth","ResponsiveComponent","handleWindowResize","getWrappedInstance","setTestCanvas","testCanvas","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getRatio","removeEventListener","el","_window$getComputedSt","getComputedStyle","parseFloat","Series","_props$minWidth","_props$minHeight","minHeight","clientWidth","clientHeight","_ratio","dimensions","_reactDom2","findDOMNode","_EachTrendLine2","_MouseLocationIndicator2","TrendLine","handleStart","handleEnd","handleDrawLine","handleDragLine","handleDragLineComplete","getSelectionState","newXYValue","newTrends","trends","onComplete","xyValue","mouseMoved","_this3","onStart","_this4","_this5","currentPositionRadius","currentPositionStroke","currentPositionstrokeOpacity","currentPositionStrokeWidth","tempLine","noHover","eachAppearance","hoverTextWithDefault","button","shiftKey","_PureComponent3","Chart","componentName","childContextTypes","_EachFibRetracement2","FibonacciRetracement","handleDrawRetracement","origXYValue","retracements","newRetracements","currentPositionOpacity","overrideIndex","hoverTextWidthDefault","currentRetracement","eachHoverText","nsEdgeFill","_EachTrendLine","_Text2","EachFibRetracement","handleLineNSResizeTop","handleLineNSResizeBottom","handleLineMove","_getNewXY5","_props9","_props10","_getNewXY7","_props11","_props12","_props13","lineType","toFixed","firstOrLast","interactiveEdgeCursorClass","dragHandler","edge1DragHandler","edge2DragHandler","hoverHandler","_generateLine","Text","_xyProvider","_xyProvider2","_xyProvider3","_xyProvider4","_EachEquidistantChannel2","EquidistantChannel","handleDrawChannel","handleDragChannel","handleDragChannelComplete","channels","newChannels","endXY","tempChannel","edgeFill2","_ChannelWithArea2","EachEquidistantChannel","handleLine1Edge1Drag","handleLine1Edge2Drag","handleDragStart","handleChannelDrag","handleChannelHeightChange","getEdgeCircle","newX1Value","newY1Value","_dragStart2","line1Edge","line2Edge","_d3Path","ChannelWithArea","line2","line1Hovering","line2Hovering","line2Y1","line2Y2","getPath","getLines","_EachLinearRegressionChannel2","StandardDeviationChannel","eachDefaultAppearance","hoverTextDefault","_LinearRegressionChannelWithArea","_LinearRegressionChannelWithArea2","EachLinearRegressionChannel","edge1Provider","edge2Provider","LinearRegressionChannelWithArea","startIndex","endIndex","xs","ys","xys","xSquareds","newy1","newy2","_EachGannFan2","GannFan","handleDrawFan","handleDragFan","handleDragFanComplete","fans","newfans","xyValyue","_GannFan2","EachGannFan","handleFanDrag","pairs","pairsOfLines","endX","endY","_startXY","_endXY","halfY","oneThirdY","oneFourthY","oneEighthY","halfX","oneThirdX","oneFourthX","ClickCallback","Brush","handleZoomStart","handleDrawSquare","handleZoomComplete","zoomHappening","x1y1","strokeDashArray","_state$x1y","onBrush","interactiveState","_EachText2","InteractiveText","handleDraw","newTextList","textList","defaultText","onChoosePosition","defaultHoverText","bgStrokeWidth","_InteractiveText2","EachText","_position","textCX","textCY","dragStartPosition","_dragStartPosition","calculateTextWidth","_EachInteractiveYCoordinate2","InteractiveYCoordinate","handleDelete","newAlertList","yCoordinateList","draggedAlert","onDelete","defaultPriceCoordinate","textBox","closeIcon","_ClickableShape2","_InteractiveYCoordinate2","EachInteractiveYCoordinate","handleCloseIconHover","closeIconHover","dragProps","ClickableShape","_closeIcon","start1","end1","start2","end2","newEdge","yCoord","xxxyyy","DrawingObjectSelector","handleDoubleClick","getInteraction","allSelected","getInteractiveNodes","drawingObjectMap","interactiveNodes","valueArray","morePropsForChart","React","PropTypes","flattenDeep","EventCapture","handleEnter","handleLeave","handleWheel","handleMouseMove","handlePanEnd","handlePan","handleTouchStart","handleTouchMove","handlePinchZoom","handlePinchZoomEnd","shouldPan","canPan","mouseInside","panInProgress","focus","componentDidMount","win","d3Event","onMouseEnter","onMouseLeave","zoom","onZoom","yZoom","deltaY","deltaX","_state$panStart","panStart","panStartXScale","lastNewPos","panHappened","dxdy","panOrigin","queuePanEnd","panEndTimeout","clearTimeout","mouseMove","_state$panStart2","getAllPanConditions","initialPanEnabled","pan","_getAllPanConditions$","somethingSelected","_canPan","_win","_state$panStart3","_state$panStart4","touchXY","_win2","touch1Pos","touch2Pos","pinchZoomStart","_touches","_touches2","onPinchZoom","_state$pinchZoomStart","initialPinch","onPinchZoomEnd","_state$pinchZoomStart2","cursorOverrideClass","disableInteraction","useCrossHairStyleCursor","interactionProps","onWheel","onTouchMove","panSpeedMultiplier","CanvasContainer","setDrawCanvas","drawCanvas","zIndex","getNewEnd","fallbackEnd","initialXScale","lastItem","lastItemX","lastItemXValue","_initialXScale$range","_initialXScale$range2","rangeStart","extentsWrapper","useWholeData","pointsPerPxThreshold","minPointsPerPxThreshold","flipXScale","filterData","inputDomain","currentPlotData","currentDomain","fallbackStart","clampedDomain","filteredData","getFilteredResponse","realInputDomain","chartWidth","showMaxThreshold","arrayLength","maxThreshold","minThreshold","threshold","showMinThreshold","canShowTheseManyPeriods","newEnd","newXScale","newWidth","showMax","_newXScale","_newWidth","newLeftIndex","newRightIndex","evaluator","CANDIDATES_FOR_RESET","getXScaleDirection","calculateFullData","plotFull","resetChart","inputXAccesor","xExtentsProp","xExtents","d3Extent","_calculateFullData","updatedXScale","setXRange","_filterData","calculateState","initialPlotData","postCalculator","pinchCoordinates","pinch","topLeft","bottomRight","ChartCanvas","getDataInfo","handleMouseEnter","handleMouseLeave","handleZoom","panHelper","pinchZoomHelper","resetYDomain","calculateStateForDomain","redraw","subscriptions","saveEventCaptureNode","saveCanvasContainerNode","lastSubscriptionId","eventCaptureNode","canvasContainerNode","canvases","_rest$getPanCondition","dragableComponents","triggerEvent","_state2","initialChartConfig","_filterData2","beforePlotData","updatedScale","finalPinch","initialPinchXScale","_state3","_pinchCoordinates","iTL","iBR","_pinchCoordinates2","fTL","fBR","xDash","yDash","_filterData3","cancelDrag","waitingForPinchZoomAnimationFrame","requestAnimationFrame","clearBothCanvas","clearThreeCanvas","firstItem","onLoadMore","zoomDirection","_state4","zoomMultiplier","zoomAnchor","_calculateStateForDom","_calculateStateForDom2","_state5","_filterData4","hackyWayToStopPanBeyondBounds__plotData","hackyWayToStopPanBeyondBounds__domain","waitingForPanAnimationFrame","inputType","_this6","waitingForMouseMoveAnimationFrame","_state6","clearMouseCanvas","_this7","_state7","_this8","_this9","_resetChart","reset","thisProps","every","shouldResetChart","interaction","isInteractionEnabled","newState","_state$xScale$domain","_state$xScale$domain2","prevLastItem","calculatedState","lastItemWasVisible","_initialXScale$domain","_initialXScale$domain2","maintainPointsPerPixelOnResize","rangeEnd","_updatedXScale$range","_updatedXScale$range2","newRangeStart","newRangeEnd","newStart","_initialXScale$range$","_initialXScale$range$2","_response","updateChart","_newState","changed","newChartConfig","defaultFocus","mouseMoveEvent","panEvent","zoomEvent","_state8","cursorStyle","yExtentsProvider","mouseCoordinates","ohlcv","BackgroundText","getText","strokeText","ZoomButtons","handleZoomOut","handleZoomIn","_xScale$range$map$map","_xScale$range$map$map2","interpolateNumber","foo","setInterval","clearInterval","heightFromBase","textStrokeWidth","onReset","_size","resetX","zoomOut","d3Path","zoomOutX","zoomIn","zoomInX","textDy","elder","dateFormat","numberFormat","stoAppearance","getMaxUndefined","calculators","bbStroke","s1","objectSpread","s2","r1","shortid","generate","r2","fi","fiEMA13","ema12","fullSTO","elderImpulseCalculator","rsiCalculator","atr14","changeCalculator","sarCalculator","bbCalculator","bb","mri","topValue","bottomValue","macdAppearance","tma20","ema20","ema50","smaVolume50","CustomizedStockChart","classCallCheck","possibleConstructorReturn","CandleColor","trend","chartType","saveCanvasNode","canvasNode","chart","extentsCalculator","stockType","onDrawCompleteChart1","trends_1","enableTrendLine","onFibComplete1","retracements_1","enableFib","renderYCoordinateEdgeValues","yCoordinateList_1","react_default","coordinates","handleSelect","handleSelection","renderCrossHairs","crossHairs","series","inputData","additionalData","isDrag","before","calculatedData","_xScaleProvider","xScaleProvider","linearData","textlist","overDuplicate","underDuplicate","marks","mark","textitem","bgcolor","mouseover","R1","R2","S1","S2","textList_1","hoveredInteractiveText","saveInteractiveNodes","assertThisInitialized","handleDownloadMore","handleHoverInteractiveText","handleReset","toConsumableArray","yCoordinate","_this$state","prevData","_this$props","rowsToDownload","maxWindowSize","dataToCalculate","_xScaleProvider3","_this$props2","indicator1","_this$state2","duration","chartHeight","yGrid","xGrid","tooltip","hoverTooltip","lib_ChartCanvas","seriesName","lib_Chart","lib_tooltip","lib_interactive","sr","fitWidth","parseDate","timeParse","getData","variable","apiUrl","fetch","then","tsvParse","parse","getAdditionalData","JSON","getMRIData","getDailyOpinionData","day","getDate","isBoxDragging","DailyOpinionBox","dataTransfer","setDragImage","getElementById","setData","dragPrevPos","targetTouches","opinionBox","passive","onTouchEnd","onDrop","symbol","handleClickClose","react_spinners","css","sizeUnit","loading","handleClickPrev","handleClickNext","opiniondailylabel","opiniondailycolor","opiniondaily","opiniondailydetail","opinionshortlabel","opinionshorttermcolor","opinionshortterm","opinionshorttermdetail","opinionlongtermlabel","opinionlongtermcolor","opinionlongterm","opinionlongtermdetail","dateToString","s","getYear","App","defaultQueryParams","charttype","opinion","marksData","refreshData","queryParams","mriData","stock","stockDate","lastPrice","lastprice","filterMarks","asterisk","daily","short","long","timing","refreshChart","rdy","handleChangeDaily","cookies","handleChangeShortTerm","handleChangeLongTerm","handleChangeTiming","handleChangeAsterisk","handleChangeTrend","handleChangeTrendline","fib","trendline","handleChangeFib","handleChangeSR","finalPos","asyncToGenerator","regenerator_default","_callee","opinionPos","currentDate","wrap","fetching","abrupt","boxShowed","isOpinionBoxShow","dailyOpinionData","setQueryParams","historyDate","_callee2","newDate","sent","error","_x2","_callee3","_x3","renderDailyOpinionBox","component_DailyOpinionBox","handleCloseOpinionBox","opinionString","checked","htmlFor","ReactQueryParams","withCookies","Boolean","location","hostname","match","EVENTS_TO_MODIFY","originalAddEventListener","wantsUntrusted","modOptions","capture","originalRemoveEventListener","ReactDOM","render","es6","src_App_0","stockChart","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.71bc4845.chunk.js","sourcesContent":[";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.isArray = exports.first = exports.overlayColors = exports.TOUCHEND = exports.TOUCHMOVE = exports.MOUSEUP = exports.MOUSEMOVE = exports.MOUSELEAVE = exports.MOUSEENTER = exports.yes = exports.PureComponent = exports.accumulatingWindow = exports.mappedSlidingWindow = exports.shallowEqual = exports.noop = exports.identity = exports.slidingWindow = exports.merge = exports.zipper = exports.rebind = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _rebind = require(\"./rebind\");\n\nObject.defineProperty(exports, \"rebind\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_rebind).default;\n\t}\n});\n\nvar _zipper = require(\"./zipper\");\n\nObject.defineProperty(exports, \"zipper\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_zipper).default;\n\t}\n});\n\nvar _merge = require(\"./merge\");\n\nObject.defineProperty(exports, \"merge\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_merge).default;\n\t}\n});\n\nvar _slidingWindow = require(\"./slidingWindow\");\n\nObject.defineProperty(exports, \"slidingWindow\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_slidingWindow).default;\n\t}\n});\n\nvar _identity = require(\"./identity\");\n\nObject.defineProperty(exports, \"identity\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_identity).default;\n\t}\n});\n\nvar _noop = require(\"./noop\");\n\nObject.defineProperty(exports, \"noop\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_noop).default;\n\t}\n});\n\nvar _shallowEqual = require(\"./shallowEqual\");\n\nObject.defineProperty(exports, \"shallowEqual\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_shallowEqual).default;\n\t}\n});\n\nvar _mappedSlidingWindow = require(\"./mappedSlidingWindow\");\n\nObject.defineProperty(exports, \"mappedSlidingWindow\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_mappedSlidingWindow).default;\n\t}\n});\n\nvar _accumulatingWindow = require(\"./accumulatingWindow\");\n\nObject.defineProperty(exports, \"accumulatingWindow\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_accumulatingWindow).default;\n\t}\n});\n\nvar _PureComponent = require(\"./PureComponent\");\n\nObject.defineProperty(exports, \"PureComponent\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_PureComponent).default;\n\t}\n});\n\nvar _barWidth = require(\"./barWidth\");\n\nObject.keys(_barWidth).forEach(function (key) {\n\tif (key === \"default\" || key === \"__esModule\") return;\n\tObject.defineProperty(exports, key, {\n\t\tenumerable: true,\n\t\tget: function get() {\n\t\t\treturn _barWidth[key];\n\t\t}\n\t});\n});\n\nvar _strokeDasharray = require(\"./strokeDasharray\");\n\nObject.keys(_strokeDasharray).forEach(function (key) {\n\tif (key === \"default\" || key === \"__esModule\") return;\n\tObject.defineProperty(exports, key, {\n\t\tenumerable: true,\n\t\tget: function get() {\n\t\t\treturn _strokeDasharray[key];\n\t\t}\n\t});\n});\nexports.getLogger = getLogger;\nexports.sign = sign;\nexports.path = path;\nexports.functor = functor;\nexports.createVerticalLinearGradient = createVerticalLinearGradient;\nexports.getClosestItemIndexes2 = getClosestItemIndexes2;\nexports.degrees = degrees;\nexports.radians = radians;\nexports.getClosestValue = getClosestValue;\nexports.find = find;\nexports.d3Window = d3Window;\nexports.getTouchProps = getTouchProps;\nexports.getClosestItemIndexes = getClosestItemIndexes;\nexports.getClosestItem = getClosestItem;\nexports.head = head;\nexports.tail = tail;\nexports.last = last;\nexports.isDefined = isDefined;\nexports.isNotDefined = isNotDefined;\nexports.isObject = isObject;\nexports.touchPosition = touchPosition;\nexports.mousePosition = mousePosition;\nexports.clearCanvas = clearCanvas;\nexports.capitalizeFirst = capitalizeFirst;\nexports.hexToRGBA = hexToRGBA;\nexports.toObject = toObject;\nexports.mapValue = mapValue;\nexports.mapObject = mapObject;\nexports.replaceAtIndex = replaceAtIndex;\nexports.forOwn = forOwn;\n\nvar _d3Scale = require(\"d3-scale\");\n\nvar _d3Array = require(\"d3-array\");\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _identity2 = _interopRequireDefault(_identity);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getLogger(prefix) {\n\tvar logger = _noop2.default;\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tlogger = require(\"debug\")(\"react-stockcharts:\" + prefix);\n\t}\n\treturn logger;\n}\n\nfunction sign(x) {\n\treturn (x > 0) - (x < 0);\n}\n\nvar yes = exports.yes = function yes() {\n\treturn true;\n};\n\nfunction path() {\n\tvar loc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n\tvar key = Array.isArray(loc) ? loc : [loc];\n\tvar length = key.length;\n\n\treturn function (obj, defaultValue) {\n\t\tif (length === 0) return isDefined(obj) ? obj : defaultValue;\n\n\t\tvar index = 0;\n\t\twhile (obj != null && index < length) {\n\t\t\tobj = obj[key[index++]];\n\t\t}\n\t\treturn index === length ? obj : defaultValue;\n\t};\n}\n\nfunction functor(v) {\n\treturn typeof v === \"function\" ? v : function () {\n\t\treturn v;\n\t};\n}\n\nfunction createVerticalLinearGradient(stops) {\n\treturn function (moreProps, ctx) {\n\t\tvar height = moreProps.chartConfig.height;\n\n\n\t\tvar grd = ctx.createLinearGradient(0, height, 0, 0);\n\t\tstops.forEach(function (each) {\n\t\t\tgrd.addColorStop(each.stop, each.color);\n\t\t});\n\n\t\treturn grd;\n\t};\n}\n\nfunction getClosestItemIndexes2(array, value, accessor) {\n\tvar left = (0, _d3Array.bisector)(accessor).left(array, value);\n\tleft = Math.max(left - 1, 0);\n\tvar right = Math.min(left + 1, array.length - 1);\n\n\tvar item = accessor(array[left]);\n\tif (item >= value && item <= value) right = left;\n\n\treturn { left: left, right: right };\n}\n\nfunction degrees(radians) {\n\treturn radians * 180 / Math.PI;\n}\n\nfunction radians(degrees) {\n\treturn degrees * Math.PI / 180;\n}\n\nfunction getClosestValue(inputValue, currentValue) {\n\tvar values = isArray(inputValue) ? inputValue : [inputValue];\n\n\tvar diff = values.map(function (each) {\n\t\treturn each - currentValue;\n\t}).reduce(function (diff1, diff2) {\n\t\treturn Math.abs(diff1) < Math.abs(diff2) ? diff1 : diff2;\n\t});\n\treturn currentValue + diff;\n}\n\nfunction find(list, predicate) {\n\tvar context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this;\n\n\tfor (var i = 0; i < list.length; ++i) {\n\t\tif (predicate.call(context, list[i], i, list)) {\n\t\t\treturn list[i];\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction d3Window(node) {\n\tvar d3win = node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n\treturn d3win;\n}\n\nvar MOUSEENTER = exports.MOUSEENTER = \"mouseenter.interaction\";\nvar MOUSELEAVE = exports.MOUSELEAVE = \"mouseleave.interaction\";\nvar MOUSEMOVE = exports.MOUSEMOVE = \"mousemove.pan\";\nvar MOUSEUP = exports.MOUSEUP = \"mouseup.pan\";\nvar TOUCHMOVE = exports.TOUCHMOVE = \"touchmove.pan\";\nvar TOUCHEND = exports.TOUCHEND = \"touchend.pan touchcancel.pan\";\n\nfunction getTouchProps(touch) {\n\tif (!touch) return {};\n\treturn {\n\t\tpageX: touch.pageX,\n\t\tpageY: touch.pageY,\n\t\tclientX: touch.clientX,\n\t\tclientY: touch.clientY\n\t};\n}\n\nfunction getClosestItemIndexes(array, value, accessor, log) {\n\tvar lo = 0,\n\t hi = array.length - 1;\n\twhile (hi - lo > 1) {\n\t\tvar mid = Math.round((lo + hi) / 2);\n\t\tif (accessor(array[mid]) <= value) {\n\t\t\tlo = mid;\n\t\t} else {\n\t\t\thi = mid;\n\t\t}\n\t}\n\t// for Date object === does not work, so using the <= in combination with >=\n\t// the same code works for both dates and numbers\n\tif (accessor(array[lo]).valueOf() === value.valueOf()) hi = lo;\n\tif (accessor(array[hi]).valueOf() === value.valueOf()) lo = hi;\n\n\tif (accessor(array[lo]) < value && accessor(array[hi]) < value) lo = hi;\n\tif (accessor(array[lo]) > value && accessor(array[hi]) > value) hi = lo;\n\n\tif (log) {}\n\t// console.log(lo, accessor(array[lo]), value, accessor(array[hi]), hi);\n\t// console.log(accessor(array[lo]), lo, value, accessor(array[lo]) >= value);\n\t// console.log(value, hi, accessor(array[hi]), accessor(array[lo]) <= value);\n\n\t// var left = value > accessor(array[lo]) ? lo : lo;\n\t// var right = gte(value, accessor(array[hi])) ? Math.min(hi + 1, array.length - 1) : hi;\n\n\t// console.log(value, accessor(array[left]), accessor(array[right]));\n\treturn { left: lo, right: hi };\n}\n\nfunction getClosestItem(array, value, accessor, log) {\n\tvar _getClosestItemIndexe = getClosestItemIndexes(array, value, accessor, log),\n\t left = _getClosestItemIndexe.left,\n\t right = _getClosestItemIndexe.right;\n\n\tif (left === right) {\n\t\treturn array[left];\n\t}\n\n\tvar closest = Math.abs(accessor(array[left]) - value) < Math.abs(accessor(array[right]) - value) ? array[left] : array[right];\n\tif (log) {\n\t\tconsole.log(array[left], array[right], closest, left, right);\n\t}\n\treturn closest;\n}\n\nvar overlayColors = exports.overlayColors = (0, _d3Scale.scaleOrdinal)(_d3Scale.schemeCategory10);\n\nfunction head(array, accessor) {\n\tif (accessor && array) {\n\t\tvar value = void 0;\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tvalue = array[i];\n\t\t\tif (isDefined(accessor(value))) return value;\n\t\t}\n\t\treturn undefined;\n\t}\n\treturn array ? array[0] : undefined;\n}\n\nfunction tail(array, accessor) {\n\tif (accessor && array) {\n\t\treturn array.map(accessor).slice(1);\n\t}\n\treturn array ? array.slice(1) : undefined;\n}\n\nvar first = exports.first = head;\n\nfunction last(array, accessor) {\n\tif (accessor && array) {\n\t\tvar value = void 0;\n\t\tfor (var i = array.length - 1; i >= 0; i--) {\n\t\t\tvalue = array[i];\n\t\t\tif (isDefined(accessor(value))) return value;\n\t\t}\n\t\treturn undefined;\n\t}\n\tvar length = array ? array.length : 0;\n\treturn length ? array[length - 1] : undefined;\n}\n\nfunction isDefined(d) {\n\treturn d !== null && typeof d != \"undefined\";\n}\n\nfunction isNotDefined(d) {\n\treturn !isDefined(d);\n}\n\nfunction isObject(d) {\n\treturn isDefined(d) && (typeof d === \"undefined\" ? \"undefined\" : _typeof(d)) === \"object\" && !Array.isArray(d);\n}\n\nvar isArray = exports.isArray = Array.isArray;\n\nfunction touchPosition(touch, e) {\n\tvar container = e.target,\n\t rect = container.getBoundingClientRect(),\n\t x = touch.clientX - rect.left - container.clientLeft,\n\t y = touch.clientY - rect.top - container.clientTop,\n\t xy = [Math.round(x), Math.round(y)];\n\treturn xy;\n}\n\nfunction mousePosition(e, defaultRect) {\n\tvar container = e.currentTarget;\n\tvar rect = defaultRect || container.getBoundingClientRect(),\n\t x = e.clientX - rect.left - container.clientLeft,\n\t y = e.clientY - rect.top - container.clientTop,\n\t xy = [Math.round(x), Math.round(y)];\n\treturn xy;\n}\n\nfunction clearCanvas(canvasList, ratio) {\n\tcanvasList.forEach(function (each) {\n\t\teach.setTransform(1, 0, 0, 1, 0, 0);\n\t\teach.clearRect(-1, -1, each.canvas.width + 2, each.canvas.height + 2);\n\t\teach.scale(ratio, ratio);\n\t});\n}\n\nfunction capitalizeFirst(str) {\n\treturn str.charAt(0).toUpperCase() + str.substring(1);\n}\n\nfunction hexToRGBA(inputHex, opacity) {\n\tvar hex = inputHex.replace(\"#\", \"\");\n\tif (inputHex.indexOf(\"#\") > -1 && (hex.length === 3 || hex.length === 6)) {\n\n\t\tvar multiplier = hex.length === 3 ? 1 : 2;\n\n\t\tvar r = parseInt(hex.substring(0, 1 * multiplier), 16);\n\t\tvar g = parseInt(hex.substring(1 * multiplier, 2 * multiplier), 16);\n\t\tvar b = parseInt(hex.substring(2 * multiplier, 3 * multiplier), 16);\n\n\t\tvar result = \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + opacity + \")\";\n\n\t\treturn result;\n\t}\n\treturn inputHex;\n}\n\nfunction toObject(array) {\n\tvar iteratee = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _identity2.default;\n\n\treturn array.reduce(function (returnObj, a) {\n\t\tvar _iteratee = iteratee(a),\n\t\t _iteratee2 = _slicedToArray(_iteratee, 2),\n\t\t key = _iteratee2[0],\n\t\t value = _iteratee2[1];\n\n\t\treturn _extends({}, returnObj, _defineProperty({}, key, value));\n\t}, {});\n}\n\n// copied from https://github.com/lodash/lodash/blob/master/mapValue.js\nfunction mapValue(object, iteratee) {\n\tobject = Object(object);\n\t// eslint-disable-next-line prefer-const\n\tvar result = {};\n\n\tObject.keys(object).forEach(function (key) {\n\t\tvar mappedValue = iteratee(object[key], key, object);\n\n\t\tif (isDefined(mappedValue)) {\n\t\t\tresult[key] = mappedValue;\n\t\t}\n\t});\n\treturn result;\n}\n\n// copied from https://github.com/lodash/lodash/blob/master/mapObject.js\nfunction mapObject() {\n\tvar object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\tvar iteratee = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _identity2.default;\n\n\tvar props = Object.keys(object);\n\n\t// eslint-disable-next-line prefer-const\n\tvar result = new Array(props.length);\n\n\tprops.forEach(function (key, index) {\n\t\tresult[index] = iteratee(object[key], key, object);\n\t});\n\treturn result;\n}\n\nfunction replaceAtIndex(array, index, value) {\n\tif (isDefined(array) && array.length > index) {\n\t\treturn array.slice(0, index).concat(value).concat(array.slice(index + 1));\n\t}\n\treturn array;\n}\n\n// copied from https://github.com/lodash/lodash/blob/master/forOwn.js\nfunction forOwn(obj, iteratee) {\n\tvar object = Object(obj);\n\tObject.keys(object).forEach(function (key) {\n\t\treturn iteratee(object[key], key, object);\n\t});\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericComponent2 = require(\"./GenericComponent\");\n\nvar _GenericComponent3 = _interopRequireDefault(_GenericComponent2);\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALWAYS_TRUE_TYPES = [\"drag\", \"dragend\"];\n\nvar GenericChartComponent = function (_GenericComponent) {\n\t_inherits(GenericChartComponent, _GenericComponent);\n\n\tfunction GenericChartComponent(props, context) {\n\t\t_classCallCheck(this, GenericChartComponent);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GenericChartComponent.__proto__ || Object.getPrototypeOf(GenericChartComponent)).call(this, props, context));\n\n\t\t_this.preCanvasDraw = _this.preCanvasDraw.bind(_this);\n\t\t_this.postCanvasDraw = _this.postCanvasDraw.bind(_this);\n\t\t_this.shouldTypeProceed = _this.shouldTypeProceed.bind(_this);\n\t\t_this.preEvaluate = _this.preEvaluate.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(GenericChartComponent, [{\n\t\tkey: \"preCanvasDraw\",\n\t\tvalue: function preCanvasDraw(ctx, moreProps) {\n\t\t\t_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), \"preCanvasDraw\", this).call(this, ctx, moreProps);\n\t\t\tctx.save();\n\t\t\tvar _context = this.context,\n\t\t\t margin = _context.margin,\n\t\t\t ratio = _context.ratio;\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\n\n\t\t\tvar canvasOriginX = 0.5 * ratio + chartConfig.origin[0] + margin.left;\n\t\t\tvar canvasOriginY = 0.5 * ratio + chartConfig.origin[1] + margin.top;\n\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\t\t\tvar _props = this.props,\n\t\t\t clip = _props.clip,\n\t\t\t edgeClip = _props.edgeClip;\n\n\n\t\t\tctx.setTransform(1, 0, 0, 1, 0, 0);\n\t\t\tctx.scale(ratio, ratio);\n\t\t\tif (edgeClip) {\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.rect(-1, canvasOriginY - 10, width + margin.left + margin.right + 1, height + 20);\n\t\t\t\tctx.clip();\n\t\t\t}\n\n\t\t\tctx.translate(canvasOriginX, canvasOriginY);\n\n\t\t\tif (clip) {\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.rect(-1, -1, width + 1, height + 1);\n\t\t\t\tctx.clip();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"postCanvasDraw\",\n\t\tvalue: function postCanvasDraw(ctx, moreProps) {\n\t\t\t_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), \"postCanvasDraw\", this).call(this, ctx, moreProps);\n\t\t\tctx.restore();\n\t\t}\n\t}, {\n\t\tkey: \"updateMoreProps\",\n\t\tvalue: function updateMoreProps(moreProps) {\n\t\t\t_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), \"updateMoreProps\", this).call(this, moreProps);\n\t\t\tvar chartConfigList = moreProps.chartConfig;\n\n\n\t\t\tif (chartConfigList && Array.isArray(chartConfigList)) {\n\t\t\t\tvar chartId = this.context.chartId;\n\n\t\t\t\tvar chartConfig = (0, _utils.find)(chartConfigList, function (each) {\n\t\t\t\t\treturn each.id === chartId;\n\t\t\t\t});\n\t\t\t\tthis.moreProps.chartConfig = chartConfig;\n\t\t\t}\n\t\t\tif ((0, _utils.isDefined)(this.moreProps.chartConfig)) {\n\t\t\t\tvar _moreProps$chartConfi2 = _slicedToArray(this.moreProps.chartConfig.origin, 2),\n\t\t\t\t ox = _moreProps$chartConfi2[0],\n\t\t\t\t oy = _moreProps$chartConfi2[1];\n\n\t\t\t\tif ((0, _utils.isDefined)(moreProps.mouseXY)) {\n\t\t\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t\t\t x = _moreProps$mouseXY[0],\n\t\t\t\t\t y = _moreProps$mouseXY[1];\n\n\t\t\t\t\tthis.moreProps.mouseXY = [x - ox, y - oy];\n\t\t\t\t}\n\t\t\t\tif ((0, _utils.isDefined)(moreProps.startPos)) {\n\t\t\t\t\tvar _moreProps$startPos = _slicedToArray(moreProps.startPos, 2),\n\t\t\t\t\t _x = _moreProps$startPos[0],\n\t\t\t\t\t _y = _moreProps$startPos[1];\n\n\t\t\t\t\tthis.moreProps.startPos = [_x - ox, _y - oy];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"preEvaluate\",\n\t\tvalue: function preEvaluate() /* type, moreProps */{\n\t\t\t/* if (\n \ttype === \"mousemove\"\n \t&& this.props.onMouseMove\n \t&& isDefined(moreProps)\n \t&& isDefined(moreProps.currentCharts)\n ) {\n \tif (moreProps.currentCharts.indexOf(this.context.chartId) === -1) {\n \t\tmoreProps.show = false;\n \t}\n } */\n\t\t}\n\t}, {\n\t\tkey: \"shouldTypeProceed\",\n\t\tvalue: function shouldTypeProceed(type, moreProps) {\n\t\t\tif ((type === \"mousemove\" || type === \"click\") && this.props.disablePan) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (ALWAYS_TRUE_TYPES.indexOf(type) === -1 && (0, _utils.isDefined)(moreProps) && (0, _utils.isDefined)(moreProps.currentCharts)) {\n\t\t\t\treturn moreProps.currentCharts.indexOf(this.context.chartId) > -1;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t}]);\n\n\treturn GenericChartComponent;\n}(_GenericComponent3.default);\n\nGenericChartComponent.propTypes = _GenericComponent3.default.propTypes;\n\nGenericChartComponent.defaultProps = _GenericComponent3.default.defaultProps;\n\nGenericChartComponent.contextTypes = _extends({}, _GenericComponent3.default.contextTypes, {\n\tcanvasOriginX: _propTypes2.default.number,\n\tcanvasOriginY: _propTypes2.default.number,\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,\n\tchartConfig: _propTypes2.default.object.isRequired,\n\tratio: _propTypes2.default.number.isRequired\n});\n\nexports.default = GenericChartComponent;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.getAxisCanvas = getAxisCanvas;\nexports.getMouseCanvas = getMouseCanvas;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar aliases = {\n\tmouseleave: \"mousemove\", // to draw interactive after mouse exit\n\tpanend: \"pan\",\n\tpinchzoom: \"pan\",\n\tmousedown: \"mousemove\",\n\tclick: \"mousemove\",\n\tcontextmenu: \"mousemove\",\n\tdblclick: \"mousemove\",\n\tdragstart: \"drag\",\n\tdragend: \"drag\",\n\tdragcancel: \"drag\"\n};\n\nvar GenericComponent = function (_Component) {\n\t_inherits(GenericComponent, _Component);\n\n\tfunction GenericComponent(props, context) {\n\t\t_classCallCheck(this, GenericComponent);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GenericComponent.__proto__ || Object.getPrototypeOf(GenericComponent)).call(this, props, context));\n\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.getMoreProps = _this.getMoreProps.bind(_this);\n\t\t_this.listener = _this.listener.bind(_this);\n\t\t_this.draw = _this.draw.bind(_this);\n\t\t_this.updateMoreProps = _this.updateMoreProps.bind(_this);\n\t\t_this.evaluateType = _this.evaluateType.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\t_this.preCanvasDraw = _this.preCanvasDraw.bind(_this);\n\t\t_this.postCanvasDraw = _this.postCanvasDraw.bind(_this);\n\t\t_this.getPanConditions = _this.getPanConditions.bind(_this);\n\t\t_this.shouldTypeProceed = _this.shouldTypeProceed.bind(_this);\n\t\t_this.preEvaluate = _this.preEvaluate.bind(_this);\n\n\t\tvar generateSubscriptionId = context.generateSubscriptionId;\n\n\t\t_this.suscriberId = generateSubscriptionId();\n\n\t\t_this.moreProps = {};\n\n\t\t_this.state = {\n\t\t\tupdateCount: 0\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(GenericComponent, [{\n\t\tkey: \"updateMoreProps\",\n\t\tvalue: function updateMoreProps(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tObject.keys(moreProps).forEach(function (key) {\n\t\t\t\t_this2.moreProps[key] = moreProps[key];\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"shouldTypeProceed\",\n\t\tvalue: function shouldTypeProceed() {\n\t\t\treturn true;\n\t\t}\n\t}, {\n\t\tkey: \"preEvaluate\",\n\t\tvalue: function preEvaluate() {}\n\t}, {\n\t\tkey: \"listener\",\n\t\tvalue: function listener(type, moreProps, state, e) {\n\t\t\t// console.log(e.shiftKey)\n\t\t\tif ((0, _utils.isDefined)(moreProps)) {\n\t\t\t\tthis.updateMoreProps(moreProps);\n\t\t\t}\n\t\t\tthis.evaluationInProgress = true;\n\t\t\tthis.evaluateType(type, e);\n\t\t\tthis.evaluationInProgress = false;\n\t\t}\n\t}, {\n\t\tkey: \"evaluateType\",\n\t\tvalue: function evaluateType(type, e) {\n\t\t\tvar newType = aliases[type] || type;\n\t\t\tvar proceed = this.props.drawOn.indexOf(newType) > -1;\n\n\t\t\t// console.log(\"type ->\", type, proceed);\n\n\t\t\tif (!proceed) return;\n\t\t\t// const moreProps = this.getMoreProps();\n\t\t\tthis.preEvaluate(type, this.moreProps, e);\n\t\t\tif (!this.shouldTypeProceed(type, this.moreProps)) return;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase \"zoom\":\n\t\t\t\tcase \"mouseenter\":\n\t\t\t\t\t// DO NOT DRAW FOR THESE EVENTS\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"mouseleave\":\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moreProps.hovering = false;\n\t\t\t\t\t\tvar moreProps = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.props.onUnHover) {\n\t\t\t\t\t\t\tthis.props.onUnHover(moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"contextmenu\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onContextMenu) {\n\t\t\t\t\t\t\tthis.props.onContextMenu(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.moreProps.hovering && this.props.onContextMenuWhenHover) {\n\t\t\t\t\t\t\tthis.props.onContextMenuWhenHover(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"mousedown\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onMouseDown) {\n\t\t\t\t\t\t\tthis.props.onMouseDown(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"click\":\n\t\t\t\t\t{\n\t\t\t\t\t\tvar _moreProps = this.getMoreProps();\n\t\t\t\t\t\tif (this.moreProps.hovering) {\n\t\t\t\t\t\t\t// console.error(\"TODO use this only for SAR, Line series\")\n\t\t\t\t\t\t\tthis.props.onClickWhenHover(_moreProps, e);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.props.onClickOutside(_moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.props.onClick) {\n\t\t\t\t\t\t\tthis.props.onClick(_moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"mousemove\":\n\t\t\t\t\t{\n\n\t\t\t\t\t\tvar prevHover = this.moreProps.hovering;\n\t\t\t\t\t\tthis.moreProps.hovering = this.isHover(e);\n\n\t\t\t\t\t\tvar _context = this.context,\n\t\t\t\t\t\t amIOnTop = _context.amIOnTop,\n\t\t\t\t\t\t setCursorClass = _context.setCursorClass;\n\n\n\t\t\t\t\t\tif (this.moreProps.hovering && !this.props.selected\n\t\t\t\t\t\t/* && !prevHover */\n\t\t\t\t\t\t&& amIOnTop(this.suscriberId) && (0, _utils.isDefined)(this.props.onHover)) {\n\t\t\t\t\t\t\tsetCursorClass(\"react-stockcharts-pointer-cursor\");\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\t\t} else if (this.moreProps.hovering && this.props.selected && amIOnTop(this.suscriberId)) {\n\t\t\t\t\t\t\tsetCursorClass(this.props.interactiveCursorClass);\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\t\t} else if (prevHover && !this.moreProps.hovering && this.iSetTheCursorClass) {\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = false;\n\t\t\t\t\t\t\tsetCursorClass(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar _moreProps2 = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.moreProps.hovering && !prevHover) {\n\t\t\t\t\t\t\tif (this.props.onHover) {\n\t\t\t\t\t\t\t\tthis.props.onHover(_moreProps2, e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (prevHover && !this.moreProps.hovering) {\n\t\t\t\t\t\t\tif (this.props.onUnHover) {\n\t\t\t\t\t\t\t\tthis.props.onUnHover(_moreProps2, e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.props.onMouseMove) {\n\t\t\t\t\t\t\tthis.props.onMouseMove(_moreProps2, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dblclick\":\n\t\t\t\t\t{\n\t\t\t\t\t\tvar _moreProps3 = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.props.onDoubleClick) {\n\t\t\t\t\t\t\tthis.props.onDoubleClick(_moreProps3, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.moreProps.hovering && this.props.onDoubleClickWhenHover) {\n\t\t\t\t\t\t\tthis.props.onDoubleClickWhenHover(_moreProps3, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"pan\":\n\t\t\t\t\t{\n this.moreProps.hovering = false;\n\t\t\t\t\t\tif (this.props.onPan) {\n\t\t\t\t\t\t\tthis.props.onPan(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"panend\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onPanEnd) {\n\t\t\t\t\t\t\tthis.props.onPanEnd(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragstart\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.getPanConditions().draggable) {\n\t\t\t\t\t\t\tvar _amIOnTop = this.context.amIOnTop;\n\n\t\t\t\t\t\t\tif (_amIOnTop(this.suscriberId)) {\n\t\t\t\t\t\t\t\tthis.dragInProgress = true;\n\t\t\t\t\t\t\t\tthis.props.onDragStart(this.getMoreProps(), e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.someDragInProgress = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"drag\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress && this.props.onDrag) {\n \n\t\t\t\t\t\t\tthis.props.onDrag(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragend\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress && this.props.onDragComplete) {\n\t\t\t\t\t\t\tthis.props.onDragComplete(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.dragInProgress = false;\n\t\t\t\t\t\tthis.someDragInProgress = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragcancel\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress || this.iSetTheCursorClass) {\n\t\t\t\t\t\t\tvar _setCursorClass = this.context.setCursorClass;\n\n\t\t\t\t\t\t\t_setCursorClass(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(e) {\n\t\t\treturn (0, _utils.isDefined)(this.props.isHover) ? this.props.isHover(this.getMoreProps(), e) : false;\n\t\t}\n\t}, {\n\t\tkey: \"getPanConditions\",\n\t\tvalue: function getPanConditions() {\n\t\t\tvar draggable = !!(this.props.selected && this.moreProps.hovering) || this.props.enableDragOnHover && this.moreProps.hovering;\n\n\t\t\treturn {\n\t\t\t\tdraggable: draggable,\n\t\t\t\tpanEnabled: !this.props.disablePan\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"draw\",\n\t\tvalue: function draw() {\n\t\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { force: false },\n\t\t\t trigger = _ref.trigger,\n\t\t\t force = _ref.force;\n\n\t\t\tvar type = aliases[trigger] || trigger;\n\t\t\tvar proceed = this.props.drawOn.indexOf(type) > -1;\n\n\t\t\tif (proceed || this.props.selected /* this is to draw as soon as you select */\n\t\t\t|| force) {\n\t\t\t\tvar chartCanvasType = this.context.chartCanvasType;\n\t\t\t\tvar canvasDraw = this.props.canvasDraw;\n \n\n\t\t\t\tif ((0, _utils.isNotDefined)(canvasDraw) || chartCanvasType === \"svg\") {\n\t\t\t\t\tvar updateCount = this.state.updateCount;\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tupdateCount: updateCount + 1\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.drawOnCanvas();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tvar _context2 = this.context,\n\t\t\t subscribe = _context2.subscribe,\n\t\t\t chartId = _context2.chartId;\n\t\t\tvar _props = this.props,\n\t\t\t clip = _props.clip,\n\t\t\t edgeClip = _props.edgeClip;\n\n\n\t\t\tsubscribe(this.suscriberId, {\n\t\t\t\tchartId: chartId, clip: clip, edgeClip: edgeClip,\n\t\t\t\tlistener: this.listener,\n\t\t\t\tdraw: this.draw,\n\t\t\t\tgetPanConditions: this.getPanConditions\n\t\t\t});\n\t\t\tthis.componentWillReceiveProps(this.props, this.context);\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\tvar unsubscribe = this.context.unsubscribe;\n\n\t\t\tunsubscribe(this.suscriberId);\n\t\t\tif (this.iSetTheCursorClass) {\n\t\t\t\tvar setCursorClass = this.context.setCursorClass;\n\n\t\t\t\tsetCursorClass(null);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.componentDidUpdate(this.props);\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate(prevProps) {\n\t\t\tvar chartCanvasType = this.context.chartCanvasType;\n\t\t\tvar _props2 = this.props,\n\t\t\t canvasDraw = _props2.canvasDraw,\n\t\t\t selected = _props2.selected,\n\t\t\t interactiveCursorClass = _props2.interactiveCursorClass;\n\n\n\t\t\tif (prevProps.selected !== selected) {\n\t\t\t\tvar setCursorClass = this.context.setCursorClass;\n\n\t\t\t\tif (selected && this.moreProps.hovering) {\n\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\tsetCursorClass(interactiveCursorClass);\n\t\t\t\t} else {\n\t\t\t\t\tthis.iSetTheCursorClass = false;\n\t\t\t\t\tsetCursorClass(null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ((0, _utils.isDefined)(canvasDraw) && !this.evaluationInProgress\n\t\t\t// && !(this.someDragInProgress && this.props.selected)\n\t\t\t/*\n prevent double draw of interactive elements\n during dragging / hover / click etc.\n */\n\t\t\t&& chartCanvasType !== \"svg\") {\n\n\t\t\t\tthis.updateMoreProps(this.moreProps);\n\t\t\t\tthis.drawOnCanvas();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillReceiveProps\",\n\t\tvalue: function componentWillReceiveProps(nextProps, nextContext) {\n\t\t\tvar xScale = nextContext.xScale,\n\t\t\t plotData = nextContext.plotData,\n\t\t\t chartConfig = nextContext.chartConfig,\n\t\t\t getMutableState = nextContext.getMutableState;\n\n\n\t\t\tthis.props.debug(nextContext);\n\t\t\tthis.moreProps = _extends({}, this.moreProps, getMutableState(), {\n\t\t\t\t/*\n ^ this is so\n mouseXY, currentCharts, currentItem are available to\n newly created components like MouseHoverText which\n is created right after a new interactive object is drawn\n */\n\t\t\t\txScale: xScale, plotData: plotData, chartConfig: chartConfig\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"getMoreProps\",\n\t\tvalue: function getMoreProps() {\n\t\t\tvar _context3 = this.context,\n\t\t\t xScale = _context3.xScale,\n\t\t\t plotData = _context3.plotData,\n\t\t\t chartConfig = _context3.chartConfig,\n\t\t\t morePropsDecorator = _context3.morePropsDecorator,\n\t\t\t xAccessor = _context3.xAccessor,\n\t\t\t displayXAccessor = _context3.displayXAccessor,\n\t\t\t width = _context3.width,\n\t\t\t height = _context3.height;\n\t\t\tvar _context4 = this.context,\n\t\t\t chartId = _context4.chartId,\n\t\t\t fullData = _context4.fullData;\n\n\n\t\t\tvar moreProps = _extends({\n\t\t\t\txScale: xScale, plotData: plotData, chartConfig: chartConfig,\n\t\t\t\txAccessor: xAccessor, displayXAccessor: displayXAccessor,\n\t\t\t\twidth: width, height: height,\n\t\t\t\tchartId: chartId,\n\t\t\t\tfullData: fullData\n\t\t\t}, this.moreProps);\n\n\t\t\treturn (morePropsDecorator || _utils.identity)(moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"preCanvasDraw\", \n\t\tvalue: function preCanvasDraw() {\n\t\t\t// do nothing\n\t\t}\n\t}, {\n\t\tkey: \"postCanvasDraw\",\n\t\tvalue: function postCanvasDraw() {}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas() {\n \n\t\t\tvar _props3 = this.props,\n\t\t\t canvasDraw = _props3.canvasDraw,\n\t\t\t canvasToDraw = _props3.canvasToDraw;\n\t\t\tvar getCanvasContexts = this.context.getCanvasContexts;\n\n\n\t\t\tvar moreProps = this.getMoreProps();\n\n\t\t\tvar ctx = canvasToDraw(getCanvasContexts());\n\n\t\t\tthis.preCanvasDraw(ctx, moreProps);\n\t\t\tcanvasDraw(ctx, moreProps);\n\t\t\tthis.postCanvasDraw(ctx, moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _context5 = this.context,\n\t\t\t chartCanvasType = _context5.chartCanvasType,\n\t\t\t chartId = _context5.chartId;\n\t\t\tvar _props4 = this.props,\n\t\t\t canvasDraw = _props4.canvasDraw,\n\t\t\t clip = _props4.clip,\n\t\t\t svgDraw = _props4.svgDraw;\n\n\n\t\t\tif ((0, _utils.isDefined)(canvasDraw) && chartCanvasType !== \"svg\") {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar suffix = (0, _utils.isDefined)(chartId) ? \"-\" + chartId : \"\";\n\n\t\t\tvar style = clip ? { \"clipPath\": \"url(#chart-area-clip\" + suffix + \")\" } : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ style: style },\n\t\t\t\tsvgDraw(this.getMoreProps())\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn GenericComponent;\n}(_react.Component);\n\nGenericComponent.propTypes = {\n\tsvgDraw: _propTypes2.default.func.isRequired,\n\tcanvasDraw: _propTypes2.default.func,\n\n\tdrawOn: _propTypes2.default.array.isRequired,\n\n\tclip: _propTypes2.default.bool.isRequired,\n\tedgeClip: _propTypes2.default.bool.isRequired,\n\tinteractiveCursorClass: _propTypes2.default.string,\n\n\tselected: _propTypes2.default.bool.isRequired,\n\tenableDragOnHover: _propTypes2.default.bool.isRequired,\n\tdisablePan: _propTypes2.default.bool.isRequired,\n\n\tcanvasToDraw: _propTypes2.default.func.isRequired,\n\n\tisHover: _propTypes2.default.func,\n\n\tonClick: _propTypes2.default.func,\n\tonClickWhenHover: _propTypes2.default.func,\n\tonClickOutside: _propTypes2.default.func,\n\n\tonPan: _propTypes2.default.func,\n\tonPanEnd: _propTypes2.default.func,\n\tonDragStart: _propTypes2.default.func,\n\tonDrag: _propTypes2.default.func,\n\tonDragComplete: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func,\n\tonDoubleClickWhenHover: _propTypes2.default.func,\n\tonContextMenu: _propTypes2.default.func,\n\tonContextMenuWhenHover: _propTypes2.default.func,\n\tonMouseMove: _propTypes2.default.func,\n\tonMouseDown: _propTypes2.default.func,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdebug: _propTypes2.default.func\n\t// owner: PropTypes.string.isRequired,\n};\n\nGenericComponent.defaultProps = {\n\tsvgDraw: (0, _utils.functor)(null),\n\tdraw: [],\n\tcanvasToDraw: function canvasToDraw(contexts) {\n\t\treturn contexts.mouseCoord;\n\t},\n\tclip: true,\n\tedgeClip: false,\n\tselected: false,\n\tdisablePan: false,\n\tenableDragOnHover: false,\n\n\tonClickWhenHover: _utils.noop,\n\tonClickOutside: _utils.noop,\n\tonDragStart: _utils.noop,\n\tonMouseMove: _utils.noop,\n\tonMouseDown: _utils.noop,\n\tdebug: _utils.noop\n};\n\nGenericComponent.contextTypes = {\n\twidth: _propTypes2.default.number.isRequired,\n\theight: _propTypes2.default.number.isRequired,\n\tmargin: _propTypes2.default.object.isRequired,\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\tgetCanvasContexts: _propTypes2.default.func,\n\n\tchartCanvasType: _propTypes2.default.string,\n\txScale: _propTypes2.default.func.isRequired,\n\txAccessor: _propTypes2.default.func.isRequired,\n\tdisplayXAccessor: _propTypes2.default.func.isRequired,\n\tplotData: _propTypes2.default.array.isRequired,\n\tfullData: _propTypes2.default.array.isRequired,\n\n\tchartConfig: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]).isRequired,\n\n\tmorePropsDecorator: _propTypes2.default.func,\n\tgenerateSubscriptionId: _propTypes2.default.func,\n\tgetMutableState: _propTypes2.default.func.isRequired,\n\n\tamIOnTop: _propTypes2.default.func.isRequired,\n\tsubscribe: _propTypes2.default.func.isRequired,\n\tunsubscribe: _propTypes2.default.func.isRequired,\n\tsetCursorClass: _propTypes2.default.func.isRequired\n};\n\nexports.default = GenericComponent;\nfunction getAxisCanvas(contexts) {\n\treturn contexts.axes;\n}\n\nfunction getMouseCanvas(contexts) {\n\treturn contexts.mouseCoord;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _EdgeIndicator = require(\"./EdgeIndicator\");\n\nObject.defineProperty(exports, \"EdgeIndicator\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EdgeIndicator).default;\n }\n});\n\nvar _CurrentCoordinate = require(\"./CurrentCoordinate\");\n\nObject.defineProperty(exports, \"CurrentCoordinate\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_CurrentCoordinate).default;\n }\n});\n\nvar _MouseCoordinateX = require(\"./MouseCoordinateX\");\n\nObject.defineProperty(exports, \"MouseCoordinateX\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_MouseCoordinateX).default;\n }\n});\n\nvar _MouseCoordinateXV = require(\"./MouseCoordinateXV2\");\n\nObject.defineProperty(exports, \"MouseCoordinateXV2\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_MouseCoordinateXV).default;\n }\n});\n\nvar _MouseCoordinateY = require(\"./MouseCoordinateY\");\n\nObject.defineProperty(exports, \"MouseCoordinateY\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_MouseCoordinateY).default;\n }\n});\n\nvar _CrossHairCursor = require(\"./CrossHairCursor\");\n\nObject.defineProperty(exports, \"CrossHairCursor\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_CrossHairCursor).default;\n }\n});\n\nvar _PriceCoordinate = require(\"./PriceCoordinate\");\n\nObject.defineProperty(exports, \"PriceCoordinate\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_PriceCoordinate).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AreaSeries = require(\"./AreaSeries\");\n\nObject.defineProperty(exports, \"AreaSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_AreaSeries).default;\n }\n});\n\nvar _AlternatingFillAreaSeries = require(\"./AlternatingFillAreaSeries\");\n\nObject.defineProperty(exports, \"AlternatingFillAreaSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_AlternatingFillAreaSeries).default;\n }\n});\n\nvar _AreaOnlySeries = require(\"./AreaOnlySeries\");\n\nObject.defineProperty(exports, \"AreaOnlySeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_AreaOnlySeries).default;\n }\n});\n\nvar _ScatterSeries = require(\"./ScatterSeries\");\n\nObject.defineProperty(exports, \"ScatterSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ScatterSeries).default;\n }\n});\n\nvar _CircleMarker = require(\"./CircleMarker\");\n\nObject.defineProperty(exports, \"CircleMarker\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_CircleMarker).default;\n }\n});\n\nvar _TriangleMarker = require(\"./TriangleMarker\");\n\nObject.defineProperty(exports, \"TriangleMarker\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_TriangleMarker).default;\n }\n});\n\nvar _SquareMarker = require(\"./SquareMarker\");\n\nObject.defineProperty(exports, \"SquareMarker\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_SquareMarker).default;\n }\n});\n\nvar _LineSeries = require(\"./LineSeries\");\n\nObject.defineProperty(exports, \"LineSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_LineSeries).default;\n }\n});\n\nvar _CandlestickSeries = require(\"./CandlestickSeries\");\n\nObject.defineProperty(exports, \"CandlestickSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_CandlestickSeries).default;\n }\n});\n\nvar _OHLCSeries = require(\"./OHLCSeries\");\n\nObject.defineProperty(exports, \"OHLCSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_OHLCSeries).default;\n }\n});\n\nvar _BarSeries = require(\"./BarSeries\");\n\nObject.defineProperty(exports, \"BarSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_BarSeries).default;\n }\n});\n\nvar _StackedBarSeries = require(\"./StackedBarSeries\");\n\nObject.defineProperty(exports, \"StackedBarSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_StackedBarSeries).default;\n }\n});\n\nvar _GroupedBarSeries = require(\"./GroupedBarSeries\");\n\nObject.defineProperty(exports, \"GroupedBarSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_GroupedBarSeries).default;\n }\n});\n\nvar _KagiSeries = require(\"./KagiSeries\");\n\nObject.defineProperty(exports, \"KagiSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_KagiSeries).default;\n }\n});\n\nvar _PointAndFigureSeries = require(\"./PointAndFigureSeries\");\n\nObject.defineProperty(exports, \"PointAndFigureSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_PointAndFigureSeries).default;\n }\n});\n\nvar _RenkoSeries = require(\"./RenkoSeries\");\n\nObject.defineProperty(exports, \"RenkoSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_RenkoSeries).default;\n }\n});\n\nvar _MACDSeries = require(\"./MACDSeries\");\n\nObject.defineProperty(exports, \"MACDSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_MACDSeries).default;\n }\n});\n\nvar _BollingerSeries = require(\"./BollingerSeries\");\n\nObject.defineProperty(exports, \"BollingerSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_BollingerSeries).default;\n }\n});\n\nvar _RSISeries = require(\"./RSISeries\");\n\nObject.defineProperty(exports, \"RSISeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_RSISeries).default;\n }\n});\n\nvar _StochasticSeries = require(\"./StochasticSeries\");\n\nObject.defineProperty(exports, \"StochasticSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_StochasticSeries).default;\n }\n});\n\nvar _ElderRaySeries = require(\"./ElderRaySeries\");\n\nObject.defineProperty(exports, \"ElderRaySeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ElderRaySeries).default;\n }\n});\n\nvar _VolumeProfileSeries = require(\"./VolumeProfileSeries\");\n\nObject.defineProperty(exports, \"VolumeProfileSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_VolumeProfileSeries).default;\n }\n});\n\nvar _StraightLine = require(\"./StraightLine\");\n\nObject.defineProperty(exports, \"StraightLine\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_StraightLine).default;\n }\n});\n\nvar _SARSeries = require(\"./SARSeries\");\n\nObject.defineProperty(exports, \"SARSeries\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_SARSeries).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.defaultOptionsForAppearance = exports.defaultOptionsForComputation = exports.compare = exports.elderImpulse = exports.change = exports.elderRay = exports.sar = exports.forceIndex = exports.stochasticOscillator = exports.atr = exports.rsi = exports.macd = exports.renko = exports.pointAndFigure = exports.kagi = exports.heikinAshi = exports.bollingerBand = exports.tma = exports.wma = exports.sma = exports.ema = undefined;\n\nvar _ema = require(\"./ema\");\n\nObject.defineProperty(exports, \"ema\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_ema).default;\n\t}\n});\n\nvar _sma = require(\"./sma\");\n\nObject.defineProperty(exports, \"sma\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_sma).default;\n\t}\n});\n\nvar _wma = require(\"./wma\");\n\nObject.defineProperty(exports, \"wma\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_wma).default;\n\t}\n});\n\nvar _tma = require(\"./tma\");\n\nObject.defineProperty(exports, \"tma\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_tma).default;\n\t}\n});\n\nvar _bollingerBand = require(\"./bollingerBand\");\n\nObject.defineProperty(exports, \"bollingerBand\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_bollingerBand).default;\n\t}\n});\n\nvar _heikinAshi = require(\"./heikinAshi\");\n\nObject.defineProperty(exports, \"heikinAshi\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_heikinAshi).default;\n\t}\n});\n\nvar _kagi = require(\"./kagi\");\n\nObject.defineProperty(exports, \"kagi\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_kagi).default;\n\t}\n});\n\nvar _pointAndFigure = require(\"./pointAndFigure\");\n\nObject.defineProperty(exports, \"pointAndFigure\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_pointAndFigure).default;\n\t}\n});\n\nvar _renko = require(\"./renko\");\n\nObject.defineProperty(exports, \"renko\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_renko).default;\n\t}\n});\n\nvar _macd = require(\"./macd\");\n\nObject.defineProperty(exports, \"macd\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_macd).default;\n\t}\n});\n\nvar _rsi = require(\"./rsi\");\n\nObject.defineProperty(exports, \"rsi\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_rsi).default;\n\t}\n});\n\nvar _atr = require(\"./atr\");\n\nObject.defineProperty(exports, \"atr\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_atr).default;\n\t}\n});\n\nvar _stochasticOscillator = require(\"./stochasticOscillator\");\n\nObject.defineProperty(exports, \"stochasticOscillator\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_stochasticOscillator).default;\n\t}\n});\n\nvar _forceIndex = require(\"./forceIndex\");\n\nObject.defineProperty(exports, \"forceIndex\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_forceIndex).default;\n\t}\n});\n\nvar _sar = require(\"./sar\");\n\nObject.defineProperty(exports, \"sar\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_sar).default;\n\t}\n});\n\nvar _elderRay = require(\"./elderRay\");\n\nObject.defineProperty(exports, \"elderRay\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_elderRay).default;\n\t}\n});\n\nvar _change = require(\"./change\");\n\nObject.defineProperty(exports, \"change\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_change).default;\n\t}\n});\n\nvar _elderImpulse = require(\"./elderImpulse\");\n\nObject.defineProperty(exports, \"elderImpulse\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_elderImpulse).default;\n\t}\n});\n\nvar _compare = require(\"./compare\");\n\nObject.defineProperty(exports, \"compare\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_compare).default;\n\t}\n});\n\nvar _defaultOptionsForComputation = require(\"../calculator/defaultOptionsForComputation\");\n\nvar defaultOptionsForComputation = _interopRequireWildcard(_defaultOptionsForComputation);\n\nvar _defaultOptionsForAppearance = require(\"./defaultOptionsForAppearance\");\n\nvar defaultOptionsForAppearance = _interopRequireWildcard(_defaultOptionsForAppearance);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.defaultOptionsForComputation = defaultOptionsForComputation;\nexports.defaultOptionsForAppearance = defaultOptionsForAppearance;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar BollingerBand = exports.BollingerBand = {\n\twindowSize: 20,\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\",\n\tmultiplier: 2,\n\tmovingAverageType: \"sma\"\n};\n\nvar ATR = exports.ATR = {\n\twindowSize: 14\n};\n\nvar ForceIndex = exports.ForceIndex = {\n\tsourcePath: \"close\", // \"high\", \"low\", \"open\", \"close\"\n\tvolumePath: \"volume\"\n};\nvar SmoothedForceIndex = exports.SmoothedForceIndex = {\n\tsourcePath: \"close\", // \"high\", \"low\", \"open\", \"close\"\n\tvolumePath: \"volume\",\n\tsmoothingType: \"ema\",\n\tsmoothingWindow: 13\n};\nvar Change = exports.Change = {\n\tsourcePath: \"close\" // \"high\", \"low\", \"open\", \"close\"\n};\nvar Compare = exports.Compare = {\n\tbasePath: \"close\",\n\tmainKeys: [\"open\", \"high\", \"low\", \"close\"],\n\tcompareKeys: []\n};\n\nvar ElderRay = exports.ElderRay = {\n\twindowSize: 13,\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\", // \"high\", \"low\", \"open\", \"close\"\n\tmovingAverageType: \"sma\"\n};\n\nvar ElderImpulse = exports.ElderImpulse = {\n\tsourcePath: \"close\" // \"high\", \"low\", \"open\", \"close\"\n};\n\nvar SAR = exports.SAR = {\n\taccelerationFactor: 0.02,\n\tmaxAccelerationFactor: 0.2\n};\n\nvar MACD = exports.MACD = {\n\tfast: 12,\n\tslow: 26,\n\tsignal: 9,\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\"\n};\n\nvar FullStochasticOscillator = exports.FullStochasticOscillator = {\n\twindowSize: 12,\n\tkWindowSize: 3,\n\tdWindowSize: 3\n};\n\nvar RSI = exports.RSI = {\n\twindowSize: 14,\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\" // \"high\", \"low\", \"open\", \"close\"\n};\n\nvar EMA = exports.EMA = {\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\",\n\twindowSize: 10\n};\n\nvar SMA = exports.SMA = {\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\",\n\twindowSize: 10\n};\n\nvar WMA = exports.WMA = {\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\",\n\twindowSize: 10\n};\n\nvar TMA = exports.TMA = {\n\t// source: d => d.close, // \"high\", \"low\", \"open\", \"close\"\n\tsourcePath: \"close\",\n\twindowSize: 10\n};\n\nvar Kagi = exports.Kagi = {\n\treversalType: \"ATR\", // \"ATR\", \"FIXED\"\n\twindowSize: 14,\n\treversal: 2,\n\tsourcePath: \"close\" // \"high\", \"low\", \"open\", \"close\"\n\t/* dateAccessor: d => d.date,\n dateMutator: (d, date) => { d.date = date; }, */\n};\n\nvar Renko = exports.Renko = {\n\treversalType: \"ATR\", // \"ATR\", \"FIXED\"\n\twindowSize: 14,\n\tfixedBrickSize: 2,\n\tsourcePath: \"high/low\" // \"close\", \"high/low\"\n\t/* source: d => ({ high: d.high, low: d.low }),\n dateAccessor: d => d.date,\n dateMutator: (d, date) => { d.date = date; }, */\n};\n\nvar PointAndFigure = exports.PointAndFigure = {\n\tboxSize: 0.5,\n\treversal: 3,\n\tsourcePath: \"high/low\" // \"close\", \"high/low\"\n\n\t/* source: d => ({ high: d.high, low: d.low }), // \"close\", \"hi/lo\"\n dateAccessor: d => d.date,\n dateMutator: (d, date) => { d.date = date; }, */\n};\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar id = i++,\n\t accessor = void 0,\n\t stroke = void 0,\n\t fill = void 0,\n\t echo = void 0,\n\t type = void 0;\n\n\tfunction baseIndicator() {}\n\n\tbaseIndicator.id = function (x) {\n\t\tif (!arguments.length) return id;\n\t\tid = x;\n\t\treturn baseIndicator;\n\t};\n\tbaseIndicator.accessor = function (x) {\n\t\tif (!arguments.length) return accessor;\n\t\taccessor = x;\n\t\treturn baseIndicator;\n\t};\n\tbaseIndicator.stroke = function (x) {\n\t\tif (!arguments.length) return !stroke ? stroke = (0, _utils.overlayColors)(id) : stroke;\n\t\tstroke = x;\n\t\treturn baseIndicator;\n\t};\n\tbaseIndicator.fill = function (x) {\n\t\tif (!arguments.length) return !fill ? fill = (0, _utils.overlayColors)(id) : fill;\n\t\tfill = x;\n\t\treturn baseIndicator;\n\t};\n\tbaseIndicator.echo = function (x) {\n\t\tif (!arguments.length) return echo;\n\t\techo = x;\n\t\treturn baseIndicator;\n\t};\n\tbaseIndicator.type = function (x) {\n\t\tif (!arguments.length) return type;\n\t\ttype = x;\n\t\treturn baseIndicator;\n\t};\n\treturn baseIndicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar i = 0;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ema = require(\"./ema\");\n\nObject.defineProperty(exports, \"ema\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ema).default;\n }\n});\n\nvar _sma = require(\"./sma\");\n\nObject.defineProperty(exports, \"sma\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_sma).default;\n }\n});\n\nvar _wma = require(\"./wma\");\n\nObject.defineProperty(exports, \"wma\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_wma).default;\n }\n});\n\nvar _tma = require(\"./tma\");\n\nObject.defineProperty(exports, \"tma\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_tma).default;\n }\n});\n\nvar _bollingerband = require(\"./bollingerband\");\n\nObject.defineProperty(exports, \"bollingerband\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_bollingerband).default;\n }\n});\n\nvar _heikinAshi = require(\"./heikinAshi\");\n\nObject.defineProperty(exports, \"heikinAshi\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_heikinAshi).default;\n }\n});\n\nvar _kagi = require(\"./kagi\");\n\nObject.defineProperty(exports, \"kagi\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_kagi).default;\n }\n});\n\nvar _pointAndFigure = require(\"./pointAndFigure\");\n\nObject.defineProperty(exports, \"pointAndFigure\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_pointAndFigure).default;\n }\n});\n\nvar _renko = require(\"./renko\");\n\nObject.defineProperty(exports, \"renko\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_renko).default;\n }\n});\n\nvar _macd = require(\"./macd\");\n\nObject.defineProperty(exports, \"macd\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_macd).default;\n }\n});\n\nvar _rsi = require(\"./rsi\");\n\nObject.defineProperty(exports, \"rsi\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_rsi).default;\n }\n});\n\nvar _sto = require(\"./sto\");\n\nObject.defineProperty(exports, \"sto\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_sto).default;\n }\n});\n\nvar _atr = require(\"./atr\");\n\nObject.defineProperty(exports, \"atr\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_atr).default;\n }\n});\n\nvar _forceIndex = require(\"./forceIndex\");\n\nObject.defineProperty(exports, \"forceIndex\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_forceIndex).default;\n }\n});\n\nvar _smoothedForceIndex = require(\"./smoothedForceIndex\");\n\nObject.defineProperty(exports, \"smoothedForceIndex\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_smoothedForceIndex).default;\n }\n});\n\nvar _elderRay = require(\"./elderRay\");\n\nObject.defineProperty(exports, \"elderRay\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_elderRay).default;\n }\n});\n\nvar _sar = require(\"./sar\");\n\nObject.defineProperty(exports, \"sar\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_sar).default;\n }\n});\n\nvar _compare = require(\"./compare\");\n\nObject.defineProperty(exports, \"compare\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_compare).default;\n }\n});\n\nvar _change = require(\"./change\");\n\nObject.defineProperty(exports, \"change\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_change).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _XAxis = require(\"./XAxis\");\n\nObject.defineProperty(exports, \"XAxis\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_XAxis).default;\n }\n});\n\nvar _YAxis = require(\"./YAxis\");\n\nObject.defineProperty(exports, \"YAxis\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_YAxis).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.getValueFromOverride = getValueFromOverride;\nexports.terminate = terminate;\nexports.saveNodeType = saveNodeType;\nexports.isHoverForInteractiveType = isHoverForInteractiveType;\nexports.isHover = isHover;\nexports.getMorePropsForChart = getMorePropsForChart;\nexports.getSelected = getSelected;\n\nvar _utils = require(\"../utils\");\n\nfunction getValueFromOverride(override, index, key, defaultValue) {\n\tif ((0, _utils.isDefined)(override) && override.index === index) return override[key];\n\treturn defaultValue;\n}\n\nfunction terminate() {\n\tthis.setState({\n\t\tcurrent: null,\n\t\toverride: null\n\t});\n}\n\nfunction saveNodeType(type) {\n\tvar _this = this;\n\n\treturn function (node) {\n\t\tif ((0, _utils.isNotDefined)(node) && (0, _utils.isDefined)(_this.nodes[type])) {\n\t\t\tdelete _this.nodes[type];\n\t\t} else {\n\t\t\t_this.nodes[type] = node;\n\t\t}\n\t\t// console.error(this.nodes)\n\t};\n}\nfunction isHoverForInteractiveType(interactiveType) {\n\treturn function (moreProps) {\n\t\t// this has to be function as it is bound to this\n\n\t\tif ((0, _utils.isDefined)(this.nodes)) {\n\t\t\tvar selecedNodes = this.nodes.map(function (node) {\n\t\t\t\treturn node.isHover(moreProps);\n\t\t\t});\n\t\t\tvar interactive = this.props[interactiveType].map(function (t, idx) {\n\t\t\t\treturn _extends({}, t, {\n\t\t\t\t\tselected: selecedNodes[idx]\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn interactive;\n\t\t}\n\t};\n}\n\nfunction isHover(moreProps) {\n\tvar hovering = (0, _utils.mapObject)(this.nodes, function (node) {\n\t\treturn node.isHover(moreProps);\n\t}).reduce(function (a, b) {\n\t\treturn a || b;\n\t});\n\treturn hovering;\n}\n\nfunction getMouseXY(moreProps, _ref) {\n\tvar _ref2 = _slicedToArray(_ref, 2),\n\t ox = _ref2[0],\n\t oy = _ref2[1];\n\n\tif (Array.isArray(moreProps.mouseXY)) {\n\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t x = _moreProps$mouseXY[0],\n\t\t y = _moreProps$mouseXY[1];\n\n\t\tvar mouseXY = [x - ox, y - oy];\n\t\treturn mouseXY;\n\t}\n\treturn moreProps.mouseXY;\n}\n\nfunction getMorePropsForChart(moreProps, chartId) {\n\tvar chartConfigList = moreProps.chartConfig;\n\n //console.log(chartConfigList);\n\n\tvar chartConfig = (0, _utils.find)(chartConfigList, function (each) {\n\t\treturn each.id === 1;\n });\n //newly added one\n chartConfig = chartConfigList;\n //console.log(chartConfig);\n\tvar origin = chartConfig.origin;\n\n\tvar mouseXY = getMouseXY(moreProps, origin);\n\treturn _extends({}, moreProps, {\n\t\tchartConfig: chartConfig,\n\t\tmouseXY: mouseXY\n\t});\n}\n\nfunction getSelected(interactives) {\n\tvar selected = interactives.map(function (each) {\n\t\tvar objects = each.objects.filter(function (obj) {\n\t\t\treturn obj.selected;\n\t\t});\n\t\treturn _extends({}, each, {\n\t\t\tobjects: objects\n\t\t});\n\t}).filter(function (each) {\n\t\treturn each.objects.length > 0;\n\t});\n\treturn selected;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _TrendLine = require(\"./TrendLine\");\n\nObject.defineProperty(exports, \"TrendLine\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_TrendLine).default;\n }\n});\n\nvar _FibonacciRetracement = require(\"./FibonacciRetracement\");\n\nObject.defineProperty(exports, \"FibonacciRetracement\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_FibonacciRetracement).default;\n }\n});\n\nvar _EquidistantChannel = require(\"./EquidistantChannel\");\n\nObject.defineProperty(exports, \"EquidistantChannel\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EquidistantChannel).default;\n }\n});\n\nvar _StandardDeviationChannel = require(\"./StandardDeviationChannel\");\n\nObject.defineProperty(exports, \"StandardDeviationChannel\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_StandardDeviationChannel).default;\n }\n});\n\nvar _GannFan = require(\"./GannFan\");\n\nObject.defineProperty(exports, \"GannFan\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_GannFan).default;\n }\n});\n\nvar _ClickCallback = require(\"./ClickCallback\");\n\nObject.defineProperty(exports, \"ClickCallback\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ClickCallback).default;\n }\n});\n\nvar _Brush = require(\"./Brush\");\n\nObject.defineProperty(exports, \"Brush\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Brush).default;\n }\n});\n\nvar _InteractiveText = require(\"./InteractiveText\");\n\nObject.defineProperty(exports, \"InteractiveText\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_InteractiveText).default;\n }\n});\n\nvar _InteractiveYCoordinate = require(\"./InteractiveYCoordinate\");\n\nObject.defineProperty(exports, \"InteractiveYCoordinate\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_InteractiveYCoordinate).default;\n }\n});\n\nvar _DrawingObjectSelector = require(\"./DrawingObjectSelector\");\n\nObject.defineProperty(exports, \"DrawingObjectSelector\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_DrawingObjectSelector).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar PADDING = 10;\nvar MIN_WIDTH = PADDING;\n\nvar HoverTextNearMouse = function (_Component) {\n\t_inherits(HoverTextNearMouse, _Component);\n\n\tfunction HoverTextNearMouse(props) {\n\t\t_classCallCheck(this, HoverTextNearMouse);\n\n\t\tvar _this = _possibleConstructorReturn(this, (HoverTextNearMouse.__proto__ || Object.getPrototypeOf(HoverTextNearMouse)).call(this, props));\n\n\t\t_this.state = {\n\t\t\ttextWidth: undefined,\n\t\t\ttextHeight: undefined\n\t\t};\n\n\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t_this.updateTextSize = _this.updateTextSize.bind(_this);\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(HoverTextNearMouse, [{\n\t\tkey: \"saveNode\",\n\t\tvalue: function saveNode(node) {\n\t\t\tthis.textNode = node;\n\t\t}\n\t}, {\n\t\tkey: \"updateTextSize\",\n\t\tvalue: function updateTextSize() {\n\t\t\tvar _props = this.props,\n\t\t\t bgWidth = _props.bgWidth,\n\t\t\t bgHeight = _props.bgHeight;\n\n\t\t\tif (bgWidth === \"auto\" || bgHeight === \"auto\") {\n\t\t\t\tvar textNode = this.textNode;\n\t\t\t\tif (textNode) {\n\t\t\t\t\tvar _textNode$getBBox = textNode.getBBox(),\n\t\t\t\t\t width = _textNode$getBBox.width,\n\t\t\t\t\t height = _textNode$getBBox.height;\n\n\t\t\t\t\tif (this.state.textWidth !== width || this.state.textHeight !== height) {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\ttextWidth: width,\n\t\t\t\t\t\t\ttextHeight: height\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.updateTextSize();\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate() {\n\t\t\tthis.updateTextSize();\n\t\t}\n\t}, {\n\t\tkey: \"getBgWidth\",\n\t\tvalue: function getBgWidth() {\n\t\t\tvar bgWidth = this.props.bgWidth;\n\t\t\tvar textWidth = this.state.textWidth;\n\n\n\t\t\tif (bgWidth !== \"auto\") {\n\t\t\t\treturn bgWidth;\n\t\t\t} else if (textWidth !== undefined) {\n\t\t\t\treturn textWidth + PADDING;\n\t\t\t} else {\n\t\t\t\treturn MIN_WIDTH;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"getBgHeight\",\n\t\tvalue: function getBgHeight() {\n\t\t\tvar bgHeight = this.props.bgHeight;\n\t\t\tvar textHeight = this.state.textHeight;\n\n\n\t\t\tif (bgHeight !== \"auto\") {\n\t\t\t\treturn bgHeight;\n\t\t\t} else if (textHeight !== undefined) {\n\t\t\t\treturn textHeight + PADDING;\n\t\t\t} else {\n\t\t\t\treturn MIN_WIDTH;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n \n\t\t\tvar _props2 = this.props,\n\t\t\t fontFamily = _props2.fontFamily,\n\t\t\t fontSize = _props2.fontSize,\n\t\t\t fill = _props2.fill,\n bgFill = _props2.bgFill,\n color = _props2.color,\n bgStroke = _props2.bgStroke,\n bgOpacity = _props2.bgOpacity;\n\n\t\t\t// console.log(moreProps)\n\n\t\t\tvar textMetaData = helper(_extends({}, this.props, {\n\t\t\t\tbgWidth: this.getBgWidth(),\n\t\t\t\tbgHeight: this.getBgHeight()\n\t\t\t}), moreProps);\n\n\t\t\tif ((0, _utils.isDefined)(textMetaData)) {\n\t\t\t\tvar rect = textMetaData.rect,\n text = textMetaData.text,\n sideRect = textMetaData.sideRect;\n\n\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\tnull,\n\t\t\t\t\t_react2.default.createElement(\"rect\", _extends({\n\t\t\t\t\t\tfill: bgFill,\n fillOpacity: bgOpacity,\n stroke: bgStroke,\n }, rect)),\n \n _react2.default.createElement(\"rect\", _extends({\n\t\t\t\t\t\tfill: color,\n\t\t\t\t\t\tfillOpacity: bgOpacity,\n }, sideRect)),\n \n _react2.default.createElement(\"foreignObject\", _extends({\n }, rect), \n _react2.default.createElement(\n \"div\", {\n xmlns: \"http://www.w3.org/1999/xhtml\",\n style: {width:rect.width + 'px', paddingTop: '3px', paddingLeft: '8px', paddingRight: '8px', fontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\", fontSize: '14px', display:'block'}\n }, \n text.text)\n ),\n\n\t\t\t\t\t/* _react2.default.createElement(\n\t\t\t\t\t\t\"text\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tref: this.saveNode,\n\t\t\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\t\t\ttextAnchor: \"start\",\n\t\t\t\t\t\t\talignmentBaseline: \"central\",\n\t\t\t\t\t\t\tfill: fill,\n\t\t\t\t\t\t\tx: text.x,\n y: text.y,\n width: 150, },\n\t\t\t\t\t\ttext.text\n\t\t\t\t\t) */\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar text = this.props.text;\n\n\t\t\tif (text) {\n\t\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn HoverTextNearMouse;\n}(_react.Component);\n\nvar numberOrString = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf([\"auto\"])]);\n\nHoverTextNearMouse.propTypes = {\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.string.isRequired,\n\ttext: _propTypes2.default.string.isRequired,\n\tbgFill: _propTypes2.default.string.isRequired,\n\tbgOpacity: _propTypes2.default.number.isRequired,\n\tbgWidth: numberOrString.isRequired,\n\tbgHeight: numberOrString.isRequired,\n\tshow: _propTypes2.default.bool.isRequired\n};\n\nHoverTextNearMouse.defaultProps = {\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 15,\n\tfill: \"#000000\",\n\tbgFill: \"#FA9325\",\n\tbgOpacity: 0.9\n};\n\n\nfunction helper(props, moreProps) {\n\tvar show = props.show,\n\t bgWidth = props.bgWidth,\n\t bgHeight = props.bgHeight;\n\tvar mouseXY = moreProps.mouseXY,\n\t _moreProps$chartConfi = moreProps.chartConfig,\n\t height = _moreProps$chartConfi.height,\n\t width = _moreProps$chartConfi.width,\n\t mouseInsideCanvas = moreProps.show;\n var canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n ctx.font = \"700\" + \" \" + 15 + \"px \";\n var textHeight = ctx.measureText(props.text).width/140 * 15;\n if(textHeight > 35)\n bgHeight = 110;\n else if(textHeight > 26.9)\n bgHeight = 90;\n else if(textHeight > 19)\n bgHeight = 70;\n else\n bgHeight = 50;\n if(props.text.includes(\"MODERATE BUY\"))\n {\n /* console.log(textHeight); */\n }\n if(props.text.includes(\"Broad Market\"))\n bgHeight = 90;\n\tif (show && mouseInsideCanvas) {\n\t\tvar _mouseXY = _slicedToArray(mouseXY, 2),\n\t\t x = _mouseXY[0],\n\t\t y = _mouseXY[1];\n\n\t\tvar cx = x < width / 2 ? x + PADDING : x - bgWidth - PADDING;\n\n\t\tvar cy = y < height / 2 ? y + PADDING : y - bgHeight - PADDING;\n \n\t\tvar rect = {\n\t\t\tx: cx,\n\t\t\ty: cy,\n width: bgWidth ,\n height: bgHeight\n };\n var sideRect = {\n\t\t\tx: cx - 10,\n\t\t\ty: cy,\n width: 10,\n height: bgHeight\n\t\t};\n\n\t\tvar text = {\n\t\t\ttext: props.text,\n\t\t\tx: cx + PADDING / 2,\n\t\t\ty: cy + bgHeight / 2\n\t\t};\n\n\t\treturn {\n\t\t\trect: rect,\n text: text,\n sideRect: sideRect,\n\t\t};\n\t}\n}\n\nexports.default = HoverTextNearMouse;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _MACDTooltip = require(\"./MACDTooltip\");\n\nObject.defineProperty(exports, \"MACDTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_MACDTooltip).default;\n }\n});\n\nvar _OHLCTooltip = require(\"./OHLCTooltip\");\n\nObject.defineProperty(exports, \"OHLCTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_OHLCTooltip).default;\n }\n});\n\nvar _SingleValueTooltip = require(\"./SingleValueTooltip\");\n\nObject.defineProperty(exports, \"SingleValueTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_SingleValueTooltip).default;\n }\n});\n\nvar _MovingAverageTooltip = require(\"./MovingAverageTooltip\");\n\nObject.defineProperty(exports, \"MovingAverageTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_MovingAverageTooltip).default;\n }\n});\n\nvar _BollingerBandTooltip = require(\"./BollingerBandTooltip\");\n\nObject.defineProperty(exports, \"BollingerBandTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_BollingerBandTooltip).default;\n }\n});\n\nvar _RSITooltip = require(\"./RSITooltip\");\n\nObject.defineProperty(exports, \"RSITooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_RSITooltip).default;\n }\n});\n\nvar _StochasticTooltip = require(\"./StochasticTooltip\");\n\nObject.defineProperty(exports, \"StochasticTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_StochasticTooltip).default;\n }\n});\n\nvar _HoverTooltip = require(\"./HoverTooltip\");\n\nObject.defineProperty(exports, \"HoverTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_HoverTooltip).default;\n }\n});\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nObject.defineProperty(exports, \"ToolTipText\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ToolTipText).default;\n }\n});\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nObject.defineProperty(exports, \"ToolTipTSpanLabel\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ToolTipTSpanLabel).default;\n }\n});\n\nvar _GroupTooltip = require(\"./GroupTooltip\");\n\nObject.defineProperty(exports, \"GroupTooltip\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_GroupTooltip).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ToolTipText = function (_Component) {\n\t_inherits(ToolTipText, _Component);\n\n\tfunction ToolTipText() {\n\t\t_classCallCheck(this, ToolTipText);\n\n\t\treturn _possibleConstructorReturn(this, (ToolTipText.__proto__ || Object.getPrototypeOf(ToolTipText)).apply(this, arguments));\n\t}\n\n\t_createClass(ToolTipText, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"text\",\n\t\t\t\t_extends({\n\t\t\t\t\tfontFamily: this.props.fontFamily,\n\t\t\t\t\tfontSize: this.props.fontSize\n\t\t\t\t}, this.props, {\n\t\t\t\t\tclassName: \"react-stockcharts-tooltip\" }),\n\t\t\t\tthis.props.children\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn ToolTipText;\n}(_react.Component);\n\nToolTipText.propTypes = {\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\tchildren: _propTypes2.default.node.isRequired\n};\n\nToolTipText.defaultProps = {\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 11\n};\n\nexports.default = ToolTipText;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ToolTipTSpanLabel(props) {\n\treturn _react2.default.createElement(\n\t\t\"tspan\",\n\t\t_extends({ className: \"react-stockcharts-tooltip-label\" }, props),\n\t\tprops.children\n\t);\n}\n\nToolTipTSpanLabel.propTypes = {\n\tchildren: _propTypes2.default.node.isRequired,\n\tfill: _propTypes2.default.string.isRequired\n};\n\nToolTipTSpanLabel.defaultProps = {\n\tfill: \"#4682B4\"\n};\n\nexports.default = ToolTipTSpanLabel;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = displayValuesFor;\nfunction displayValuesFor(props, moreProps) {\n\tvar currentItem = moreProps.currentItem;\n\n\treturn currentItem;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.isHovering2 = isHovering2;\nexports.isHovering = isHovering;\nexports.getSlope = getSlope;\nexports.getYIntercept = getYIntercept;\nexports.generateLine = generateLine;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StraightLine = function (_Component) {\n\t_inherits(StraightLine, _Component);\n\n\tfunction StraightLine(props) {\n\t\t_classCallCheck(this, StraightLine);\n\n\t\tvar _this = _possibleConstructorReturn(this, (StraightLine.__proto__ || Object.getPrototypeOf(StraightLine)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(StraightLine, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t tolerance = _props.tolerance,\n\t\t\t onHover = _props.onHover;\n\n\n\t\t\tif ((0, _utils.isDefined)(onHover)) {\n\t\t\t\tvar _props2 = this.props,\n\t\t\t\t x1Value = _props2.x1Value,\n\t\t\t\t x2Value = _props2.x2Value,\n\t\t\t\t y1Value = _props2.y1Value,\n\t\t\t\t y2Value = _props2.y2Value,\n\t\t\t\t type = _props2.type;\n\t\t\t\tvar mouseXY = moreProps.mouseXY,\n\t\t\t\t xScale = moreProps.xScale;\n\t\t\t\tvar yScale = moreProps.chartConfig.yScale;\n\n\n\t\t\t\tvar hovering = isHovering({\n\t\t\t\t\tx1Value: x1Value, y1Value: y1Value,\n\t\t\t\t\tx2Value: x2Value, y2Value: y2Value,\n\t\t\t\t\tmouseXY: mouseXY,\n\t\t\t\t\ttype: type,\n\t\t\t\t\ttolerance: tolerance,\n\t\t\t\t\txScale: xScale,\n\t\t\t\t\tyScale: yScale\n\t\t\t\t});\n\n\t\t\t\t// console.log(\"hovering ->\", hovering);\n\n\t\t\t\treturn hovering;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t strokeOpacity = _props3.strokeOpacity,\n\t\t\t strokeDasharray = _props3.strokeDasharray;\n\n\t\t\tvar _helper = helper(this.props, moreProps),\n\t\t\t x1 = _helper.x1,\n\t\t\t y1 = _helper.y1,\n\t\t\t x2 = _helper.x2,\n\t\t\t y2 = _helper.y2;\n\n\t\t\tctx.lineWidth = strokeWidth;\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\t\t\tctx.setLineDash((0, _utils.getStrokeDasharray)(strokeDasharray).split(\",\"));\n\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x1, y1);\n\t\t\tctx.lineTo(x2, y2);\n\t\t\tctx.stroke();\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props4 = this.props,\n\t\t\t stroke = _props4.stroke,\n\t\t\t strokeWidth = _props4.strokeWidth,\n\t\t\t strokeOpacity = _props4.strokeOpacity,\n\t\t\t strokeDasharray = _props4.strokeDasharray;\n\n\n\t\t\tvar lineWidth = strokeWidth;\n\n\t\t\tvar _helper2 = helper(this.props, moreProps),\n\t\t\t x1 = _helper2.x1,\n\t\t\t y1 = _helper2.y1,\n\t\t\t x2 = _helper2.x2,\n\t\t\t y2 = _helper2.y2;\n\n\t\t\treturn _react2.default.createElement(\"line\", {\n\t\t\t\tx1: x1, y1: y1, x2: x2, y2: y2,\n\t\t\t\tstroke: stroke, strokeWidth: lineWidth,\n\t\t\t\tstrokeDasharray: (0, _utils.getStrokeDasharray)(strokeDasharray),\n\t\t\t\tstrokeOpacity: strokeOpacity });\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props5 = this.props,\n\t\t\t selected = _props5.selected,\n\t\t\t interactiveCursorClass = _props5.interactiveCursorClass;\n\t\t\tvar _props6 = this.props,\n\t\t\t onDragStart = _props6.onDragStart,\n\t\t\t onDrag = _props6.onDrag,\n\t\t\t onDragComplete = _props6.onDragComplete,\n\t\t\t onHover = _props6.onHover,\n\t\t\t onUnHover = _props6.onUnHover;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\t\t\t\tselected: selected,\n\n\t\t\t\tonDragStart: onDragStart,\n\t\t\t\tonDrag: onDrag,\n\t\t\t\tonDragComplete: onDragComplete,\n\t\t\t\tonHover: onHover,\n\t\t\t\tonUnHover: onUnHover,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn StraightLine;\n}(_react.Component);\n\nfunction isHovering2(start, end, _ref, tolerance) {\n\tvar _ref2 = _slicedToArray(_ref, 2),\n\t mouseX = _ref2[0],\n\t mouseY = _ref2[1];\n\n\tvar m = getSlope(start, end);\n\n\tif ((0, _utils.isDefined)(m)) {\n\t\tvar b = getYIntercept(m, end);\n\t\tvar y = m * mouseX + b;\n\t\treturn mouseY < y + tolerance && mouseY > y - tolerance && mouseX > Math.min(start[0], end[0]) - tolerance && mouseX < Math.max(start[0], end[0]) + tolerance;\n\t} else {\n\t\treturn mouseY >= Math.min(start[1], end[1]) && mouseY <= Math.max(start[1], end[1]) && mouseX < start[0] + tolerance && mouseX > start[0] - tolerance;\n\t}\n}\n\nfunction isHovering(_ref3) {\n\tvar x1Value = _ref3.x1Value,\n\t y1Value = _ref3.y1Value,\n\t x2Value = _ref3.x2Value,\n\t y2Value = _ref3.y2Value,\n\t mouseXY = _ref3.mouseXY,\n\t type = _ref3.type,\n\t tolerance = _ref3.tolerance,\n\t xScale = _ref3.xScale,\n\t yScale = _ref3.yScale;\n\n\n\tvar line = generateLine({\n\t\ttype: type,\n\t\tstart: [x1Value, y1Value],\n\t\tend: [x2Value, y2Value],\n\t\txScale: xScale,\n\t\tyScale: yScale\n\t});\n\n\tvar start = [xScale(line.x1), yScale(line.y1)];\n\tvar end = [xScale(line.x2), yScale(line.y2)];\n\n\tvar m = getSlope(start, end);\n\n\tvar _mouseXY = _slicedToArray(mouseXY, 2),\n\t mouseX = _mouseXY[0],\n\t mouseY = _mouseXY[1];\n\n\tif ((0, _utils.isDefined)(m)) {\n\t\tvar b = getYIntercept(m, end);\n\t\tvar y = m * mouseX + b;\n\n\t\treturn mouseY < y + tolerance && mouseY > y - tolerance && mouseX > Math.min(start[0], end[0]) - tolerance && mouseX < Math.max(start[0], end[0]) + tolerance;\n\t} else {\n\t\treturn mouseY >= Math.min(start[1], end[1]) && mouseY <= Math.max(start[1], end[1]) && mouseX < start[0] + tolerance && mouseX > start[0] - tolerance;\n\t}\n}\n\nfunction helper(props, moreProps) {\n\tvar x1Value = props.x1Value,\n\t x2Value = props.x2Value,\n\t y1Value = props.y1Value,\n\t y2Value = props.y2Value,\n\t type = props.type;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale;\n\n\n\tvar modLine = generateLine({\n\t\ttype: type,\n\t\tstart: [x1Value, y1Value],\n\t\tend: [x2Value, y2Value],\n\t\txScale: xScale,\n\t\tyScale: yScale\n\t});\n\n\tvar x1 = xScale(modLine.x1);\n\tvar y1 = yScale(modLine.y1);\n\tvar x2 = xScale(modLine.x2);\n\tvar y2 = yScale(modLine.y2);\n\n\treturn {\n\t\tx1: x1, y1: y1, x2: x2, y2: y2\n\t};\n}\n\nfunction getSlope(start, end) {\n\tvar m /* slope */ = end[0] === start[0] ? undefined : (end[1] - start[1]) / (end[0] - start[0]);\n\treturn m;\n}\nfunction getYIntercept(m, end) {\n\tvar b /* y intercept */ = -1 * m * end[0] + end[1];\n\treturn b;\n}\n\nfunction generateLine(_ref4) {\n\tvar type = _ref4.type,\n\t start = _ref4.start,\n\t end = _ref4.end,\n\t xScale = _ref4.xScale,\n\t yScale = _ref4.yScale;\n\n\tvar m /* slope */ = getSlope(start, end);\n\t// console.log(end[0] - start[0], m)\n\tvar b /* y intercept */ = getYIntercept(m, start);\n\n\tswitch (type) {\n\t\tcase \"XLINE\":\n\t\t\treturn getXLineCoordinates({\n\t\t\t\ttype: type, start: start, end: end, xScale: xScale, yScale: yScale, m: m, b: b\n\t\t\t});\n\t\tcase \"RAY\":\n\t\t\treturn getRayCoordinates({\n\t\t\t\ttype: type, start: start, end: end, xScale: xScale, yScale: yScale, m: m, b: b\n\t\t\t});\n\t\tcase \"LINE\":\n\t\t\treturn getLineCoordinates({\n\t\t\t\ttype: type, start: start, end: end, xScale: xScale, yScale: yScale, m: m, b: b\n\t\t\t});\n\t}\n}\n\nfunction getXLineCoordinates(_ref5) {\n\tvar start = _ref5.start,\n\t end = _ref5.end,\n\t xScale = _ref5.xScale,\n\t yScale = _ref5.yScale,\n\t m = _ref5.m,\n\t b = _ref5.b;\n\n\tvar _xScale$domain = xScale.domain(),\n\t _xScale$domain2 = _slicedToArray(_xScale$domain, 2),\n\t xBegin = _xScale$domain2[0],\n\t xFinish = _xScale$domain2[1];\n\n\tvar _yScale$domain = yScale.domain(),\n\t _yScale$domain2 = _slicedToArray(_yScale$domain, 2),\n\t yBegin = _yScale$domain2[0],\n\t yFinish = _yScale$domain2[1];\n\n\tif (end[0] === start[0]) {\n\t\treturn {\n\t\t\tx1: end[0], y1: yBegin,\n\t\t\tx2: end[0], y2: yFinish\n\t\t};\n\t}\n\n\tvar _ref6 = end[0] > start[0] ? [xBegin, xFinish] : [xFinish, xBegin],\n\t _ref7 = _slicedToArray(_ref6, 2),\n\t x1 = _ref7[0],\n\t x2 = _ref7[1];\n\n\treturn {\n\t\tx1: x1, y1: m * x1 + b,\n\t\tx2: x2, y2: m * x2 + b\n\t};\n}\n\nfunction getRayCoordinates(_ref8) {\n\tvar start = _ref8.start,\n\t end = _ref8.end,\n\t xScale = _ref8.xScale,\n\t yScale = _ref8.yScale,\n\t m = _ref8.m,\n\t b = _ref8.b;\n\n\tvar _xScale$domain3 = xScale.domain(),\n\t _xScale$domain4 = _slicedToArray(_xScale$domain3, 2),\n\t xBegin = _xScale$domain4[0],\n\t xFinish = _xScale$domain4[1];\n\n\tvar _yScale$domain3 = yScale.domain(),\n\t _yScale$domain4 = _slicedToArray(_yScale$domain3, 2),\n\t yBegin = _yScale$domain4[0],\n\t yFinish = _yScale$domain4[1];\n\n\tvar x1 = start[0];\n\tif (end[0] === start[0]) {\n\t\treturn {\n\t\t\tx1: x1,\n\t\t\ty1: start[1],\n\t\t\tx2: x1,\n\t\t\ty2: end[1] > start[1] ? yFinish : yBegin\n\t\t};\n\t}\n\n\tvar x2 = end[0] > start[0] ? xFinish : xBegin;\n\n\treturn {\n\t\tx1: x1, y1: m * x1 + b,\n\t\tx2: x2, y2: m * x2 + b\n\t};\n}\n\nfunction getLineCoordinates(_ref9) {\n\tvar start = _ref9.start,\n\t end = _ref9.end;\n\n\tvar _start = _slicedToArray(start, 2),\n\t x1 = _start[0],\n\t y1 = _start[1];\n\n\tvar _end = _slicedToArray(end, 2),\n\t x2 = _end[0],\n\t y2 = _end[1];\n\n\tif (end[0] === start[0]) {\n\t\treturn {\n\t\t\tx1: x1,\n\t\t\ty1: start[1],\n\t\t\tx2: x1,\n\t\t\ty2: end[1]\n\t\t};\n\t}\n\n\treturn {\n\t\tx1: x1, y1: y1,\n\t\tx2: x2, y2: y2\n\t};\n}\n\nStraightLine.propTypes = {\n\tx1Value: _propTypes2.default.any.isRequired,\n\tx2Value: _propTypes2.default.any.isRequired,\n\ty1Value: _propTypes2.default.any.isRequired,\n\ty2Value: _propTypes2.default.any.isRequired,\n\n\tinteractiveCursorClass: _propTypes2.default.string,\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\n\ttype: _propTypes2.default.oneOf([\"XLINE\", // extends from -Infinity to +Infinity\n\t\"RAY\", // extends to +/-Infinity in one direction\n\t\"LINE\"] // extends between the set bounds\n\t).isRequired,\n\n\tonEdge1Drag: _propTypes2.default.func.isRequired,\n\tonEdge2Drag: _propTypes2.default.func.isRequired,\n\tonDragStart: _propTypes2.default.func.isRequired,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdefaultClassName: _propTypes2.default.string,\n\n\tr: _propTypes2.default.number.isRequired,\n\tedgeFill: _propTypes2.default.string.isRequired,\n\tedgeStroke: _propTypes2.default.string.isRequired,\n\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\twithEdge: _propTypes2.default.bool.isRequired,\n\tchildren: _propTypes2.default.func.isRequired,\n\ttolerance: _propTypes2.default.number.isRequired,\n\tselected: _propTypes2.default.bool.isRequired\n};\n\nStraightLine.defaultProps = {\n\tonEdge1Drag: _utils.noop,\n\tonEdge2Drag: _utils.noop,\n\tonDragStart: _utils.noop,\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\tedgeStrokeWidth: 3,\n\tedgeStroke: \"#000000\",\n\tedgeFill: \"#FFFFFF\",\n\tr: 10,\n\twithEdge: false,\n\tstrokeWidth: 1,\n\tstrokeDasharray: \"Solid\",\n\tchildren: _utils.noop,\n\ttolerance: 7,\n\tselected: false\n};\n\nexports.default = StraightLine;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.getChartOrigin = getChartOrigin;\nexports.getDimensions = getDimensions;\nexports.getNewChartConfig = getNewChartConfig;\nexports.getCurrentCharts = getCurrentCharts;\nexports.getChartConfigWithUpdatedYScales = getChartConfigWithUpdatedYScales;\nexports.getCurrentItem = getCurrentItem;\nexports.getXValue = getXValue;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _d3Array = require(\"d3-array\");\n\nvar _d3Collection = require(\"d3-collection\");\n\nvar _lodash = require(\"lodash.flattendeep\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _Chart = require(\"../Chart\");\n\nvar _Chart2 = _interopRequireDefault(_Chart);\n\nvar _index = require(\"./index\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getChartOrigin(origin, contextWidth, contextHeight) {\n var originCoordinates = typeof origin === \"function\" ? origin(contextWidth, contextHeight) : origin;\n\treturn originCoordinates;\n}\n\nfunction getDimensions(_ref, chartProps) {\n\tvar width = _ref.width,\n\t height = _ref.height;\n\n\n\tvar chartHeight = chartProps.height || height;\n\n\treturn {\n\t\tavailableHeight: height,\n\t\twidth: width,\n\t\theight: chartHeight\n\t};\n}\n\nfunction values(func) {\n\treturn function (d) {\n\t\tvar obj = func(d);\n\t\tif ((0, _index.isObject)(obj)) {\n\t\t\treturn (0, _index.mapObject)(obj);\n\t\t}\n\t\treturn obj;\n\t};\n}\n\nfunction isArraySize2AndNumber(yExtentsProp) {\n\tif (Array.isArray(yExtentsProp) && yExtentsProp.length === 2) {\n\t\tvar _yExtentsProp = _slicedToArray(yExtentsProp, 2),\n\t\t a = _yExtentsProp[0],\n\t\t b = _yExtentsProp[1];\n\n\t\treturn typeof a == \"number\" && typeof b == \"number\";\n\t}\n\treturn false;\n}\n\nfunction getNewChartConfig(innerDimension, children) {\n\tvar existingChartConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n \n\treturn _react2.default.Children.map(children, function (each) {\n\t\tif (each && each.type.toString() === _Chart2.default.toString()) {\n\t\t\tvar chartProps = _extends({}, _Chart2.default.defaultProps, each.props);\n\t\t\tvar id = chartProps.id,\n\t\t\t origin = chartProps.origin,\n\t\t\t padding = chartProps.padding,\n\t\t\t yExtentsProp = chartProps.yExtents,\n\t\t\t yScaleProp = chartProps.yScale,\n\t\t\t flipYScale = chartProps.flipYScale,\n\t\t\t yExtentsCalculator = chartProps.yExtentsCalculator;\n\n\n\t\t\tvar yScale = yScaleProp.copy();\n\n\t\t\tvar _getDimensions = getDimensions(innerDimension, chartProps),\n\t\t\t width = _getDimensions.width,\n\t\t\t height = _getDimensions.height,\n\t\t\t availableHeight = _getDimensions.availableHeight;\n\n\t\t\tvar yPan = chartProps.yPan;\n\t\t\tvar yPanEnabled = chartProps.yPanEnabled;\n\t\t\t// var { yMousePointerRectWidth: rectWidth, yMousePointerRectHeight: rectHeight, yMousePointerArrowWidth: arrowWidth } = each.props;\n\t\t\t// var mouseCoordinates = { at, yDisplayFormat, rectHeight, rectWidth, arrowWidth };\n\n\t\t\tvar yExtents = (0, _index.isDefined)(yExtentsProp) ? (Array.isArray(yExtentsProp) ? yExtentsProp : [yExtentsProp]).map(_index.functor) : undefined;\n\n\t\t\tvar prevChartConfig = (0, _index.find)(existingChartConfig, function (d) {\n\t\t\t\treturn d.id === id;\n\t\t\t});\n\n\t\t\tif (isArraySize2AndNumber(yExtentsProp)) {\n\t\t\t\tif ((0, _index.isDefined)(prevChartConfig) && prevChartConfig.yPan && prevChartConfig.yPanEnabled && yPan && yPanEnabled && (0, _index.shallowEqual)(prevChartConfig.originalYExtentsProp, yExtentsProp)) {\n\t\t\t\t\t// console.log(prevChartConfig.originalYExtentsProp, yExtentsProp)\n\t\t\t\t\t// console.log(prevChartConfig.yScale.domain())\n\t\t\t\t\tyScale.domain(prevChartConfig.yScale.domain());\n\t\t\t\t} else {\n\t\t\t\t\tvar _yExtentsProp2 = _slicedToArray(yExtentsProp, 2),\n\t\t\t\t\t a = _yExtentsProp2[0],\n\t\t\t\t\t b = _yExtentsProp2[1];\n\n\t\t\t\t\tyScale.domain([a, b]);\n\t\t\t\t}\n\t\t\t} else if ((0, _index.isDefined)(prevChartConfig) && prevChartConfig.yPanEnabled) {\n\t\t\t\tif (isArraySize2AndNumber(prevChartConfig.originalYExtentsProp)) {\n\t\t\t\t\t// do nothing\n\t\t\t\t} else {\n\t\t\t\t\tyScale.domain(prevChartConfig.yScale.domain());\n\t\t\t\t\tyPanEnabled = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: id,\n\t\t\t\torigin: (0, _index.functor)(origin)(width, availableHeight),\n\t\t\t\tpadding: padding,\n\t\t\t\toriginalYExtentsProp: yExtentsProp,\n\t\t\t\tyExtents: yExtents,\n\t\t\t\tyExtentsCalculator: yExtentsCalculator,\n\t\t\t\tflipYScale: flipYScale,\n\t\t\t\t// yScale: setRange(yScale.copy(), height, padding, flipYScale),\n\t\t\t\tyScale: yScale,\n\t\t\t\tyPan: yPan,\n\t\t\t\tyPanEnabled: yPanEnabled,\n\t\t\t\t// mouseCoordinates,\n\t\t\t\twidth: width,\n\t\t\t\theight: height\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}).filter(function (each) {\n\t\treturn (0, _index.isDefined)(each);\n\t});\n}\nfunction getCurrentCharts(chartConfig, mouseXY) {\n\tvar currentCharts = chartConfig.filter(function (eachConfig) {\n\t\tvar top = eachConfig.origin[1];\n\t\tvar bottom = top + eachConfig.height;\n\t\treturn mouseXY[1] > top && mouseXY[1] < bottom;\n\t}).map(function (config) {\n\t\treturn config.id;\n\t});\n\n\treturn currentCharts;\n}\n\nfunction setRange(scale, height, padding, flipYScale) {\n\tif (scale.rangeRoundPoints || (0, _index.isNotDefined)(scale.invert)) {\n\t\tif (isNaN(padding)) throw new Error(\"padding has to be a number for ordinal scale\");\n\t\tif (scale.rangeRoundPoints) scale.rangeRoundPoints(flipYScale ? [0, height] : [height, 0], padding);\n\t\tif (scale.rangeRound) scale.range(flipYScale ? [0, height] : [height, 0]).padding(padding);\n\t} else {\n\t\tvar _ref2 = isNaN(padding) ? padding : { top: padding, bottom: padding },\n\t\t top = _ref2.top,\n\t\t bottom = _ref2.bottom;\n\n\t\tscale.range(flipYScale ? [top, height - bottom] : [height - bottom, top]);\n\t}\n\treturn scale;\n}\n\nfunction yDomainFromYExtents(yExtents, yScale, plotData) {\n\tvar yValues = yExtents.map(function (eachExtent) {\n\t\treturn plotData.map(values(eachExtent));\n\t});\n\n\tvar allYValues = (0, _lodash2.default)(yValues);\n\t// console.log(allYValues)\n\tvar realYDomain = yScale.invert ? (0, _d3Array.extent)(allYValues) : (0, _d3Collection.set)(allYValues).values();\n\n\treturn realYDomain;\n}\n\nfunction getChartConfigWithUpdatedYScales(chartConfig, _ref3, xDomain, dy, chartsToPan) {\n\tvar plotData = _ref3.plotData,\n\t xAccessor = _ref3.xAccessor,\n\t displayXAccessor = _ref3.displayXAccessor,\n\t fullData = _ref3.fullData;\n\n\tvar yDomains = chartConfig.map(function (_ref4) {\n\t\tvar yExtentsCalculator = _ref4.yExtentsCalculator,\n\t\t yExtents = _ref4.yExtents,\n\t\t yScale = _ref4.yScale;\n\n\n\t\tvar realYDomain = (0, _index.isDefined)(yExtentsCalculator) ? yExtentsCalculator({ plotData: plotData, xDomain: xDomain, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }) : yDomainFromYExtents(yExtents, yScale, plotData);\n\n\t\t// console.log(\"yScale.domain() ->\", yScale.domain())\n\n\t\tvar yDomainDY = (0, _index.isDefined)(dy) ? yScale.range().map(function (each) {\n\t\t\treturn each - dy;\n\t\t}).map(yScale.invert) : yScale.domain();\n\t\treturn {\n\t\t\trealYDomain: realYDomain,\n\t\t\tyDomainDY: yDomainDY,\n\t\t\tprevYDomain: yScale.domain()\n\t\t};\n\t});\n\n\tvar combine = (0, _index.zipper)().combine(function (config, _ref5) {\n\t\tvar realYDomain = _ref5.realYDomain,\n\t\t yDomainDY = _ref5.yDomainDY,\n\t\t prevYDomain = _ref5.prevYDomain;\n\t\tvar id = config.id,\n\t\t padding = config.padding,\n\t\t height = config.height,\n\t\t yScale = config.yScale,\n\t\t yPan = config.yPan,\n\t\t flipYScale = config.flipYScale,\n\t\t _config$yPanEnabled = config.yPanEnabled,\n\t\t yPanEnabled = _config$yPanEnabled === undefined ? false : _config$yPanEnabled;\n\n\n\t\tvar another = (0, _index.isDefined)(chartsToPan) ? chartsToPan.indexOf(id) > -1 : true;\n\t\tvar domain = yPan && yPanEnabled ? another ? yDomainDY : prevYDomain : realYDomain;\n\n\t\t// console.log(id, yPan, yPanEnabled, another);\n\t\t// console.log(domain, realYDomain, prevYDomain);\n\t\tvar newYScale = setRange(yScale.copy().domain(domain), height, padding, flipYScale);\n\t\treturn _extends({}, config, {\n\t\t\tyScale: newYScale,\n\t\t\trealYDomain: realYDomain\n\t\t});\n\t\t// return { ...config, yScale: yScale.copy().domain(domain).range([height - padding, padding]) };\n\t});\n\n\tvar updatedChartConfig = combine(chartConfig, yDomains);\n\t// console.error(yDomains, dy, chartsToPan, updatedChartConfig.map(d => d.yScale.domain()));\n\t// console.log(updatedChartConfig.map(d => ({ id: d.id, domain: d.yScale.domain() })))\n\n\treturn updatedChartConfig;\n}\n\nfunction getCurrentItem(xScale, xAccessor, mouseXY, plotData) {\n\tvar xValue = void 0,\n\t item = void 0;\n\tif (xScale.invert) {\n\t\txValue = xScale.invert(mouseXY[0]);\n\t\titem = (0, _index.getClosestItem)(plotData, xValue, xAccessor);\n\t} else {\n\t\tvar d = xScale.range().map(function (d, idx) {\n\t\t\treturn { x: Math.abs(d - mouseXY[0]), idx: idx };\n\t\t}).reduce(function (a, b) {\n\t\t\treturn a.x < b.x ? a : b;\n\t\t});\n\t\titem = (0, _index.isDefined)(d) ? plotData[d.idx] : plotData[0];\n\t\t// console.log(d, item);\n\t}\n\treturn item;\n}\n\nfunction getXValue(xScale, xAccessor, mouseXY, plotData) {\n\n\tvar xValue = void 0,\n\t item = void 0;\n\tif (xScale.invert) {\n\t\txValue = xScale.invert(mouseXY[0]);\n\t\tif (xValue > xAccessor((0, _index.last)(plotData)) && xScale.value) {\n\t\t\treturn Math.round(xValue);\n\t\t} else {\n\t\t\titem = (0, _index.getClosestItem)(plotData, xValue, xAccessor);\n\t\t}\n\t} else {\n\t\tvar d = xScale.range().map(function (d, idx) {\n\t\t\treturn { x: Math.abs(d - mouseXY[0]), idx: idx };\n\t\t}).reduce(function (a, b) {\n\t\t\treturn a.x < b.x ? a : b;\n\t\t});\n\t\titem = (0, _index.isDefined)(d) ? plotData[d.idx] : plotData[0];\n\t\t// console.log(d, item);\n\t}\n\treturn xAccessor(item);\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _discontinuousTimeScaleProvider = require(\"./discontinuousTimeScaleProvider\");\n\nObject.defineProperty(exports, \"discontinuousTimeScaleProvider\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_discontinuousTimeScaleProvider).default;\n\t}\n});\nObject.defineProperty(exports, \"discontinuousTimeScaleProviderBuilder\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _discontinuousTimeScaleProvider.discontinuousTimeScaleProviderBuilder;\n\t}\n});\n\nvar _financeDiscontinuousScale = require(\"./financeDiscontinuousScale\");\n\nObject.defineProperty(exports, \"financeDiscontinuousScale\", {\n\tenumerable: true,\n\tget: function get() {\n\t\treturn _interopRequireDefault(_financeDiscontinuousScale).default;\n\t}\n});\nexports.defaultScaleProvider = defaultScaleProvider;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction defaultScaleProvider(xScale) {\n\treturn function (data, xAccessor) {\n\t\treturn { data: data, xScale: xScale, xAccessor: xAccessor, displayXAccessor: xAccessor };\n\t};\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Shape = require(\"d3-shape\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LineSeries = function (_Component) {\n\t_inherits(LineSeries, _Component);\n\n\tfunction LineSeries(props) {\n\t\t_classCallCheck(this, LineSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (LineSeries.__proto__ || Object.getPrototypeOf(LineSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(LineSeries, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\t// console.log(\"HERE\")\n\t\t\tvar _props = this.props,\n\t\t\t highlightOnHover = _props.highlightOnHover,\n\t\t\t yAccessor = _props.yAccessor,\n\t\t\t hoverTolerance = _props.hoverTolerance;\n\n\n\t\t\tif (!highlightOnHover) return false;\n\n\t\t\tvar mouseXY = moreProps.mouseXY,\n\t\t\t currentItem = moreProps.currentItem,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t plotData = moreProps.plotData;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t yScale = _moreProps$chartConfi.yScale,\n origin = _moreProps$chartConfi.origin;\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\t\t\tvar _mouseXY = _slicedToArray(mouseXY, 2),\n\t\t\t x = _mouseXY[0],\n\t\t\t y = _mouseXY[1];\n\n\t\t\tvar radius = hoverTolerance;\n\n\t\t\tvar _getClosestItemIndexe = (0, _utils.getClosestItemIndexes)(plotData, xScale.invert(x), xAccessor),\n\t\t\t left = _getClosestItemIndexe.left,\n\t\t\t right = _getClosestItemIndexe.right;\n\n\t\t\tif (left === right) {\n\t\t\t\tvar cy = yScale(yAccessor(currentItem)) + origin[1];\n\t\t\t\tvar cx = xScale(xAccessor(currentItem)) + origin[0];\n\n\t\t\t\tvar hovering1 = Math.pow(x - cx, 2) + Math.pow(y - cy, 2) < Math.pow(radius, 2);\n\n\t\t\t\treturn hovering1;\n\t\t\t} else {\n\t\t\t\tvar l = plotData[left];\n\t\t\t\tvar r = plotData[right];\n\t\t\t\tvar x1 = xScale(xAccessor(l)) + origin[0];\n\t\t\t\tvar y1 = yScale(yAccessor(l)) + origin[1];\n\t\t\t\tvar x2 = xScale(xAccessor(r)) + origin[0];\n\t\t\t\tvar y2 = yScale(yAccessor(r)) + origin[1];\n\n\t\t\t\t// y = m * x + b\n\t\t\t\tvar m /* slope */ = (y2 - y1) / (x2 - x1);\n\t\t\t\tvar b /* y intercept */ = -1 * m * x1 + y1;\n\n\t\t\t\tvar desiredY = Math.round(m * x + b);\n\n\t\t\t\tvar hovering2 = y >= desiredY - radius && y <= desiredY + radius;\n\n\t\t\t\treturn hovering2;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n \n\t\t\tvar _props2 = this.props,\n\t\t\t yAccessor = _props2.yAccessor,\n\t\t\t stroke = _props2.stroke,\n\t\t\t strokeOpacity = _props2.strokeOpacity,\n\t\t\t strokeWidth = _props2.strokeWidth,\n\t\t\t hoverStrokeWidth = _props2.hoverStrokeWidth,\n\t\t\t defined = _props2.defined,\n\t\t\t strokeDasharray = _props2.strokeDasharray,\n\t\t\t interpolation = _props2.interpolation,\n\t\t\t canvasClip = _props2.canvasClip;\n\t\t\tvar connectNulls = this.props.connectNulls;\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t hovering = moreProps.hovering;\n\n \n\t\t\tif (canvasClip) {\n\t\t\t\tctx.save();\n\t\t\t\tcanvasClip(ctx, moreProps);\n\t\t\t}\n\n\t\t\tctx.lineWidth = hovering ? hoverStrokeWidth : strokeWidth;\n\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\t\t\tctx.setLineDash((0, _utils.getStrokeDasharray)(strokeDasharray).split(\",\"));\n\n\t\t\tvar dataSeries = (0, _d3Shape.line)().x(function (d) {\n\t\t\t\treturn Math.round(xScale(xAccessor(d)));\n\t\t\t}).y(function (d) {\n\t\t\t\treturn Math.round(yScale(yAccessor(d)));\n\t\t\t});\n \n\t\t\tif ((0, _utils.isDefined)(interpolation)) {\n\t\t\t\tdataSeries.curve(interpolation);\n\t\t\t}\n\t\t\tif (!connectNulls) {\n\t\t\t\tdataSeries.defined(function (d) {\n\t\t\t\t\treturn defined(yAccessor(d));\n\t\t\t\t});\n\t\t\t}\n ctx.beginPath();\n if(plotData[plotData.length - 1].close == 0)\n {\n plotData = plotData.slice(0, plotData.length - 1);\n }\n\t\t\tdataSeries.context(ctx)(plotData);\n\t\t\tctx.stroke();\n\n\t\t\tif (canvasClip) {\n\t\t\t\tctx.restore();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n \n\t\t\tvar _props3 = this.props,\n\t\t\t yAccessor = _props3.yAccessor,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeOpacity = _props3.strokeOpacity,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t hoverStrokeWidth = _props3.hoverStrokeWidth,\n\t\t\t defined = _props3.defined,\n\t\t\t strokeDasharray = _props3.strokeDasharray;\n\t\t\tvar connectNulls = this.props.connectNulls;\n\t\t\tvar _props4 = this.props,\n\t\t\t interpolation = _props4.interpolation,\n\t\t\t style = _props4.style;\n\t\t\tvar xAccessor = moreProps.xAccessor,\n\t\t\t chartConfig = moreProps.chartConfig;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t hovering = moreProps.hovering;\n\t\t\tvar yScale = chartConfig.yScale;\n\n\t\t\tvar dataSeries = (0, _d3Shape.line)().x(function (d) {\n\t\t\t\treturn Math.round(xScale(xAccessor(d)));\n\t\t\t}).y(function (d) {\n\t\t\t\treturn Math.round(yScale(yAccessor(d)));\n\t\t\t});\n\n\t\t\tif ((0, _utils.isDefined)(interpolation)) {\n\t\t\t\tdataSeries.curve(interpolation);\n\t\t\t}\n\t\t\tif (!connectNulls) {\n\t\t\t\tdataSeries.defined(function (d) {\n\t\t\t\t\treturn defined(yAccessor(d));\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar d = dataSeries(plotData);\n\n\t\t\tvar _props5 = this.props,\n\t\t\t fill = _props5.fill,\n\t\t\t className = _props5.className;\n\n\n\t\t\treturn _react2.default.createElement(\"path\", {\n\t\t\t\tstyle: style,\n\t\t\t\tclassName: className + \" \" + (stroke ? \"\" : \" line-stroke\"),\n\t\t\t\td: d,\n\t\t\t\tstroke: stroke,\n\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\tstrokeWidth: hovering ? hoverStrokeWidth : strokeWidth,\n\t\t\t\tstrokeDasharray: (0, _utils.getStrokeDasharray)(strokeDasharray),\n\t\t\t\tfill: fill\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props6 = this.props,\n\t\t\t highlightOnHover = _props6.highlightOnHover,\n\t\t\t onHover = _props6.onHover,\n\t\t\t onUnHover = _props6.onUnHover;\n\n\t\t\tvar hoverProps = highlightOnHover || onHover || onUnHover ? {\n\t\t\t\tisHover: this.isHover,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\"],\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas\n\t\t\t} : {\n\t\t\t\tdrawOn: [\"pan\"],\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas\n\t\t\t};\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, _extends({\n\t\t\t\tsvgDraw: this.renderSVG,\n\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tonClickWhenHover: this.props.onClick,\n\t\t\t\tonDoubleClickWhenHover: this.props.onDoubleClick,\n\t\t\t\tonContextMenuWhenHover: this.props.onContextMenu,\n\t\t\t\tonHover: this.props.onHover,\n\t\t\t\tonUnHover: this.props.onUnHover\n\t\t\t}, hoverProps));\n\t\t}\n\t}]);\n\n\treturn LineSeries;\n}(_react.Component);\n\n/*\nfunction segment(points, ctx) {\n\tctx.beginPath();\n\n\tconst [x, y] = first(points);\n\tctx.moveTo(x, y);\n\tfor (let i = 1; i < points.length; i++) {\n\t\tconst [x1, y1] = points[i];\n\t\tctx.lineTo(x1, y1);\n\t}\n\n\tctx.stroke();\n}\n*/\n\nLineSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tstrokeWidth: _propTypes2.default.number,\n\tstrokeOpacity: _propTypes2.default.number,\n\tstroke: _propTypes2.default.string,\n\thoverStrokeWidth: _propTypes2.default.number,\n\tfill: _propTypes2.default.string,\n\tdefined: _propTypes2.default.func,\n\thoverTolerance: _propTypes2.default.number,\n\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\thighlightOnHover: _propTypes2.default.bool,\n\tonClick: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\tonContextMenu: _propTypes2.default.func,\n\tyAccessor: _propTypes2.default.func,\n\tconnectNulls: _propTypes2.default.bool,\n\tinterpolation: _propTypes2.default.func,\n\tcanvasClip: _propTypes2.default.func,\n\tstyle: _propTypes2.default.object\n};\n\nLineSeries.defaultProps = {\n\tclassName: \"line \",\n\tstrokeWidth: 1,\n\tstrokeOpacity: 1,\n\thoverStrokeWidth: 4,\n\tfill: \"none\",\n\tstroke: \"#4682B4\",\n\tstrokeDasharray: \"Solid\",\n\tdefined: function defined(d) {\n\t\treturn !isNaN(d);\n\t},\n\thoverTolerance: 6,\n\thighlightOnHover: false,\n\tconnectNulls: false,\n\tonClick: function onClick(e) {\n\t\tconsole.log(\"Click\", e);\n\t},\n\tonDoubleClick: function onDoubleClick(e) {\n\t\tconsole.log(\"Double Click\", e);\n\t},\n\tonContextMenu: function onContextMenu(e) {\n\t\tconsole.log(\"Right Click\", e);\n\t}\n};\n\nexports.default = LineSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (d) {\n return d;\n};\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {};\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StraightLine = function (_Component) {\n\t_inherits(StraightLine, _Component);\n\n\tfunction StraightLine(props) {\n\t\t_classCallCheck(this, StraightLine);\n\n\t\tvar _this = _possibleConstructorReturn(this, (StraightLine.__proto__ || Object.getPrototypeOf(StraightLine)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(StraightLine, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t type = _props.type,\n\t\t\t stroke = _props.stroke,\n\t\t\t strokeWidth = _props.strokeWidth,\n\t\t\t opacity = _props.opacity,\n\t\t\t strokeDasharray = _props.strokeDasharray;\n\t\t\tvar _props2 = this.props,\n\t\t\t yValue = _props2.yValue,\n\t\t\t xValue = _props2.xValue;\n\t\t\tvar xScale = moreProps.xScale;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t yScale = _moreProps$chartConfi.yScale,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\n\n\t\t\tctx.beginPath();\n\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, opacity);\n\t\t\tctx.lineWidth = strokeWidth;\n\n var _getLineCoordinates = getLineCoordinates(type, xScale, yScale, xValue, yValue, width, height + 500),\n \n\t\t\t x1 = _getLineCoordinates.x1,\n\t\t\t y1 = _getLineCoordinates.y1,\n\t\t\t x2 = _getLineCoordinates.x2,\n\t\t\t y2 = _getLineCoordinates.y2;\n \n\t\t\tctx.setLineDash((0, _utils.getStrokeDasharray)(strokeDasharray).split(\",\"));\n\t\t\tctx.moveTo(x1, y1);\n\t\t\tctx.lineTo(x2, y2);\n\t\t\tctx.stroke();\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar width = moreProps.width,\n\t\t\t height = moreProps.height;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\t\t\tvar className = this.props.className;\n\t\t\tvar _props3 = this.props,\n\t\t\t type = _props3.type,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t opacity = _props3.opacity,\n\t\t\t strokeDasharray = _props3.strokeDasharray;\n\t\t\tvar _props4 = this.props,\n\t\t\t yValue = _props4.yValue,\n\t\t\t xValue = _props4.xValue;\n\n\n\t\t\tvar lineCoordinates = getLineCoordinates(type, xScale, yScale, xValue, yValue, width, height + 900);\n console.log(lineCoordinates);\n\t\t\treturn _react2.default.createElement(\"line\", _extends({\n\t\t\t\tclassName: className,\n\t\t\t\tstrokeDasharray: (0, _utils.getStrokeDasharray)(strokeDasharray),\n\t\t\t\tstroke: stroke,\n\t\t\t\tstrokeWidth: strokeWidth,\n\t\t\t\tstrokeOpacity: opacity\n\t\t\t}, lineCoordinates));\n\t\t}\n\t}]);\n\n\treturn StraightLine;\n}(_react.Component);\n\nfunction getLineCoordinates(type, xScale, yScale, xValue, yValue, width, height) {\n\treturn type === \"horizontal\" ? { x1: 0, y1: Math.round(yScale(yValue)), x2: width, y2: Math.round(yScale(yValue)) } : { x1: Math.round(xScale(xValue)), y1: 0, x2: Math.round(xScale(xValue)), y2: height };\n}\n\nStraightLine.propTypes = {\n\tclassName: _propTypes2.default.string,\n\ttype: _propTypes2.default.oneOf([\"vertical\", \"horizontal\"]),\n\tstroke: _propTypes2.default.string,\n\tstrokeWidth: _propTypes2.default.number,\n\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\topacity: _propTypes2.default.number.isRequired,\n\tyValue: function yValue(props, propName /* , componentName */) {\n\t\tif (props.type === \"vertical\" && (0, _utils.isDefined)(props[propName])) return new Error(\"Do not define `yValue` when type is `vertical`, define the `xValue` prop\");\n\t\tif (props.type === \"horizontal\" && (0, _utils.isNotDefined)(props[propName])) return new Error(\"when type = `horizontal` `yValue` is required\");\n\t\t// if (isDefined(props[propName]) && typeof props[propName] !== \"number\") return new Error(\"prop `yValue` accepts a number\");\n\t},\n\txValue: function xValue(props, propName /* , componentName */) {\n\t\tif (props.type === \"horizontal\" && (0, _utils.isDefined)(props[propName])) return new Error(\"Do not define `xValue` when type is `horizontal`, define the `yValue` prop\");\n\t\tif (props.type === \"vertical\" && (0, _utils.isNotDefined)(props[propName])) return new Error(\"when type = `vertical` `xValue` is required\");\n\t\t// if (isDefined(props[propName]) && typeof props[propName] !== \"number\") return new Error(\"prop `xValue` accepts a number\");\n\t}\n};\n\nStraightLine.defaultProps = {\n\tclassName: \"line \",\n\ttype: \"horizontal\",\n\tstroke: \"#000000\",\n\topacity: 0.5,\n\tstrokeWidth: 1,\n\tstrokeDasharray: \"Solid\"\n};\n\nexports.default = StraightLine;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\nhttps://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/exponentialMovingAverage.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2015 Scott Logic Ltd.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.EMA;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar source = (0, _utils.path)(sourcePath);\n\t\tvar alpha = 2 / (windowSize + 1);\n\t\tvar previous = void 0;\n\t\tvar initialAccumulator = 0;\n\t\tvar skip = 0;\n\n\t\treturn data.map(function (d, i) {\n\t\t\tvar v = source(d, i);\n\t\t\tif ((0, _utils.isNotDefined)(previous) && (0, _utils.isNotDefined)(v)) {\n\t\t\t\tskip++;\n\t\t\t\treturn undefined;\n\t\t\t} else if (i < windowSize + skip - 1) {\n\t\t\t\tinitialAccumulator += v;\n\t\t\t\treturn undefined;\n\t\t\t} else if (i === windowSize + skip - 1) {\n\t\t\t\tinitialAccumulator += v;\n\t\t\t\tvar initialValue = initialAccumulator / windowSize;\n\t\t\t\tprevious = initialValue;\n\t\t\t\treturn initialValue;\n\t\t\t} else {\n\t\t\t\tvar nextValue = v * alpha + (1 - alpha) * previous;\n\t\t\t\tprevious = nextValue;\n\t\t\t\treturn nextValue;\n\t\t\t}\n\t\t});\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.EMA, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ClickableCircle = function (_Component) {\n\t_inherits(ClickableCircle, _Component);\n\n\tfunction ClickableCircle(props) {\n\t\t_classCallCheck(this, ClickableCircle);\n\n\t\tvar _this = _possibleConstructorReturn(this, (ClickableCircle.__proto__ || Object.getPrototypeOf(ClickableCircle)).call(this, props));\n\n\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(ClickableCircle, [{\n\t\tkey: \"saveNode\",\n\t\tvalue: function saveNode(node) {\n\t\t\tthis.node = node;\n\t\t}\n\t}, {\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar mouseXY = moreProps.mouseXY;\n\t\t\t// const { r } = this.props;\n\n\t\t\tvar r = this.props.r + 7;\n\n\t\t\tvar _helper = helper(this.props, moreProps),\n\t\t\t _helper2 = _slicedToArray(_helper, 2),\n\t\t\t x = _helper2[0],\n\t\t\t y = _helper2[1];\n\n\t\t\tvar _mouseXY = _slicedToArray(mouseXY, 2),\n\t\t\t mx = _mouseXY[0],\n\t\t\t my = _mouseXY[1];\n\n\t\t\tvar hover = x - r < mx && mx < x + r && y - r < my && my < y + r;\n\n\t\t\t// console.log(\"hover->\", hover);\n\t\t\treturn hover;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t stroke = _props.stroke,\n\t\t\t strokeWidth = _props.strokeWidth,\n\t\t\t fill = _props.fill;\n\t\t\tvar _props2 = this.props,\n\t\t\t fillOpacity = _props2.fillOpacity,\n\t\t\t strokeOpacity = _props2.strokeOpacity;\n\t\t\tvar r = this.props.r;\n\n\t\t\tvar _helper3 = helper(this.props, moreProps),\n\t\t\t _helper4 = _slicedToArray(_helper3, 2),\n\t\t\t x = _helper4[0],\n\t\t\t y = _helper4[1];\n\n\t\t\tctx.lineWidth = strokeWidth;\n\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, fillOpacity);\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(x, y, r, 0, 2 * Math.PI, false);\n\t\t\tctx.fill();\n\t\t\tctx.stroke();\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t fill = _props3.fill;\n\t\t\tvar _props4 = this.props,\n\t\t\t fillOpacity = _props4.fillOpacity,\n\t\t\t strokeOpacity = _props4.strokeOpacity;\n\t\t\tvar r = this.props.r;\n\n\t\t\tvar _helper5 = helper(this.props, moreProps),\n\t\t\t _helper6 = _slicedToArray(_helper5, 2),\n\t\t\t x = _helper6[0],\n\t\t\t y = _helper6[1];\n\n\t\t\treturn _react2.default.createElement(\"circle\", { cx: x, cy: y, r: r,\n\t\t\t\tstrokeWidth: strokeWidth,\n\t\t\t\tstroke: stroke,\n\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\tfill: fill,\n\t\t\t\tfillOpacity: fillOpacity\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar interactiveCursorClass = this.props.interactiveCursorClass;\n\t\t\tvar show = this.props.show;\n\t\t\tvar _props5 = this.props,\n\t\t\t onDragStart = _props5.onDragStart,\n\t\t\t onDrag = _props5.onDrag,\n\t\t\t onDragComplete = _props5.onDragComplete;\n\n\n\t\t\treturn show ? _react2.default.createElement(_GenericChartComponent2.default, { ref: this.saveNode,\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\t\t\t\tselected: true,\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tonDragStart: onDragStart,\n\t\t\t\tonDrag: onDrag,\n\t\t\t\tonDragComplete: onDragComplete,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\n\t\t\t\tdrawOn: [\"pan\", \"mousemove\", \"drag\"]\n\t\t\t}) : null;\n\t\t}\n\t}]);\n\n\treturn ClickableCircle;\n}(_react.Component);\n\nfunction helper(props, moreProps) {\n\tvar xyProvider = props.xyProvider,\n\t cx = props.cx,\n\t cy = props.cy;\n\n\n\tif ((0, _utils.isDefined)(xyProvider)) {\n\t\treturn xyProvider(moreProps);\n\t}\n\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale;\n\n\n\tvar x = xScale(cx);\n\tvar y = yScale(cy);\n\treturn [x, y];\n}\nClickableCircle.propTypes = {\n\txyProvider: _propTypes2.default.func,\n\n\tonDragStart: _propTypes2.default.func.isRequired,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tstroke: _propTypes2.default.string.isRequired,\n\tfill: _propTypes2.default.string.isRequired,\n\tr: _propTypes2.default.number.isRequired,\n\n\tcx: _propTypes2.default.number,\n\tcy: _propTypes2.default.number,\n\n\tclassName: _propTypes2.default.string.isRequired,\n\tshow: _propTypes2.default.bool.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\tfillOpacity: _propTypes2.default.number.isRequired,\n\tinteractiveCursorClass: _propTypes2.default.string\n};\n\nClickableCircle.defaultProps = {\n\tclassName: \"react-stockcharts-interactive-line-edge\",\n\tonDragStart: _utils.noop,\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\tonMove: _utils.noop,\n\tshow: false,\n\tfillOpacity: 1,\n\tstrokeOpacity: 1\n};\n\nexports.default = ClickableCircle;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _utils = require(\"../../utils\");\n\nvar _ChartDataUtil = require(\"../../utils/ChartDataUtil\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MouseLocationIndicator = function (_Component) {\n\t_inherits(MouseLocationIndicator, _Component);\n\n\tfunction MouseLocationIndicator(props) {\n\t\t_classCallCheck(this, MouseLocationIndicator);\n\n\t\tvar _this = _possibleConstructorReturn(this, (MouseLocationIndicator.__proto__ || Object.getPrototypeOf(MouseLocationIndicator)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\n\t\t_this.handleMousePosChange = _this.handleMousePosChange.bind(_this);\n\t\t_this.handleMouseDown = _this.handleMouseDown.bind(_this);\n\t\t_this.handleClick = _this.handleClick.bind(_this);\n\t\t_this.xy = _this.xy.bind(_this);\n\n\t\t_this.mutableState = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(MouseLocationIndicator, [{\n\t\tkey: \"handleMouseDown\",\n\t\tvalue: function handleMouseDown(moreProps, e) {\n\t\t\tvar pos = this.xy(moreProps, e);\n\t\t\tif ((0, _utils.isDefined)(pos)) {\n\t\t\t\tvar xValue = pos.xValue,\n\t\t\t\t yValue = pos.yValue,\n\t\t\t\t x = pos.x,\n\t\t\t\t y = pos.y;\n\n\t\t\t\tthis.mutableState = { x: x, y: y };\n\t\t\t\tthis.props.onMouseDown([xValue, yValue], moreProps, e);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(moreProps, e) {\n\t\t\tvar pos = this.xy(moreProps, e);\n\t\t\tif ((0, _utils.isDefined)(pos)) {\n\t\t\t\tvar xValue = pos.xValue,\n\t\t\t\t yValue = pos.yValue,\n\t\t\t\t x = pos.x,\n\t\t\t\t y = pos.y;\n\n\t\t\t\tthis.mutableState = { x: x, y: y };\n\t\t\t\tthis.props.onClick([xValue, yValue], moreProps, e);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"xy\",\n\t\tvalue: function xy(moreProps, e) {\n\t\t\tvar xAccessor = moreProps.xAccessor,\n\t\t\t plotData = moreProps.plotData;\n\t\t\tvar mouseXY = moreProps.mouseXY,\n\t\t\t currentItem = moreProps.currentItem,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\t\t\tvar _props = this.props,\n\t\t\t enabled = _props.enabled,\n\t\t\t snap = _props.snap,\n\t\t\t shouldDisableSnap = _props.shouldDisableSnap,\n\t\t\t snapTo = _props.snapTo;\n\n\n\t\t\tif (enabled && (0, _utils.isDefined)(currentItem) && (0, _utils.isDefined)(e)) {\n\t\t\t\tvar xValue = snap && !shouldDisableSnap(e) ? xAccessor(currentItem) : (0, _ChartDataUtil.getXValue)(xScale, xAccessor, mouseXY, plotData);\n\t\t\t\tvar yValue = snap && !shouldDisableSnap(e) ? (0, _utils.getClosestValue)(snapTo(currentItem), yScale.invert(mouseXY[1])) : yScale.invert(mouseXY[1]);\n\n\t\t\t\tvar x = xScale(xValue);\n\t\t\t\tvar y = yScale(yValue);\n\n\t\t\t\treturn { xValue: xValue, yValue: yValue, x: x, y: y };\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleMousePosChange\",\n\t\tvalue: function handleMousePosChange(moreProps, e) {\n\t\t\tif (!(0, _utils.shallowEqual)(moreProps.mousXY, moreProps.prevMouseXY)) {\n\t\t\t\tvar pos = this.xy(moreProps, e);\n\t\t\t\tif ((0, _utils.isDefined)(pos)) {\n\t\t\t\t\tvar xValue = pos.xValue,\n\t\t\t\t\t yValue = pos.yValue,\n\t\t\t\t\t x = pos.x,\n\t\t\t\t\t y = pos.y;\n\n\t\t\t\t\tthis.mutableState = { x: x, y: y };\n\t\t\t\t\tthis.props.onMouseMove([xValue, yValue], e);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t enabled = _props2.enabled,\n\t\t\t r = _props2.r,\n\t\t\t stroke = _props2.stroke,\n\t\t\t strokeWidth = _props2.strokeWidth;\n\t\t\tvar _mutableState = this.mutableState,\n\t\t\t x = _mutableState.x,\n\t\t\t y = _mutableState.y;\n\t\t\tvar show = moreProps.show;\n\t\t\t// console.log(show)\n\n\t\t\tif (enabled && show && (0, _utils.isDefined)(x)) {\n\t\t\t\tctx.lineWidth = strokeWidth;\n\t\t\t\tctx.strokeStyle = stroke;\n\t\t\t\tctx.moveTo(x, y);\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(x, y, r, 0, 2 * Math.PI, false);\n\t\t\t\tctx.stroke();\n\t\t\t\t// ctx.fill();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t enabled = _props3.enabled,\n\t\t\t r = _props3.r,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t opacity = _props3.opacity;\n\t\t\tvar _mutableState2 = this.mutableState,\n\t\t\t x = _mutableState2.x,\n\t\t\t y = _mutableState2.y;\n\t\t\tvar show = moreProps.show;\n\n\t\t\t// console.log(\"HERE\")\n\t\t\t// console.log(stroke, strokeWidth, opacity)\n\n\t\t\treturn enabled && show && (0, _utils.isDefined)(x) ? _react2.default.createElement(\"circle\", {\n\t\t\t\tcx: x,\n\t\t\t\tcy: y,\n\t\t\t\tr: r,\n\t\t\t\tstroke: stroke,\n\t\t\t\topacity: opacity,\n\t\t\t\tfill: \"none\",\n\t\t\t\tstrokeWidth: strokeWidth }) : null;\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props4 = this.props,\n\t\t\t enabled = _props4.enabled,\n\t\t\t disablePan = _props4.disablePan;\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tonMouseDown: this.handleMouseDown,\n\t\t\t\tonClick: this.handleClick,\n\t\t\t\tonContextMenu: this.handleContextMenu,\n\t\t\t\tonMouseMove: this.handleMousePosChange,\n\t\t\t\tonPan: this.handleMousePosChange,\n\n\t\t\t\tdisablePan: enabled && disablePan,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn MouseLocationIndicator;\n}(_react.Component);\n\nMouseLocationIndicator.propTypes = {\n\tenabled: _propTypes2.default.bool.isRequired,\n\tsnap: _propTypes2.default.bool.isRequired,\n\tshouldDisableSnap: _propTypes2.default.func.isRequired,\n\tsnapTo: _propTypes2.default.func,\n\n\tonMouseMove: _propTypes2.default.func.isRequired,\n\tonMouseDown: _propTypes2.default.func.isRequired,\n\tonClick: _propTypes2.default.func.isRequired,\n\tr: _propTypes2.default.number.isRequired,\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tdisablePan: _propTypes2.default.bool.isRequired\n};\n\nMouseLocationIndicator.defaultProps = {\n\tonMouseMove: _utils.noop,\n\tonMouseDown: _utils.noop,\n\tonClick: _utils.noop,\n\tshouldDisableSnap: (0, _utils.functor)(false),\n\tstroke: \"#000000\",\n\tstrokeWidth: 1,\n\topacity: 1,\n\tdisablePan: true\n};\n\nexports.default = MouseLocationIndicator;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.rotateXY = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.identityStack = identityStack;\nexports.drawOnCanvasHelper = drawOnCanvasHelper;\nexports.svgHelper = svgHelper;\nexports.getBarsSVG2 = getBarsSVG2;\nexports.drawOnCanvas2 = drawOnCanvas2;\nexports.getBars = getBars;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Collection = require(\"d3-collection\");\n\nvar _d3Array = require(\"d3-array\");\n\nvar _d3Shape = require(\"d3-shape\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StackedBarSeries = function (_Component) {\n\t_inherits(StackedBarSeries, _Component);\n\n\tfunction StackedBarSeries(props) {\n\t\t_classCallCheck(this, StackedBarSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (StackedBarSeries.__proto__ || Object.getPrototypeOf(StackedBarSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(StackedBarSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\t// var { xScale, chartConfig: { yScale }, plotData } = moreProps;\n\n\t\t\tdrawOnCanvasHelper(ctx, this.props, moreProps, xAccessor, _d3Shape.stack);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tsvgHelper(this.props, moreProps, xAccessor, _d3Shape.stack)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar clip = this.props.clip;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: clip,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn StackedBarSeries;\n}(_react.Component);\n\nStackedBarSeries.propTypes = {\n\tbaseAt: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]).isRequired,\n\tdirection: _propTypes2.default.oneOf([\"up\", \"down\"]).isRequired,\n\tstroke: _propTypes2.default.bool.isRequired,\n\twidth: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]).isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\tclassName: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\tclip: _propTypes2.default.bool.isRequired\n};\n\nStackedBarSeries.defaultProps = {\n\tbaseAt: function baseAt(xScale, yScale /* , d*/) {\n\t\treturn (0, _utils.head)(yScale.range());\n\t},\n\tdirection: \"up\",\n\tclassName: \"bar\",\n\tstroke: true,\n\tfill: \"#4682B4\",\n\topacity: 0.5,\n\twidth: _utils.plotDataLengthBarWidth,\n\twidthRatio: 0.8,\n\tclip: true,\n\tswapScales: false\n};\n\nfunction identityStack() {\n\tvar keys = [];\n\tfunction stack(data) {\n\t\tvar response = keys.map(function (key, i) {\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\tvar arrays = data.map(function (d) {\n\t\t\t\t// eslint-disable-next-line prefer-const\n\t\t\t\tvar array = [0, d[key]];\n\t\t\t\tarray.data = d;\n\t\t\t\treturn array;\n\t\t\t});\n\t\t\tarrays.key = key;\n\t\t\tarrays.index = i;\n\t\t\treturn arrays;\n\t\t});\n\t\treturn response;\n\t}\n\tstack.keys = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn keys;\n\t\t}\n\t\tkeys = x;\n\t\treturn stack;\n\t};\n\treturn stack;\n}\n\nfunction drawOnCanvasHelper(ctx, props, moreProps, xAccessor, stackFn) {\n\tvar defaultPostAction = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : _utils.identity;\n\tvar postRotateAction = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : rotateXY;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t plotData = moreProps.plotData;\n\n\n\tvar bars = doStuff(props, xAccessor, plotData, xScale, yScale, stackFn, postRotateAction, defaultPostAction);\n\n\tdrawOnCanvas2(props, ctx, bars);\n}\n\nfunction convertToArray(item) {\n\treturn Array.isArray(item) ? item : [item];\n}\n\nfunction svgHelper(props, moreProps, xAccessor, stackFn) {\n\tvar defaultPostAction = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _utils.identity;\n\tvar postRotateAction = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : rotateXY;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t plotData = moreProps.plotData;\n\n\tvar bars = doStuff(props, xAccessor, plotData, xScale, yScale, stackFn, postRotateAction, defaultPostAction);\n\treturn getBarsSVG2(props, bars);\n}\n\nfunction doStuff(props, xAccessor, plotData, xScale, yScale, stackFn, postRotateAction, defaultPostAction) {\n\tvar yAccessor = props.yAccessor,\n\t swapScales = props.swapScales;\n\n\n\tvar modifiedYAccessor = swapScales ? convertToArray(props.xAccessor) : convertToArray(yAccessor);\n\tvar modifiedXAccessor = swapScales ? yAccessor : xAccessor;\n\n\tvar modifiedXScale = swapScales ? yScale : xScale;\n\tvar modifiedYScale = swapScales ? xScale : yScale;\n\n\tvar postProcessor = swapScales ? postRotateAction : defaultPostAction;\n\n\tvar bars = getBars(props, modifiedXAccessor, modifiedYAccessor, modifiedXScale, modifiedYScale, plotData, stackFn, postProcessor);\n\n\treturn bars;\n}\n\nvar rotateXY = exports.rotateXY = function rotateXY(array) {\n\treturn array.map(function (each) {\n\t\treturn _extends({}, each, {\n\t\t\tx: each.y,\n\t\t\ty: each.x,\n\t\t\theight: each.width,\n\t\t\twidth: each.height\n\t\t});\n\t});\n};\n\nfunction getBarsSVG2(props, bars) {\n\t/* eslint-disable react/prop-types */\n\tvar opacity = props.opacity;\n\t/* eslint-enable react/prop-types */\n\n\treturn bars.map(function (d, idx) {\n\t\tif (d.width <= 1) {\n\t\t\treturn _react2.default.createElement(\"line\", { key: idx, className: d.className,\n\t\t\t\tstroke: d.fill,\n\t\t\t\tx1: d.x, y1: d.y,\n\t\t\t\tx2: d.x, y2: d.y + d.height });\n\t\t}\n\t\treturn _react2.default.createElement(\"rect\", { key: idx, className: d.className,\n\t\t\tstroke: d.stroke,\n\t\t\tfill: d.fill,\n\t\t\tx: d.x,\n\t\t\ty: d.y,\n\t\t\twidth: d.width,\n\t\t\tfillOpacity: opacity,\n\t\t\theight: d.height });\n\t});\n}\n\nfunction drawOnCanvas2(props, ctx, bars) {\n\tvar stroke = props.stroke;\n\n\n\tvar nest = (0, _d3Collection.nest)().key(function (d) {\n\t\treturn d.fill;\n\t}).entries(bars);\n\n\tnest.forEach(function (outer) {\n\t\tvar key = outer.key,\n\t\t values = outer.values;\n\n\t\tif ((0, _utils.head)(values).width > 1) {\n\t\t\tctx.strokeStyle = key;\n\t\t}\n\t\tvar fillStyle = (0, _utils.head)(values).width <= 1 ? key : (0, _utils.hexToRGBA)(key, props.opacity);\n\t\tctx.fillStyle = fillStyle;\n\n\t\tvalues.forEach(function (d) {\n\t\t\tif (d.width <= 1) {\n\t\t\t\t/* */\n\t\t\t\t/*\n ctx.beginPath();\n ctx.moveTo(d.x, d.y);\n ctx.lineTo(d.x, d.y + d.height);\n ctx.stroke();\n */\n\t\t\t\tctx.fillRect(d.x - 0.5, d.y, 1, d.height);\n\t\t\t} else {\n\t\t\t\t/* */\n\t\t\t\t/*\n ctx.beginPath();\n ctx.rect(d.x, d.y, d.width, d.height);\n ctx.fill();\n */\n\t\t\t\tctx.fillRect(d.x, d.y, d.width, d.height);\n\t\t\t\tif (stroke) ctx.strokeRect(d.x, d.y, d.width, d.height);\n\t\t\t}\n\t\t});\n\t});\n}\n\nfunction getBars(props, xAccessor, yAccessor, xScale, yScale, plotData) {\n\tvar stack = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : identityStack;\n\tvar after = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : _utils.identity;\n\tvar baseAt = props.baseAt,\n\t className = props.className,\n\t fill = props.fill,\n\t stroke = props.stroke,\n\t _props$spaceBetweenBa = props.spaceBetweenBar,\n\t spaceBetweenBar = _props$spaceBetweenBa === undefined ? 0 : _props$spaceBetweenBa;\n\n\n\tvar getClassName = (0, _utils.functor)(className);\n\tvar getFill = (0, _utils.functor)(fill);\n\tvar getBase = (0, _utils.functor)(baseAt);\n\n\tvar widthFunctor = (0, _utils.functor)(props.width);\n\tvar width = widthFunctor(props, {\n\t\txScale: xScale,\n\t\txAccessor: xAccessor,\n\t\tplotData: plotData\n\t});\n\n\tvar barWidth = Math.round(width);\n\n\tvar eachBarWidth = (barWidth - spaceBetweenBar * (yAccessor.length - 1)) / yAccessor.length;\n\n\tvar offset = barWidth === 1 ? 0 : 0.5 * width;\n\n\tvar ds = plotData.map(function (each) {\n\t\t// eslint-disable-next-line prefer-const\n\t\tvar d = {\n\t\t\tappearance: {},\n\t\t\tx: xAccessor(each)\n\t\t};\n\t\tyAccessor.forEach(function (eachYAccessor, i) {\n\t\t\tvar key = \"y\" + i;\n\t\t\td[key] = eachYAccessor(each);\n\t\t\tvar appearance = {\n\t\t\t\tclassName: getClassName(each, i),\n\t\t\t\tstroke: stroke ? getFill(each, i) : \"none\",\n\t\t\t\tfill: getFill(each, i)\n\t\t\t};\n\t\t\td.appearance[key] = appearance;\n\t\t});\n\t\treturn d;\n\t});\n\n\tvar keys = yAccessor.map(function (_, i) {\n\t\treturn \"y\" + i;\n\t});\n\n\t// console.log(ds);\n\n\tvar data = stack().keys(keys)(ds);\n\n\t// console.log(data);\n\n\tvar newData = data.map(function (each, i) {\n\t\tvar key = each.key;\n\t\treturn each.map(function (d) {\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\tvar array = [d[0], d[1]];\n\t\t\tarray.data = {\n\t\t\t\tx: d.data.x,\n\t\t\t\ti: i,\n\t\t\t\tappearance: d.data.appearance[key]\n\t\t\t};\n\t\t\treturn array;\n\t\t});\n\t});\n\t// console.log(newData);\n\t// console.log(merge(newData));\n\n\tvar bars = (0, _d3Array.merge)(newData)\n\t// .filter(d => isDefined(d.y))\n\t.map(function (d) {\n\t\t// let baseValue = yScale.invert(getBase(xScale, yScale, d.datum));\n\t\tvar y = yScale(d[1]);\n\t\t/* let h = isDefined(d.y0) && d.y0 !== 0 && !isNaN(d.y0)\n \t\t? yScale(d.y0) - y\n \t\t: getBase(xScale, yScale, d.datum) - yScale(d.y)*/\n\t\tvar h = getBase(xScale, yScale, d.data) - yScale(d[1] - d[0]);\n\t\t// console.log(d.y, yScale.domain(), yScale.range())\n\t\t// let h = ;\n\t\t// if (d.y < 0) h = -h;\n\t\t// console.log(d, y, h)\n\t\tif (h < 0) {\n\t\t\ty = y + h;\n\t\t\th = -h;\n\t\t}\n\t\t// console.log(d.data.i, Math.round(offset - (d.data.i > 0 ? (eachBarWidth + spaceBetweenBar) * d.data.i : 0)))\n\t\t/* console.log(d.series, d.datum.date, d.x,\n \t\tgetBase(xScale, yScale, d.datum), `d.y=${d.y}, d.y0=${d.y0}, y=${y}, h=${h}`)*/\n\t\treturn _extends({}, d.data.appearance, {\n\t\t\t// series: d.series,\n\t\t\t// i: d.x,\n\t\t\tx: Math.round(xScale(d.data.x) - width / 2),\n\t\t\ty: y,\n\t\t\tgroupOffset: Math.round(offset - (d.data.i > 0 ? (eachBarWidth + spaceBetweenBar) * d.data.i : 0)),\n\t\t\tgroupWidth: Math.round(eachBarWidth),\n\t\t\toffset: Math.round(offset),\n\t\t\theight: h,\n\t\t\twidth: barWidth\n\t\t});\n\t}).filter(function (bar) {\n\t\treturn !isNaN(bar.y);\n\t});\n\n\treturn after(bars);\n}\n\nexports.default = StackedBarSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.renderSVG = renderSVG;\nexports.drawOnCanvas = drawOnCanvas;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable react/prop-types */\nfunction renderSVG(props) {\n\tvar className = props.className;\n\n\n\tvar edge = helper(props);\n\tif (edge === null) return null;\n\tvar line = void 0,\n\t coordinateBase = void 0,\n\t coordinate = void 0;\n\n\tif ((0, _utils.isDefined)(edge.line)) {\n\t\tline = _react2.default.createElement(\"line\", {\n\t\t\tclassName: \"react-stockcharts-cross-hair\",\n\t\t\tstrokeOpacity: edge.line.opacity,\n\t\t\tstroke: edge.line.stroke,\n\t\t\tstrokeDasharray: (0, _utils.getStrokeDasharray)(edge.line.strokeDasharray),\n\t\t\tx1: edge.line.x1,\n\t\t\ty1: edge.line.y1,\n\t\t\tx2: edge.line.x2,\n\t\t\ty2: edge.line.y2\n\t\t});\n\t}\n\tif ((0, _utils.isDefined)(edge.coordinateBase)) {\n\t\tvar _edge$coordinateBase = edge.coordinateBase,\n\t\t rectWidth = _edge$coordinateBase.rectWidth,\n\t\t rectHeight = _edge$coordinateBase.rectHeight,\n\t\t arrowWidth = _edge$coordinateBase.arrowWidth;\n\n\n\t\tvar path = edge.orient === \"left\" ? \"M0,0L0,\" + rectHeight + \"L\" + rectWidth + \",\" + rectHeight + \"L\" + (rectWidth + arrowWidth) + \",10L\" + rectWidth + \",0L0,0L0,0\" : \"M0,\" + arrowWidth + \"L\" + arrowWidth + \",\" + rectHeight + \"L\" + (rectWidth + arrowWidth) + \",\" + rectHeight + \"L\" + (rectWidth + arrowWidth) + \",0L\" + arrowWidth + \",0L0,\" + arrowWidth;\n\n\t\tcoordinateBase = edge.orient === \"left\" || edge.orient === \"right\" ? _react2.default.createElement(\n\t\t\t\"g\",\n\t\t\t{\n\t\t\t\tkey: 1,\n\t\t\t\ttransform: \"translate(\" + edge.coordinateBase.edgeXRect + \",\" + edge.coordinateBase.edgeYRect + \")\"\n\t\t\t},\n\t\t\t_react2.default.createElement(\"path\", {\n\t\t\t\td: path,\n\t\t\t\tclassName: \"react-stockchart-text-background\",\n\t\t\t\theight: rectHeight,\n\t\t\t\twidth: rectWidth,\n\t\t\t\tstroke: edge.coordinateBase.stroke,\n\t\t\t\tstrokeLinejoin: \"miter\",\n\t\t\t\tstrokeOpacity: edge.coordinateBase.strokeOpacity,\n\t\t\t\tstrokeWidth: edge.coordinateBase.strokeWidth,\n\t\t\t\tfill: edge.coordinateBase.fill,\n\t\t\t\tfillOpacity: edge.coordinateBase.opacity\n\t\t\t})\n\t\t) : _react2.default.createElement(\"rect\", {\n\t\t\tkey: 1,\n\t\t\tclassName: \"react-stockchart-text-background\",\n\t\t\tx: edge.coordinateBase.edgeXRect,\n\t\t\ty: edge.coordinateBase.edgeYRect,\n\t\t\theight: rectHeight,\n\t\t\twidth: rectWidth,\n\t\t\tfill: edge.coordinateBase.fill,\n\t\t\topacity: edge.coordinateBase.opacity\n\t\t});\n\n\t\tcoordinate = _react2.default.createElement(\n\t\t\t\"text\",\n\t\t\t{\n\t\t\t\tkey: 2,\n\t\t\t\tx: edge.coordinate.edgeXText,\n\t\t\t\ty: edge.coordinate.edgeYText,\n\t\t\t\ttextAnchor: edge.coordinate.textAnchor,\n\t\t\t\tfontFamily: edge.coordinate.fontFamily,\n\t\t\t\tfontSize: edge.coordinate.fontSize,\n\t\t\t\tdy: \".32em\",\n\t\t\t\tfill: edge.coordinate.textFill\n\t\t\t},\n\t\t\tedge.coordinate.displayCoordinate\n\t\t);\n\t}\n\treturn _react2.default.createElement(\n\t\t\"g\",\n\t\t{ className: className },\n\t\tline,\n\t\tcoordinateBase,\n\t\tcoordinate\n\t);\n}\n/* eslint-enable react/prop-types */\n\nfunction helper(props) {\n\tvar displayCoordinate = props.coordinate,\n\t show = props.show,\n\t type = props.type,\n\t orient = props.orient,\n\t edgeAt = props.edgeAt,\n\t hideLine = props.hideLine,\n\t lineStrokeDasharray = props.lineStrokeDasharray;\n\tvar fill = props.fill,\n\t opacity = props.opacity,\n\t fontFamily = props.fontFamily,\n\t fontSize = props.fontSize,\n\t textFill = props.textFill,\n\t lineStroke = props.lineStroke,\n\t lineOpacity = props.lineOpacity;\n\tvar stroke = props.stroke,\n\t strokeOpacity = props.strokeOpacity,\n\t strokeWidth = props.strokeWidth;\n\tvar arrowWidth = props.arrowWidth,\n\t rectWidth = props.rectWidth,\n\t rectHeight = props.rectHeight,\n\t rectRadius = props.rectRadius;\n\tvar x1 = props.x1,\n\t y1 = props.y1,\n\t x2 = props.x2,\n\t y2 = props.y2,\n\t dx = props.dx;\n\n\n\tif (!show) return null;\n\tvar coordinateBase = void 0,\n\t coordinate = void 0;\n\tif ((0, _utils.isDefined)(displayCoordinate)) {\n\t\tvar textAnchor = \"middle\"; // TODO: Below it is necessary to implement logic for the possibility of alignment from the right or from the left.\n\n\t\tvar edgeXRect = void 0,\n\t\t edgeYRect = void 0,\n\t\t edgeXText = void 0,\n\t\t edgeYText = void 0;\n\n\t\tif (type === \"horizontal\") {\n edgeXRect = dx + (orient === \"right\" ? edgeAt + 1 : edgeAt - rectWidth - 1);\n edgeYRect = y1 - rectHeight / 2 - strokeWidth;\n edgeXText = dx + (orient === \"right\" ? edgeAt + rectWidth / 2 : edgeAt - rectWidth / 2);\n\t\t\tedgeYText = y1;\n\t\t} else {\n\t\t\tvar dy = orient === \"bottom\" ? strokeWidth - 1 : -strokeWidth + 1;\n\t\t\tedgeXRect = x1 - rectWidth / 2;\n\t\t\tedgeYRect = (orient === \"bottom\" ? edgeAt : edgeAt - rectHeight) + dy;\n\t\t\tedgeXText = x1;\n\t\t\tedgeYText = (orient === \"bottom\" ? edgeAt + rectHeight / 2 : edgeAt - rectHeight / 2) + dy;\n\t\t}\n\n\t\tcoordinateBase = {\n\t\t\tedgeXRect: edgeXRect,\n\t\t\tedgeYRect: edgeYRect,\n\t\t\trectHeight: rectHeight + strokeWidth,\n\t\t\trectWidth: rectWidth,\n\t\t\trectRadius: rectRadius,\n\t\t\tfill: fill,\n\t\t\topacity: opacity,\n\t\t\tarrowWidth: arrowWidth,\n\t\t\tstroke: stroke,\n\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\tstrokeWidth: strokeWidth\n\t\t};\n\t\tcoordinate = {\n\t\t\tedgeXText: edgeXText,\n\t\t\tedgeYText: edgeYText,\n\t\t\ttextAnchor: textAnchor,\n\t\t\tfontFamily: fontFamily,\n\t\t\tfontSize: fontSize,\n\t\t\ttextFill: textFill,\n\t\t\tdisplayCoordinate: displayCoordinate\n\t\t};\n\t}\n\n\tvar line = hideLine ? undefined : {\n\t\topacity: lineOpacity,\n\t\tstroke: lineStroke,\n\t\tstrokeDasharray: lineStrokeDasharray,\n\t\tx1: x1,\n\t\ty1: y1,\n\t\tx2: x2,\n\t\ty2: y2\n\t};\n\n\treturn {\n\t\tcoordinateBase: coordinateBase,\n\t\tcoordinate: coordinate,\n\t\tline: line,\n\t\torient: orient\n\t};\n}\n\nfunction drawOnCanvas(ctx, props) {\n\tvar fontSize = props.fontSize,\n\t fontFamily = props.fontFamily;\n\n\n\tctx.font = fontSize + \"px \" + fontFamily;\n\tctx.textBaseline = \"middle\";\n\tvar width = Math.round(ctx.measureText(props.coordinate).width + 10);\n\n var edge = helper(_extends({}, props, { rectWidth: width }));\n\n\tif (edge === null) return;\n\n\tif ((0, _utils.isDefined)(edge.line)) {\n\t\tvar dashArray = (0, _utils.getStrokeDasharray)(edge.line.strokeDasharray).split(\",\").map(function (d) {\n\t\t\treturn +d;\n\t\t});\n\t\tctx.setLineDash(dashArray);\n\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(edge.line.stroke, edge.line.opacity);\n\t\tctx.lineWidth = 1;\n\t\tctx.beginPath();\n\t\tctx.moveTo(edge.line.x1, edge.line.y1);\n\t\tctx.lineTo(edge.line.x2, edge.line.y2);\n\t\tctx.stroke();\n\t}\n\n\tctx.setLineDash([]);\n\tif ((0, _utils.isDefined)(edge.coordinateBase)) {\n\t\tvar _edge$coordinateBase2 = edge.coordinateBase,\n\t\t rectWidth = _edge$coordinateBase2.rectWidth,\n\t\t rectHeight = _edge$coordinateBase2.rectHeight,\n\t\t rectRadius = _edge$coordinateBase2.rectRadius,\n\t\t arrowWidth = _edge$coordinateBase2.arrowWidth;\n\n\n\t\tctx.fillStyle = (0, _utils.hexToRGBA)(edge.coordinateBase.fill, edge.coordinateBase.opacity);\n\t\tif ((0, _utils.isDefined)(edge.coordinateBase.stroke)) {\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(edge.coordinateBase.stroke, edge.coordinateBase.strokeOpacity);\n\t\t\tctx.lineWidth = edge.coordinateBase.strokeWidth;\n\t\t}\n\n\t\tvar x = edge.coordinateBase.edgeXRect;\n\t\tvar y = edge.coordinateBase.edgeYRect;\n\t\tvar halfHeight = rectHeight / 2;\n\n\t\tctx.beginPath();\n\t\tif (edge.orient === \"right\") {\n\t\t\tx -= arrowWidth;\n\t\t\tctx.moveTo(x, y + halfHeight);\n\t\t\tctx.lineTo(x + arrowWidth, y);\n\t\t\tctx.lineTo(x + rectWidth + arrowWidth, y);\n\t\t\tctx.lineTo(x + rectWidth + arrowWidth, y + rectHeight);\n\t\t\tctx.lineTo(x + arrowWidth, y + rectHeight);\n\t\t\tctx.closePath();\n\t\t} else if (edge.orient === \"left\") {\n\t\t\t// x += arrowWidth;\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + rectWidth, y);\n\t\t\tctx.lineTo(x + rectWidth + arrowWidth, y + halfHeight);\n\t\t\tctx.lineTo(x + rectWidth, y + rectHeight);\n\t\t\tctx.lineTo(x, y + rectHeight);\n\t\t\tctx.closePath();\n\t\t} else {\n\t\t\t// console.error(x, y, rectWidth, rectHeight)\n\t\t\tif (rectRadius) {\n\t\t\t\troundRect(ctx, x, y, rectWidth, rectHeight, 3);\n\t\t\t} else {\n\t\t\t\tctx.rect(x, y, rectWidth, rectHeight);\n\t\t\t}\n\t\t}\n\t\tctx.fill();\n\n\t\tif ((0, _utils.isDefined)(edge.coordinateBase.stroke)) {\n\t\t\tctx.stroke();\n\t\t}\n\n\t\tctx.fillStyle = edge.coordinate.textFill;\n ctx.textAlign = edge.coordinate.textAnchor === \"middle\" ? \"center\" : edge.coordinate.textAnchor;\n\t\tctx.fillText(edge.coordinate.displayCoordinate, edge.coordinate.edgeXText, edge.coordinate.edgeYText);\n\t}\n}\n\nfunction roundRect(ctx, x, y, width, height, radius) {\n\tctx.beginPath();\n\tctx.moveTo(x + radius, y);\n\tctx.lineTo(x + width - radius, y);\n\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\tctx.lineTo(x + width, y + height - radius);\n\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\tctx.lineTo(x + radius, y + height);\n\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\tctx.lineTo(x, y + radius);\n\tctx.quadraticCurveTo(x, y, x + radius, y);\n\tctx.closePath();\n}\n\n// export default EdgeCoordinate;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Shape = require(\"d3-shape\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AreaOnlySeries = function (_Component) {\n\t_inherits(AreaOnlySeries, _Component);\n\n\tfunction AreaOnlySeries(props) {\n\t\t_classCallCheck(this, AreaOnlySeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AreaOnlySeries.__proto__ || Object.getPrototypeOf(AreaOnlySeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(AreaOnlySeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t yAccessor = _props.yAccessor,\n\t\t\t defined = _props.defined,\n\t\t\t base = _props.base,\n\t\t\t canvasGradient = _props.canvasGradient;\n\t\t\tvar _props2 = this.props,\n\t\t\t fill = _props2.fill,\n\t\t\t stroke = _props2.stroke,\n\t\t\t opacity = _props2.opacity,\n\t\t\t interpolation = _props2.interpolation,\n\t\t\t canvasClip = _props2.canvasClip;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t xAccessor = moreProps.xAccessor;\n\n\n\t\t\tif (canvasClip) {\n\t\t\t\tctx.save();\n\t\t\t\tcanvasClip(ctx, moreProps);\n\t\t\t}\n\n\t\t\tif (canvasGradient != null) {\n\t\t\t\tctx.fillStyle = canvasGradient(moreProps, ctx);\n\t\t\t} else {\n\t\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, opacity);\n\t\t\t}\n\t\t\tctx.strokeStyle = stroke;\n\n\t\t\tctx.beginPath();\n\t\t\tvar newBase = (0, _utils.functor)(base);\n\t\t\tvar areaSeries = (0, _d3Shape.area)().defined(function (d) {\n\t\t\t\treturn defined(yAccessor(d));\n\t\t\t}).x(function (d) {\n\t\t\t\treturn Math.round(xScale(xAccessor(d)));\n\t\t\t}).y0(function (d) {\n\t\t\t\treturn newBase(yScale, d, moreProps);\n\t\t\t}).y1(function (d) {\n\t\t\t\treturn Math.round(yScale(yAccessor(d)));\n\t\t\t}).context(ctx);\n\n\t\t\tif ((0, _utils.isDefined)(interpolation)) {\n\t\t\t\tareaSeries.curve(interpolation);\n }\n if(plotData[plotData.length - 1].close == 0)\n {\n plotData = plotData.slice(0, plotData.length - 1);\n }\n\t\t\tareaSeries(plotData);\n\t\t\tctx.fill();\n\n\t\t\tif (canvasClip) {\n\t\t\t\tctx.restore();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t yAccessor = _props3.yAccessor,\n\t\t\t defined = _props3.defined,\n\t\t\t base = _props3.base,\n\t\t\t style = _props3.style;\n\t\t\tvar _props4 = this.props,\n\t\t\t stroke = _props4.stroke,\n\t\t\t fill = _props4.fill,\n\t\t\t className = _props4.className,\n\t\t\t opacity = _props4.opacity,\n\t\t\t interpolation = _props4.interpolation;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t xAccessor = moreProps.xAccessor;\n\n\n\t\t\tvar newBase = (0, _utils.functor)(base);\n\t\t\tvar areaSeries = (0, _d3Shape.area)().defined(function (d) {\n\t\t\t\treturn defined(yAccessor(d));\n\t\t\t}).x(function (d) {\n\t\t\t\treturn Math.round(xScale(xAccessor(d)));\n\t\t\t}).y0(function (d) {\n\t\t\t\treturn newBase(yScale, d, moreProps);\n\t\t\t}).y1(function (d) {\n\t\t\t\treturn Math.round(yScale(yAccessor(d)));\n\t\t\t});\n\n\t\t\tif ((0, _utils.isDefined)(interpolation)) {\n\t\t\t\tareaSeries.curve(interpolation);\n\t\t\t}\n\n\t\t\tvar d = areaSeries(plotData);\n\t\t\tvar newClassName = className.concat((0, _utils.isDefined)(stroke) ? \"\" : \" line-stroke\");\n\t\t\treturn _react2.default.createElement(\"path\", {\n\t\t\t\tstyle: style,\n\t\t\t\td: d,\n\t\t\t\tstroke: stroke,\n\t\t\t\tfill: (0, _utils.hexToRGBA)(fill, opacity),\n\t\t\t\tclassName: newClassName\n\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn AreaOnlySeries;\n}(_react.Component);\n\nAreaOnlySeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tstroke: _propTypes2.default.string,\n\tfill: _propTypes2.default.string,\n\topacity: _propTypes2.default.number,\n\tdefined: _propTypes2.default.func,\n\tbase: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.number]),\n\tinterpolation: _propTypes2.default.func,\n\tcanvasClip: _propTypes2.default.func,\n\tstyle: _propTypes2.default.object,\n\tcanvasGradient: _propTypes2.default.func\n};\n\nAreaOnlySeries.defaultProps = {\n\tclassName: \"line \",\n\tfill: \"none\",\n\topacity: 1,\n\tdefined: function defined(d) {\n\t\treturn !isNaN(d);\n\t},\n\tbase: function base(yScale /* , d, moreProps */) {\n\t\treturn (0, _utils.first)(yScale.range());\n\t}\n};\n\nexports.default = AreaOnlySeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.ATR;\n\tvar source = function source(d) {\n\t\treturn { open: d.open, high: d.high, low: d.low, close: d.close };\n\t};\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize;\n\n\n\t\tvar trueRangeAlgorithm = (0, _utils.slidingWindow)().windowSize(2).source(source).undefinedValue(function (d) {\n\t\t\treturn d.high - d.low;\n\t\t}) // the first TR value is simply the High minus the Low\n\t\t.accumulator(function (values) {\n\t\t\tvar prev = values[0];\n\t\t\tvar d = values[1];\n\t\t\treturn Math.max(d.high - d.low, d.high - prev.close, d.low - prev.close);\n\t\t});\n\n\t\tvar prevATR = void 0;\n\n\t\tvar atrAlgorithm = (0, _utils.slidingWindow)().skipInitial(1) // trueRange starts from index 1 so ATR starts from 1\n\t\t.windowSize(windowSize).accumulator(function (values) {\n\t\t\tvar tr = (0, _utils.last)(values);\n\t\t\tvar atr = (0, _utils.isDefined)(prevATR) ? (prevATR * (windowSize - 1) + tr) / windowSize : (0, _d3Array.sum)(values) / windowSize;\n\n\t\t\tprevATR = atr;\n\t\t\treturn atr;\n\t\t});\n\n\t\tvar newData = atrAlgorithm(trueRangeAlgorithm(data));\n\n\t\treturn newData;\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.ATR, x);\n\t\treturn calculator;\n\t};\n\n\tcalculator.source = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn source;\n\t\t}\n\t\tsource = x;\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nvar _utils = require(\"../utils\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar themes = exports.themes = {\n\tlight: {\n\t\tBollingerBand: {\n\t\t\tstroke: {\n\t\t\t\ttop: \"#964B00\",\n\t\t\t\tmiddle: \"#000000\",\n\t\t\t\tbottom: \"#964B00\"\n\t\t\t},\n\t\t\tfill: \"#4682B4\"\n\t\t},\n\t\tElderImpulse: {\n\t\t\tstroke: {\n\t\t\t\tup: \"#6BA583\",\n\t\t\t\tdown: \"#FF0000\",\n\t\t\t\tneutral: \"#0000FF\"\n\t\t\t}\n\t\t},\n\t\tMACD: {\n\t\t\tfill: {\n\t\t\t\tdivergence: \"#4682B4\"\n\t\t\t},\n\t\t\tstroke: {\n\t\t\t\tmacd: \"#FF0000\",\n\t\t\t\tsignal: \"#00F300\"\n\t\t\t}\n\t\t},\n\t\tFullStochasticOscillator: {\n\t\t\tstroke: {\n\t\t\t\ttop: \"#37a600\",\n\t\t\t\tmiddle: \"#b8ab00\",\n\t\t\t\tbottom: \"#37a600\",\n\t\t\t\tdLine: \"#17becf\",\n\t\t\t\tkLine: \"#ff7f0e\"\n\t\t\t}\n\t\t}\n\t},\n\tdark: {\n\t\tBollingerBand: {\n\t\t\tstroke: {\n\t\t\t\ttop: \"#964B00\",\n\t\t\t\tmiddle: \"#FF6600\",\n\t\t\t\tbottom: \"#964B00\"\n\t\t\t},\n\t\t\tfill: \"#4682B4\"\n\t\t},\n\t\tElderImpulse: {\n\t\t\tstroke: {\n\t\t\t\tup: \"#6BA583\",\n\t\t\t\tdown: \"#FF0000\",\n\t\t\t\tneutral: \"#0000FF\"\n\t\t\t}\n\t\t},\n\t\tMACD: {\n\t\t\tfill: {\n\t\t\t\tdivergence: \"#FF6600\"\n\t\t\t},\n\t\t\tstroke: {\n\t\t\t\tmacd: \"#ea2bff\",\n\t\t\t\tsignal: \"#74d400\"\n\t\t\t}\n\t\t},\n\t\tFullStochasticOscillator: {\n\t\t\tstroke: {\n\t\t\t\ttop: \"#37a600\",\n\t\t\t\tmiddle: \"#b8ab00\",\n\t\t\t\tbottom: \"#37a600\",\n\t\t\t\tdLine: \"#ea2bff\",\n\t\t\t\tkLine: \"#74d400\"\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar BollingerBand = exports.BollingerBand = themes.light.BollingerBand;\nvar ElderImpulse = exports.ElderImpulse = themes.light.ElderImpulse;\nvar MACD = exports.MACD = themes.light.MACD;\nvar FullStochasticOscillator = exports.FullStochasticOscillator = themes.light.FullStochasticOscillator;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _LineSeries = require(\"./LineSeries\");\n\nvar _LineSeries2 = _interopRequireDefault(_LineSeries);\n\nvar _AreaOnlySeries = require(\"./AreaOnlySeries\");\n\nvar _AreaOnlySeries2 = _interopRequireDefault(_AreaOnlySeries);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction AreaSeries(props) {\n\tvar yAccessor = props.yAccessor,\n\t baseAt = props.baseAt;\n\tvar className = props.className,\n\t opacity = props.opacity,\n\t stroke = props.stroke,\n\t strokeWidth = props.strokeWidth,\n\t strokeOpacity = props.strokeOpacity,\n\t strokeDasharray = props.strokeDasharray,\n\t canvasGradient = props.canvasGradient,\n\t fill = props.fill,\n\t interpolation = props.interpolation,\n\t style = props.style,\n\t canvasClip = props.canvasClip;\n\n\n\treturn _react2.default.createElement(\n\t\t\"g\",\n\t\t{ className: className },\n\t\t_react2.default.createElement(_AreaOnlySeries2.default, {\n\t\t\tyAccessor: yAccessor,\n\t\t\tinterpolation: interpolation,\n\t\t\tbase: baseAt,\n\t\t\tcanvasGradient: canvasGradient,\n\t\t\tfill: fill,\n\t\t\topacity: opacity,\n\t\t\tstyle: style,\n\t\t\tcanvasClip: canvasClip,\n\t\t\tstroke: \"none\"\n\t\t}),\n\t\t_react2.default.createElement(_LineSeries2.default, {\n\t\t\tyAccessor: yAccessor,\n\t\t\tstroke: stroke,\n\t\t\tstrokeWidth: strokeWidth,\n\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\tstrokeDasharray: strokeDasharray,\n\t\t\tinterpolation: interpolation,\n\t\t\tstyle: style,\n\t\t\tcanvasClip: canvasClip,\n\t\t\tfill: \"none\",\n\t\t\thoverHighlight: false\n\t\t})\n\t);\n}\n\nAreaSeries.propTypes = {\n\tstroke: _propTypes2.default.string,\n\tstrokeWidth: _propTypes2.default.number,\n\tcanvasGradient: _propTypes2.default.func,\n\tfill: _propTypes2.default.string.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tbaseAt: _propTypes2.default.func,\n\tinterpolation: _propTypes2.default.func,\n\tcanvasClip: _propTypes2.default.func,\n\tstyle: _propTypes2.default.object,\n\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes)\n};\n\nAreaSeries.defaultProps = {\n\tstroke: \"#4682B4\",\n\tstrokeWidth: 1,\n\tstrokeOpacity: 1,\n\tstrokeDasharray: \"Solid\",\n\topacity: 0.5,\n\tfill: \"#4682B4\",\n\tclassName: \"react-stockcharts-area\"\n};\n\nexports.default = AreaSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = zipper;\n\nvar _d3Array = require(\"d3-array\");\n\nvar _identity = require(\"./identity\");\n\nvar _identity2 = _interopRequireDefault(_identity);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* an extension to d3.zip so we call a function instead of an array */\n\nfunction zipper() {\n\tvar combine = _identity2.default;\n\n\tfunction zip() {\n\t\tvar n = arguments.length;\n\t\tif (!n) return [];\n\t\tvar m = (0, _d3Array.min)(arguments, d3_zipLength);\n\n\t\t// eslint-disable-next-line prefer-const\n\t\tvar i = void 0,\n\t\t zips = new Array(m);\n\t\tfor (i = -1; ++i < m;) {\n\t\t\tfor (var j = -1, _zip = zips[i] = new Array(n); ++j < n;) {\n\t\t\t\t_zip[j] = arguments[j][i];\n\t\t\t}\n\t\t\tzips[i] = combine.apply(this, zips[i]);\n\t\t}\n\t\treturn zips;\n\t}\n\tfunction d3_zipLength(d) {\n\t\treturn d.length;\n\t}\n\tzip.combine = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn combine;\n\t\t}\n\t\tcombine = x;\n\t\treturn zip;\n\t};\n\treturn zip;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = shallowEqual;\n// https://github.com/jonschlinkert/is-equal-shallow/\n\n/*\nThe MIT License (MIT)\n\nCopyright (c) 2015, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nfunction isDate(date) {\n\treturn Object.prototype.toString.call(date) === \"[object Date]\";\n}\n\nfunction isEqual(val1, val2) {\n\treturn isDate(val1) && isDate(val2) ? val1.getTime() === val2.getTime() : val1 === val2;\n}\n\nfunction shallowEqual(a, b) {\n\tif (!a && !b) {\n\t\treturn true;\n\t}\n\tif (!a && b || a && !b) {\n\t\treturn false;\n\t}\n\n\tvar numKeysA = 0,\n\t numKeysB = 0,\n\t key = void 0;\n\tfor (key in b) {\n\t\tnumKeysB++;\n\t\tif ( /* !isPrimitive(b[key]) || */b.hasOwnProperty(key) && !a.hasOwnProperty(key) || !isEqual(a[key], b[key])) {\n\t\t\t// console.log(key, a, b);\n\t\t\treturn false;\n\t\t}\n\t}\n\tfor (key in a) {\n\t\tnumKeysA++;\n\t}\n\treturn numKeysA === numKeysB;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _shallowEqual = require(\"./shallowEqual\");\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar PureComponent = function (_React$Component) {\n\t_inherits(PureComponent, _React$Component);\n\n\tfunction PureComponent() {\n\t\t_classCallCheck(this, PureComponent);\n\n\t\treturn _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).apply(this, arguments));\n\t}\n\n\t_createClass(PureComponent, [{\n\t\tkey: \"shouldComponentUpdate\",\n\t\tvalue: function shouldComponentUpdate(nextProps, nextState, nextContext) {\n\t\t\treturn !(0, _shallowEqual2.default)(this.props, nextProps) || !(0, _shallowEqual2.default)(this.state, nextState) || !(0, _shallowEqual2.default)(this.context, nextContext);\n\t\t}\n\t}]);\n\n\treturn PureComponent;\n}(_react2.default.Component);\n\nexports.default = PureComponent;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SVGComponent = function (_Component) {\n\t_inherits(SVGComponent, _Component);\n\n\tfunction SVGComponent() {\n\t\t_classCallCheck(this, SVGComponent);\n\n\t\treturn _possibleConstructorReturn(this, (SVGComponent.__proto__ || Object.getPrototypeOf(SVGComponent)).apply(this, arguments));\n\t}\n\n\t_createClass(SVGComponent, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar children = this.props.children;\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tdrawOn: [],\n\t\t\t\tsvgDraw: children\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn SVGComponent;\n}(_react.Component);\n\nSVGComponent.propTypes = {\n\tchildren: _propTypes2.default.func.isRequired\n};\n\nexports.default = SVGComponent;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _StackedBarSeries = require(\"./StackedBarSeries\");\n\nvar _StackedBarSeries2 = _interopRequireDefault(_StackedBarSeries);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BarSeries = function (_Component) {\n\t_inherits(BarSeries, _Component);\n\n\tfunction BarSeries(props) {\n\t\t_classCallCheck(this, BarSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (BarSeries.__proto__ || Object.getPrototypeOf(BarSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(BarSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tif (this.props.swapScales) {\n\t\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\t\t\t\t(0, _StackedBarSeries.drawOnCanvasHelper)(ctx, this.props, moreProps, xAccessor, _StackedBarSeries.identityStack);\n\t\t\t} else {\n\t\t\t\tvar bars = getBars(this.props, moreProps);\n\t\t\t\t(0, _StackedBarSeries.drawOnCanvas2)(this.props, ctx, bars);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tif (this.props.swapScales) {\n\t\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\tnull,\n\t\t\t\t\t(0, _StackedBarSeries.svgHelper)(this.props, moreProps, xAccessor, _StackedBarSeries.identityStack)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvar bars = getBars(this.props, moreProps);\n\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\tnull,\n\t\t\t\t\t(0, _StackedBarSeries.getBarsSVG2)(this.props, bars)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar clip = this.props.clip;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: clip,\n\t\t\t\tsvgDraw: this.renderSVG,\n\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn BarSeries;\n}(_react.Component);\n\nBarSeries.propTypes = {\n\tbaseAt: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\tstroke: _propTypes2.default.bool,\n\twidth: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\tyAccessor: _propTypes2.default.func.isRequired,\n\topacity: _propTypes2.default.number,\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n\tclassName: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n\tclip: _propTypes2.default.bool,\n\tswapScales: _propTypes2.default.bool\n};\n\nBarSeries.defaultProps = _StackedBarSeries2.default.defaultProps;\n\nexports.default = BarSeries;\n\n/*\n Initially, this program was using StackedBarSeries.getBars\n to benefit from code reuse and having a single place that\n contains the logic for drawing all types of bar charts\n simple, grouped, horizontal, but turnes out\n making it highly cuztimizable also made it slow for the\n most simple case, a regular bar chart.\n This function contains just the necessary logic\n to create bars\n*/\n\nfunction getBars(props, moreProps) {\n\tvar baseAt = props.baseAt,\n\t fill = props.fill,\n\t stroke = props.stroke,\n\t yAccessor = props.yAccessor;\n\tvar xScale = moreProps.xScale,\n\t xAccessor = moreProps.xAccessor,\n\t plotData = moreProps.plotData,\n\t yScale = moreProps.chartConfig.yScale;\n\n\tvar getFill = (0, _utils.functor)(fill);\n\tvar getBase = (0, _utils.functor)(baseAt);\n\n\tvar widthFunctor = (0, _utils.functor)(props.width);\n\n\tvar width = widthFunctor(props, {\n\t\txScale: xScale,\n\t\txAccessor: xAccessor,\n\t\tplotData: plotData\n\t});\n\t/*\n const barWidth = Math.round(width);\n const offset = Math.round(barWidth === 1 ? 0 : 0.5 * barWidth);\n */\n\tvar offset = Math.floor(0.5 * width);\n\n\tvar bars = plotData.filter(function (d) {\n\t\treturn (0, _utils.isDefined)(yAccessor(d));\n\t}).map(function (d) {\n\t\tvar yValue = yAccessor(d);\n var y = yScale(yValue);\n /* var before = xAccessor(d) - 1;\n if(before == -1)\n d.beforeStock = 100000;\n else\n d.beforeStock = plotData[before].close;\n console.log(d.beforeStock); */\n\t\tvar x = Math.round(xScale(xAccessor(d))) - offset;\n\t\tvar h = getBase(xScale, yScale, d) - yScale(yValue);\n\n\t\tif (h < 0) {\n\t\t\ty = y + h;\n\t\t\th = -h;\n\t\t}\n\n\t\treturn {\n\t\t\t// type: \"line\"\n\t\t\tx: x,\n\t\t\ty: Math.round(y),\n\t\t\theight: Math.round(h),\n\t\t\twidth: offset * 2,\n\t\t\tfill: getFill(d, 0),\n\t\t\tstroke: stroke ? getFill(d, 0) : \"none\"\n\t\t};\n\t});\n\n\treturn bars;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Force = require(\"d3-force\");\n\nvar _d3Array = require(\"d3-array\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _AxisZoomCapture = require(\"./AxisZoomCapture\");\n\nvar _AxisZoomCapture2 = _interopRequireDefault(_AxisZoomCapture);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Axis = function (_Component) {\n\t_inherits(Axis, _Component);\n\n\tfunction Axis(props) {\n\t\t_classCallCheck(this, Axis);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Axis.__proto__ || Object.getPrototypeOf(Axis)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t_this.getMoreProps = _this.getMoreProps.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(Axis, [{\n\t\tkey: \"saveNode\",\n\t\tvalue: function saveNode(node) {\n\t\t\tthis.node = node;\n\t\t}\n\t}, {\n\t\tkey: \"getMoreProps\",\n\t\tvalue: function getMoreProps() {\n\t\t\treturn this.node.getMoreProps();\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t showDomain = _props.showDomain,\n\t\t\t showTicks = _props.showTicks,\n\t\t\t transform = _props.transform,\n\t\t\t range = _props.range,\n\t\t\t getScale = _props.getScale;\n\t\t\tctx.save();\n\t\t\tctx.translate(transform[0], transform[1]);\n\n\t\t\tif (showDomain) drawAxisLine(ctx, this.props, range);\n\t\t\tif (showTicks) {\n\t\t\t\tvar tickProps = tickHelper(this.props, getScale(moreProps));\n\t\t\t\tdrawTicks(ctx, tickProps);\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar className = this.props.className;\n\t\t\tvar _props2 = this.props,\n\t\t\t showDomain = _props2.showDomain,\n\t\t\t showTicks = _props2.showTicks,\n\t\t\t range = _props2.range,\n\t\t\t getScale = _props2.getScale;\n\n\n\t\t\tvar ticks = showTicks ? axisTicksSVG(this.props, getScale(moreProps)) : null;\n\t\t\tvar domain = showDomain ? axisLineSVG(this.props, range) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\tticks,\n\t\t\t\tdomain\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props3 = this.props,\n\t\t\t bg = _props3.bg,\n\t\t\t axisZoomCallback = _props3.axisZoomCallback,\n\t\t\t className = _props3.className,\n\t\t\t zoomCursorClassName = _props3.zoomCursorClassName,\n\t\t\t zoomEnabled = _props3.zoomEnabled,\n\t\t\t getScale = _props3.getScale,\n\t\t\t inverted = _props3.inverted;\n\t\t\tvar _props4 = this.props,\n\t\t\t transform = _props4.transform,\n\t\t\t getMouseDelta = _props4.getMouseDelta,\n\t\t\t edgeClip = _props4.edgeClip;\n\t\t\tvar _props5 = this.props,\n\t\t\t onContextMenu = _props5.onContextMenu,\n\t\t\t onDoubleClick = _props5.onDoubleClick;\n \n\t\t\tvar zoomCapture = zoomEnabled ? _react2.default.createElement(_AxisZoomCapture2.default, {\n\t\t\t\tbg: bg,\n\t\t\t\tgetScale: getScale,\n\t\t\t\tgetMoreProps: this.getMoreProps,\n\t\t\t\tgetMouseDelta: getMouseDelta,\n\t\t\t\taxisZoomCallback: axisZoomCallback,\n\t\t\t\tclassName: className,\n\t\t\t\tzoomCursorClassName: zoomCursorClassName,\n\t\t\t\tinverted: inverted,\n\t\t\t\tonContextMenu: onContextMenu,\n\t\t\t\tonDoubleClick: onDoubleClick\n\t\t\t}) : null;\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + transform[0] + \", \" + transform[1] + \")\" },\n\t\t\t\tzoomCapture,\n\t\t\t\t_react2.default.createElement(_GenericChartComponent2.default, { ref: this.saveNode,\n\t\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\t\tclip: false,\n\t\t\t\t\tedgeClip: edgeClip,\n\t\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Axis;\n}(_react.Component);\n\nAxis.propTypes = {\n\tinnerTickSize: _propTypes2.default.number,\n\touterTickSize: _propTypes2.default.number,\n\ttickFormat: _propTypes2.default.func,\n\ttickPadding: _propTypes2.default.number,\n\ttickSize: _propTypes2.default.number,\n\tticks: _propTypes2.default.number,\n\ttickLabelFill: _propTypes2.default.string,\n\ttickStroke: _propTypes2.default.string,\n\ttickStrokeOpacity: _propTypes2.default.number,\n\ttickStrokeWidth: _propTypes2.default.number,\n\ttickStrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\ttickValues: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]),\n\ttickInterval: _propTypes2.default.number,\n\ttickIntervalFunction: _propTypes2.default.func,\n\tshowDomain: _propTypes2.default.bool,\n\tshowTicks: _propTypes2.default.bool,\n\tclassName: _propTypes2.default.string,\n\taxisZoomCallback: _propTypes2.default.func,\n\tzoomEnabled: _propTypes2.default.bool,\n\tinverted: _propTypes2.default.bool,\n\tzoomCursorClassName: _propTypes2.default.string,\n\ttransform: _propTypes2.default.arrayOf(_propTypes2.default.number).isRequired,\n\trange: _propTypes2.default.arrayOf(_propTypes2.default.number).isRequired,\n\tgetMouseDelta: _propTypes2.default.func.isRequired,\n\tgetScale: _propTypes2.default.func.isRequired,\n\tbg: _propTypes2.default.object.isRequired,\n\tedgeClip: _propTypes2.default.bool.isRequired,\n\tonContextMenu: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func\n};\n\nAxis.defaultProps = {\n\tzoomEnabled: false,\n\tzoomCursorClassName: \"\",\n\tedgeClip: false\n};\n\nfunction tickHelper(props, scale) {\n\tvar orient = props.orient,\n\t innerTickSize = props.innerTickSize,\n\t tickFormat = props.tickFormat,\n\t tickPadding = props.tickPadding,\n\t tickLabelFill = props.tickLabelFill,\n\t tickStrokeWidth = props.tickStrokeWidth,\n\t tickStrokeDasharray = props.tickStrokeDasharray,\n\t fontSize = props.fontSize,\n\t fontFamily = props.fontFamily,\n\t fontWeight = props.fontWeight,\n\t showTicks = props.showTicks,\n\t flexTicks = props.flexTicks,\n\t showTickLabel = props.showTickLabel;\n\tvar tickArguments = props.ticks,\n\t tickValuesProp = props.tickValues,\n\t tickStroke = props.tickStroke,\n\t tickStrokeOpacity = props.tickStrokeOpacity,\n\t tickInterval = props.tickInterval,\n\t tickIntervalFunction = props.tickIntervalFunction;\n\n\t// if (tickArguments) tickArguments = [tickArguments];\n\n\tvar tickValues = void 0;\n\tif ((0, _utils.isDefined)(tickValuesProp)) {\n\t\tif (typeof tickValuesProp === \"function\") {\n\t\t\ttickValues = tickValuesProp(scale.domain());\n\t\t} else {\n\t\t\ttickValues = tickValuesProp;\n\t\t}\n\t} else if ((0, _utils.isDefined)(tickInterval)) {\n\t\tvar _scale$domain = scale.domain(),\n\t\t _scale$domain2 = _slicedToArray(_scale$domain, 2),\n\t\t min = _scale$domain2[0],\n\t\t max = _scale$domain2[1];\n\n\t\tvar baseTickValues = (0, _d3Array.range)(min, max, (max - min) / tickInterval);\n\n\t\ttickValues = tickIntervalFunction ? tickIntervalFunction(min, max, tickInterval) : baseTickValues;\n\t} else if ((0, _utils.isDefined)(scale.ticks)) {\n\t\ttickValues = scale.ticks(tickArguments, flexTicks);\n\t} else {\n\t\ttickValues = scale.domain();\n\t}\n\n\tvar baseFormat = scale.tickFormat ? scale.tickFormat(tickArguments) : _utils.identity;\n\n\tvar format = (0, _utils.isNotDefined)(tickFormat) ? baseFormat : function (d) {\n\t\treturn tickFormat(d) || \"\";\n\t};\n\n\tvar sign = orient === \"top\" || orient === \"left\" ? -1 : 1;\n\tvar tickSpacing = Math.max(innerTickSize, 0) + tickPadding;\n\n\tvar ticks = void 0,\n\t dy = void 0,\n\t canvas_dy = void 0,\n\t textAnchor = void 0;\n\n\tif (orient === \"bottom\" || orient === \"top\") {\n\t\tdy = sign < 0 ? \"0em\" : \".71em\";\n canvas_dy = sign < 0 ? 0 : fontSize * .71;\n \n\t\ttextAnchor = \"middle\";\n\n\t\tticks = tickValues.map(function (d) {\n\t\t\tvar x = Math.round(scale(d));\n\t\t\treturn {\n\t\t\t\tvalue: d,\n\t\t\t\tx1: x,\n\t\t\t\ty1: 0,\n\t\t\t\tx2: x,\n\t\t\t\ty2: sign * innerTickSize,\n\t\t\t\tlabelX: x,\n\t\t\t\tlabelY: sign * tickSpacing\n\t\t\t};\n\t\t});\n\n\t\tif (showTicks && flexTicks) {\n\t\t\t// console.log(ticks, showTicks);\n\n\t\t\tvar nodes = ticks.map(function (d) {\n\t\t\t\treturn { id: d.value, value: d.value, fy: d.y2, origX: d.x1 };\n });\n\n\t\t\tvar simulation = (0, _d3Force.forceSimulation)(nodes).force(\"x\", (0, _d3Force.forceX)(function (d) {\n\t\t\t\treturn d.origX;\n\t\t\t}).strength(1)).force(\"collide\", (0, _d3Force.forceCollide)(22))\n\t\t\t// .force(\"center\", forceCenter())\n\t\t\t.stop();\n\n\t\t\tfor (var i = 0; i < 100; ++i) {\n\t\t\t\tsimulation.tick();\n\t\t\t} // console.log(nodes);\n\n\t\t\tvar zip = (0, _utils.zipper)().combine(function (a, b) {\n\t\t\t\tif (Math.abs(b.x - b.origX) > 0.01) {\n\t\t\t\t\treturn _extends({}, a, {\n\t\t\t\t\t\tx2: b.x,\n\t\t\t\t\t\tlabelX: b.x\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn a;\n\t\t\t});\n\n\t\t\tticks = zip(ticks, nodes);\n\t\t}\n\t} else {\n\t\tticks = tickValues.map(function (d) {\n\t\t\tvar y = Math.round(scale(d));\n\t\t\treturn {\n\t\t\t\tvalue: d,\n\t\t\t\tx1: 0,\n\t\t\t\ty1: y,\n\t\t\t\tx2: sign * innerTickSize,\n\t\t\t\ty2: y,\n\t\t\t\tlabelX: sign * tickSpacing,\n\t\t\t\tlabelY: y\n\t\t\t};\n\t\t});\n\n\t\tdy = \".32em\";\n\t\tcanvas_dy = fontSize * .32;\n\t\ttextAnchor = sign < 0 ? \"end\" : \"start\";\n\t}\n\n\treturn {\n\t\tticks: ticks, scale: scale, tickStroke: tickStroke,\n\t\ttickLabelFill: tickLabelFill || tickStroke,\n\t\ttickStrokeOpacity: tickStrokeOpacity,\n\t\ttickStrokeWidth: tickStrokeWidth,\n\t\ttickStrokeDasharray: tickStrokeDasharray,\n\t\tdy: dy,\n\t\tcanvas_dy: canvas_dy,\n\t\ttextAnchor: textAnchor,\n\t\tfontSize: fontSize,\n\t\tfontFamily: fontFamily,\n\t\tfontWeight: fontWeight,\n\t\tformat: format,\n\t\tshowTickLabel: showTickLabel\n\t};\n}\n\n/* eslint-disable react/prop-types */\nfunction axisLineSVG(props, range) {\n\tvar orient = props.orient,\n\t outerTickSize = props.outerTickSize;\n\tvar domainClassName = props.domainClassName,\n\t fill = props.fill,\n\t stroke = props.stroke,\n\t strokeWidth = props.strokeWidth,\n\t opacity = props.opacity;\n\n\n\tvar sign = orient === \"top\" || orient === \"left\" ? -1 : 1;\n\n\tvar d = void 0;\n\n\tif (orient === \"bottom\" || orient === \"top\") {\n\t\td = \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize;\n\t} else {\n\t\td = \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize;\n\t}\n\n\treturn _react2.default.createElement(\"path\", {\n\t\tclassName: domainClassName,\n\t\td: d,\n\t\tfill: fill,\n\t\topacity: opacity,\n\t\tstroke: stroke,\n\t\tstrokeWidth: strokeWidth });\n}\n/* eslint-enable react/prop-types */\n\nfunction drawAxisLine(ctx, props, range) {\n\t// props = { ...AxisLine.defaultProps, ...props };\n\tvar orient = props.orient,\n\t outerTickSize = props.outerTickSize,\n\t stroke = props.stroke,\n\t strokeWidth = props.strokeWidth,\n\t opacity = props.opacity;\n\n\n\tvar sign = orient === \"top\" || orient === \"left\" ? -1 : 1;\n\tvar xAxis = orient === \"bottom\" || orient === \"top\";\n\n\t// var range = d3_scaleRange(xAxis ? xScale : yScale);\n\n\tctx.lineWidth = strokeWidth;\n\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, opacity);\n\n\tctx.beginPath();\n\n\tif (xAxis) {\n\t\tctx.moveTo((0, _utils.first)(range), sign * outerTickSize);\n\t\tctx.lineTo((0, _utils.first)(range), 0);\n\t\tctx.lineTo((0, _utils.last)(range), 0);\n\t\tctx.lineTo((0, _utils.last)(range), sign * outerTickSize);\n\t} else {\n\t\tctx.moveTo(sign * outerTickSize, (0, _utils.first)(range));\n\t\tctx.lineTo(0, (0, _utils.first)(range));\n\t\tctx.lineTo(0, (0, _utils.last)(range));\n\t\tctx.lineTo(sign * outerTickSize, (0, _utils.last)(range));\n\t}\n\tctx.stroke();\n}\n\nfunction Tick(props) {\n\tvar tickLabelFill = props.tickLabelFill,\n\t tickStroke = props.tickStroke,\n\t tickStrokeOpacity = props.tickStrokeOpacity,\n\t tickStrokeDasharray = props.tickStrokeDasharray,\n\t tickStrokeWidth = props.tickStrokeWidth,\n\t textAnchor = props.textAnchor,\n\t fontSize = props.fontSize,\n\t fontFamily = props.fontFamily,\n\t fontWeight = props.fontWeight;\n\tvar x1 = props.x1,\n\t y1 = props.y1,\n\t x2 = props.x2,\n\t y2 = props.y2,\n\t labelX = props.labelX,\n\t labelY = props.labelY,\n\t dy = props.dy;\n\n\treturn _react2.default.createElement(\n\t\t\"g\",\n\t\t{ className: \"tick\" },\n\t\t_react2.default.createElement(\"line\", {\n\t\t\tshapeRendering: \"crispEdges\",\n\t\t\topacity: tickStrokeOpacity,\n\t\t\tstroke: tickStroke,\n\t\t\tstrokeWidth: tickStrokeWidth,\n\t\t\tstrokeDasharray: (0, _utils.getStrokeDasharray)(tickStrokeDasharray),\n\t\t\tx1: x1, y1: y1,\n\t\t\tx2: x2, y2: y2 }),\n\t\t_react2.default.createElement(\n\t\t\t\"text\",\n\t\t\t{\n\t\t\t\tdy: dy, x: labelX, y: labelY,\n\t\t\t\tfill: tickLabelFill,\n\t\t\t\tfontSize: fontSize,\n\t\t\t\tfontWeight: fontWeight,\n\t\t\t\tfontFamily: fontFamily,\n\t\t\t\ttextAnchor: textAnchor },\n\t\t\tprops.children\n\t\t)\n\t);\n}\n\nTick.propTypes = {\n\tchildren: _propTypes2.default.string.isRequired,\n\tx1: _propTypes2.default.number.isRequired,\n\ty1: _propTypes2.default.number.isRequired,\n\tx2: _propTypes2.default.number.isRequired,\n\ty2: _propTypes2.default.number.isRequired,\n\tlabelX: _propTypes2.default.number.isRequired,\n\tlabelY: _propTypes2.default.number.isRequired,\n\tdy: _propTypes2.default.string.isRequired,\n\ttickStroke: _propTypes2.default.string,\n\ttickLabelFill: _propTypes2.default.string,\n\ttickStrokeWidth: _propTypes2.default.number,\n\ttickStrokeOpacity: _propTypes2.default.number,\n\ttickStrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\ttextAnchor: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tfontFamily: _propTypes2.default.string,\n\tfontWeight: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number])\n};\n\nfunction axisTicksSVG(props, scale) {\n\tvar result = tickHelper(props, scale);\n\n\tvar tickLabelFill = result.tickLabelFill,\n\t tickStroke = result.tickStroke,\n\t tickStrokeOpacity = result.tickStrokeOpacity,\n\t tickStrokeWidth = result.tickStrokeWidth,\n\t tickStrokeDasharray = result.tickStrokeDasharray,\n\t textAnchor = result.textAnchor;\n\tvar fontSize = result.fontSize,\n\t fontFamily = result.fontFamily,\n\t fontWeight = result.fontWeight,\n\t ticks = result.ticks,\n\t format = result.format;\n\tvar dy = result.dy;\n \n\treturn _react2.default.createElement(\n\t\t\"g\",\n\t\tnull,\n\t\tticks.map(function (tick, idx) {\n\t\t\treturn _react2.default.createElement(\n\t\t\t\tTick,\n\t\t\t\t{ key: idx,\n\t\t\t\t\ttickStroke: tickStroke,\n\t\t\t\t\ttickLabelFill: tickLabelFill,\n\t\t\t\t\ttickStrokeWidth: tickStrokeWidth,\n\t\t\t\t\ttickStrokeOpacity: tickStrokeOpacity,\n\t\t\t\t\ttickStrokeDasharray: tickStrokeDasharray,\n\t\t\t\t\tdy: dy,\n\t\t\t\t\tx1: tick.x1, y1: tick.y1,\n\t\t\t\t\tx2: tick.x2, y2: tick.y2,\n\t\t\t\t\tlabelX: tick.labelX, labelY: tick.labelY,\n\t\t\t\t\ttextAnchor: textAnchor,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\tfontWeight: fontWeight,\n\t\t\t\t\tfontFamily: fontFamily },\n\t\t\t\tformat(tick.value)\n\t\t\t);\n\t\t})\n\t);\n}\n\nfunction drawTicks(ctx, result) {\n\tvar tickStroke = result.tickStroke,\n\t tickStrokeOpacity = result.tickStrokeOpacity,\n\t tickLabelFill = result.tickLabelFill;\n\tvar textAnchor = result.textAnchor,\n\t fontSize = result.fontSize,\n\t fontFamily = result.fontFamily,\n\t fontWeight = result.fontWeight,\n\t ticks = result.ticks,\n\t showTickLabel = result.showTickLabel;\n\n\n\tctx.strokeStyle = (0, _utils.hexToRGBA)(tickStroke, tickStrokeOpacity);\n\n\tctx.fillStyle = tickStroke;\n\t// ctx.textBaseline = 'middle';\n\n\tticks.forEach(function (tick) {\n\t\tdrawEachTick(ctx, tick, result);\n\t});\n\n\tctx.font = fontWeight + \" \" + fontSize + \"px \" + fontFamily;\n\tctx.fillStyle = tickLabelFill;\n\tctx.textAlign = textAnchor === \"middle\" ? \"center\" : textAnchor;\n\n\tif (showTickLabel) {\n\t\tticks.forEach(function (tick) {\n\t\t\tdrawEachTickLabel(ctx, tick, result);\n\t\t});\n\t}\n}\n\nfunction drawEachTick(ctx, tick, result) {\n\tvar tickStrokeWidth = result.tickStrokeWidth,\n\t tickStrokeDasharray = result.tickStrokeDasharray;\n\n\n\tctx.beginPath();\n\n\tctx.moveTo(tick.x1, tick.y1);\n\tctx.lineTo(tick.x2, tick.y2);\n\tctx.lineWidth = tickStrokeWidth;\n\tctx.setLineDash((0, _utils.getStrokeDasharray)(\"LongDash\").split(\",\"));\n\tctx.stroke();\n}\n\nfunction drawEachTickLabel(ctx, tick, result) {\n\tvar canvas_dy = result.canvas_dy,\n\t format = result.format;\n\n ctx.beginPath();\n\tctx.fillText(format(tick.value), tick.labelX, tick.labelY + canvas_dy);\n}\n\nexports.default = Axis;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.getYCoordinate = getYCoordinate;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _EdgeCoordinateV = require(\"./EdgeCoordinateV3\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent1\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MouseCoordinateY = function (_Component) {\n\t_inherits(MouseCoordinateY, _Component);\n\n\tfunction MouseCoordinateY(props) {\n\t\t_classCallCheck(this, MouseCoordinateY);\n\n\t\tvar _this = _possibleConstructorReturn(this, (MouseCoordinateY.__proto__ || Object.getPrototypeOf(MouseCoordinateY)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(MouseCoordinateY, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar props = helper(this.props, moreProps);\n\t\t\tif ((0, _utils.isNotDefined)(props)) return null;\n\n\t\t\t(0, _EdgeCoordinateV.drawOnCanvas)(ctx, props);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar props = helper(this.props, moreProps);\n\t\t\tif ((0, _utils.isNotDefined)(props)) return null;\n\n\t\t\treturn (0, _EdgeCoordinateV.renderSVG)(props);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn MouseCoordinateY;\n}(_react.Component);\n\nMouseCoordinateY.propTypes = {\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\tyAxisPad: _propTypes2.default.number,\n\trectWidth: _propTypes2.default.number,\n\trectHeight: _propTypes2.default.number,\n\torient: _propTypes2.default.oneOf([\"bottom\", \"top\", \"left\", \"right\"]),\n\tat: _propTypes2.default.oneOf([\"bottom\", \"top\", \"left\", \"right\"]),\n\tdx: _propTypes2.default.number,\n\tfill: _propTypes2.default.string,\n\topacity: _propTypes2.default.number,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\ttextFill: _propTypes2.default.string\n};\n\nMouseCoordinateY.defaultProps = {\n\tyAxisPad: 0,\n\trectWidth: 50,\n\trectHeight: 20,\n\torient: \"left\",\n\tat: \"left\",\n\tdx: 0,\n\tarrowWidth: 10,\n\tfill: \"#525252\",\n\topacity: 1,\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 13,\n\ttextFill: \"#FFFFFF\",\n\n\t// stroke: \"#684F1D\",\n\tstrokeOpacity: 1,\n\tstrokeWidth: 1\n};\n\nfunction helper(props, moreProps) {\n\tvar chartId = moreProps.chartId;\n\tvar currentCharts = moreProps.currentCharts,\n\t mouseXY = moreProps.mouseXY;\n\n\n\tif ((0, _utils.isNotDefined)(mouseXY)) return null;\n\tif (currentCharts.indexOf(chartId) < 0) return null;\n\n\tvar show = moreProps.show;\n\n\tif (!show) return null;\n\n\tvar y = mouseXY[1];\n\tvar yScale = moreProps.chartConfig.yScale;\n\tvar displayFormat = props.displayFormat;\n\n\n\tvar coordinate = displayFormat(yScale.invert(y));\n\n\treturn getYCoordinate(y, coordinate, props, moreProps);\n}\n\nfunction getYCoordinate(y, displayValue, props, moreProps) {\n\tvar width = moreProps.width;\n\tvar orient = props.orient,\n\t at = props.at,\n\t rectWidth = props.rectWidth,\n\t rectHeight = props.rectHeight,\n\t dx = props.dx;\n\tvar fill = props.fill,\n\t opacity = props.opacity,\n\t fontFamily = props.fontFamily,\n\t fontSize = props.fontSize,\n\t textFill = props.textFill,\n\t arrowWidth = props.arrowWidth;\n\tvar stroke = props.stroke,\n\t strokeOpacity = props.strokeOpacity,\n\t strokeWidth = props.strokeWidth;\n\n\n\tvar x1 = 0,\n\t x2 = width;\n\tvar edgeAt = at === \"right\" ? width : 0;\n\n\tvar type = \"horizontal\";\n\tvar hideLine = true;\n\n\tvar coordinateProps = {\n\t\tcoordinate: displayValue,\n\t\tshow: true,\n\t\ttype: type,\n\t\torient: orient,\n\t\tedgeAt: edgeAt,\n\t\thideLine: hideLine,\n\t\tfill: fill,\n\t\topacity: opacity,\n\n\t\tfontFamily: fontFamily,\n\t\tfontSize: fontSize,\n\t\ttextFill: textFill,\n\n\t\tstroke: stroke,\n\t\tstrokeOpacity: strokeOpacity,\n\t\tstrokeWidth: strokeWidth,\n\n\t\trectWidth: rectWidth,\n\t\trectHeight: rectHeight,\n\n\t\tarrowWidth: arrowWidth,\n\t\tdx: dx,\n\t\tx1: x1,\n\t\tx2: x2,\n\t\ty1: y,\n\t\ty2: y\n\t};\n\treturn coordinateProps;\n}\n\nexports.default = MouseCoordinateY;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.getAxisCanvas = getAxisCanvas;\nexports.getMouseCanvas = getMouseCanvas;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar aliases = {\n\tmouseleave: \"mousemove\", // to draw interactive after mouse exit\n\tpanend: \"pan\",\n\tpinchzoom: \"pan\",\n\tmousedown: \"mousemove\",\n\tclick: \"mousemove\",\n\tcontextmenu: \"mousemove\",\n\tdblclick: \"mousemove\",\n\tdragstart: \"drag\",\n\tdragend: \"drag\",\n\tdragcancel: \"drag\"\n};\n\nvar GenericComponent = function (_Component) {\n\t_inherits(GenericComponent, _Component);\n\n\tfunction GenericComponent(props, context) {\n\t\t_classCallCheck(this, GenericComponent);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GenericComponent.__proto__ || Object.getPrototypeOf(GenericComponent)).call(this, props, context));\n\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.getMoreProps = _this.getMoreProps.bind(_this);\n\t\t_this.listener = _this.listener.bind(_this);\n\t\t_this.draw = _this.draw.bind(_this);\n\t\t_this.updateMoreProps = _this.updateMoreProps.bind(_this);\n\t\t_this.evaluateType = _this.evaluateType.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\t_this.preCanvasDraw = _this.preCanvasDraw.bind(_this);\n\t\t_this.postCanvasDraw = _this.postCanvasDraw.bind(_this);\n\t\t_this.getPanConditions = _this.getPanConditions.bind(_this);\n\t\t_this.shouldTypeProceed = _this.shouldTypeProceed.bind(_this);\n\t\t_this.preEvaluate = _this.preEvaluate.bind(_this);\n\n\t\tvar generateSubscriptionId = context.generateSubscriptionId;\n\n\t\t_this.suscriberId = generateSubscriptionId();\n\n\t\t_this.moreProps = {};\n\n\t\t_this.state = {\n\t\t\tupdateCount: 0\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(GenericComponent, [{\n\t\tkey: \"updateMoreProps\",\n\t\tvalue: function updateMoreProps(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tObject.keys(moreProps).forEach(function (key) {\n\t\t\t\t_this2.moreProps[key] = moreProps[key];\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"shouldTypeProceed\",\n\t\tvalue: function shouldTypeProceed() {\n\t\t\treturn true;\n\t\t}\n\t}, {\n\t\tkey: \"preEvaluate\",\n\t\tvalue: function preEvaluate() {}\n\t}, {\n\t\tkey: \"listener\",\n\t\tvalue: function listener(type, moreProps, state, e) {\n\t\t\t// console.log(e.shiftKey)\n\t\t\tif ((0, _utils.isDefined)(moreProps)) {\n\t\t\t\tthis.updateMoreProps(moreProps);\n\t\t\t}\n\t\t\tthis.evaluationInProgress = true;\n\t\t\tthis.evaluateType(type, e);\n\t\t\tthis.evaluationInProgress = false;\n\t\t}\n\t}, {\n\t\tkey: \"evaluateType\",\n\t\tvalue: function evaluateType(type, e) {\n\t\t\tvar newType = aliases[type] || type;\n\t\t\tvar proceed = this.props.drawOn.indexOf(newType) > -1;\n\n\t\t\t// console.log(\"type ->\", type, proceed);\n\n\t\t\tif (!proceed) return;\n\t\t\t// const moreProps = this.getMoreProps();\n\t\t\tthis.preEvaluate(type, this.moreProps, e);\n\t\t\tif (!this.shouldTypeProceed(type, this.moreProps)) return;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase \"zoom\":\n\t\t\t\tcase \"mouseenter\":\n\t\t\t\t\t// DO NOT DRAW FOR THESE EVENTS\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"mouseleave\":\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moreProps.hovering = false;\n\t\t\t\t\t\tvar moreProps = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.props.onUnHover) {\n\t\t\t\t\t\t\tthis.props.onUnHover(moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"contextmenu\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onContextMenu) {\n\t\t\t\t\t\t\tthis.props.onContextMenu(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.moreProps.hovering && this.props.onContextMenuWhenHover) {\n\t\t\t\t\t\t\tthis.props.onContextMenuWhenHover(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"mousedown\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onMouseDown) {\n\t\t\t\t\t\t\tthis.props.onMouseDown(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"click\":\n\t\t\t\t\t{\n\t\t\t\t\t\tvar _moreProps = this.getMoreProps();\n\t\t\t\t\t\tif (this.moreProps.hovering) {\n\t\t\t\t\t\t\t// console.error(\"TODO use this only for SAR, Line series\")\n\t\t\t\t\t\t\tthis.props.onClickWhenHover(_moreProps, e);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.props.onClickOutside(_moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.props.onClick) {\n\t\t\t\t\t\t\tthis.props.onClick(_moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"mousemove\":\n\t\t\t\t\t{\n\n\t\t\t\t\t\tvar prevHover = this.moreProps.hovering;\n\t\t\t\t\t\tthis.moreProps.hovering = this.isHover(e);\n\n\t\t\t\t\t\tvar _context = this.context,\n\t\t\t\t\t\t amIOnTop = _context.amIOnTop,\n\t\t\t\t\t\t setCursorClass = _context.setCursorClass;\n\n\n\t\t\t\t\t\tif (this.moreProps.hovering && !this.props.selected\n\t\t\t\t\t\t/* && !prevHover */\n\t\t\t\t\t\t&& amIOnTop(this.suscriberId) && (0, _utils.isDefined)(this.props.onHover)) {\n\t\t\t\t\t\t\tsetCursorClass(\"react-stockcharts-pointer-cursor\");\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\t\t} else if (this.moreProps.hovering && this.props.selected && amIOnTop(this.suscriberId)) {\n\t\t\t\t\t\t\tsetCursorClass(this.props.interactiveCursorClass);\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\t\t} else if (prevHover && !this.moreProps.hovering && this.iSetTheCursorClass) {\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = false;\n\t\t\t\t\t\t\tsetCursorClass(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar _moreProps2 = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.moreProps.hovering && !prevHover) {\n\t\t\t\t\t\t\tif (this.props.onHover) {\n\t\t\t\t\t\t\t\tthis.props.onHover(_moreProps2, e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (prevHover && !this.moreProps.hovering) {\n\t\t\t\t\t\t\tif (this.props.onUnHover) {\n\t\t\t\t\t\t\t\tthis.props.onUnHover(_moreProps2, e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.props.onMouseMove) {\n\t\t\t\t\t\t\tthis.props.onMouseMove(_moreProps2, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dblclick\":\n\t\t\t\t\t{\n\t\t\t\t\t\tvar _moreProps3 = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.props.onDoubleClick) {\n\t\t\t\t\t\t\tthis.props.onDoubleClick(_moreProps3, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.moreProps.hovering && this.props.onDoubleClickWhenHover) {\n\t\t\t\t\t\t\tthis.props.onDoubleClickWhenHover(_moreProps3, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"pan\":\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moreProps.hovering = false;\n\t\t\t\t\t\tif (this.props.onPan) {\n\t\t\t\t\t\t\tthis.props.onPan(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"panend\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onPanEnd) {\n\t\t\t\t\t\t\tthis.props.onPanEnd(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragstart\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.getPanConditions().draggable) {\n\t\t\t\t\t\t\tvar _amIOnTop = this.context.amIOnTop;\n\n\t\t\t\t\t\t\tif (_amIOnTop(this.suscriberId)) {\n\t\t\t\t\t\t\t\tthis.dragInProgress = true;\n\t\t\t\t\t\t\t\tthis.props.onDragStart(this.getMoreProps(), e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.someDragInProgress = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"drag\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress && this.props.onDrag) {\n\t\t\t\t\t\t\tthis.props.onDrag(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragend\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress && this.props.onDragComplete) {\n\t\t\t\t\t\t\tthis.props.onDragComplete(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.dragInProgress = false;\n\t\t\t\t\t\tthis.someDragInProgress = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragcancel\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress || this.iSetTheCursorClass) {\n\t\t\t\t\t\t\tvar _setCursorClass = this.context.setCursorClass;\n\n\t\t\t\t\t\t\t_setCursorClass(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(e) {\n\t\t\treturn (0, _utils.isDefined)(this.props.isHover) ? this.props.isHover(this.getMoreProps(), e) : false;\n\t\t}\n\t}, {\n\t\tkey: \"getPanConditions\",\n\t\tvalue: function getPanConditions() {\n\t\t\tvar draggable = !!(this.props.selected && this.moreProps.hovering) || this.props.enableDragOnHover && this.moreProps.hovering;\n\n\t\t\treturn {\n\t\t\t\tdraggable: draggable,\n\t\t\t\tpanEnabled: !this.props.disablePan\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"draw\",\n\t\tvalue: function draw() {\n\t\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { force: false },\n\t\t\t trigger = _ref.trigger,\n\t\t\t force = _ref.force;\n\n\t\t\tvar type = aliases[trigger] || trigger;\n\t\t\tvar proceed = this.props.drawOn.indexOf(type) > -1;\n\n\t\t\tif (proceed || this.props.selected /* this is to draw as soon as you select */\n\t\t\t|| force) {\n\t\t\t\tvar chartCanvasType = this.context.chartCanvasType;\n\t\t\t\tvar canvasDraw = this.props.canvasDraw;\n\n\n\t\t\t\tif ((0, _utils.isNotDefined)(canvasDraw) || chartCanvasType === \"svg\") {\n\t\t\t\t\tvar updateCount = this.state.updateCount;\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tupdateCount: updateCount + 1\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.drawOnCanvas();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tvar _context2 = this.context,\n\t\t\t subscribe = _context2.subscribe,\n\t\t\t chartId = _context2.chartId;\n\t\t\tvar _props = this.props,\n\t\t\t clip = _props.clip,\n\t\t\t edgeClip = _props.edgeClip;\n\n\n\t\t\tsubscribe(this.suscriberId, {\n\t\t\t\tchartId: chartId, clip: clip, edgeClip: edgeClip,\n\t\t\t\tlistener: this.listener,\n\t\t\t\tdraw: this.draw,\n\t\t\t\tgetPanConditions: this.getPanConditions\n\t\t\t});\n\t\t\tthis.componentWillReceiveProps(this.props, this.context);\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\tvar unsubscribe = this.context.unsubscribe;\n\n\t\t\tunsubscribe(this.suscriberId);\n\t\t\tif (this.iSetTheCursorClass) {\n\t\t\t\tvar setCursorClass = this.context.setCursorClass;\n\n\t\t\t\tsetCursorClass(null);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.componentDidUpdate(this.props);\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate(prevProps) {\n\t\t\tvar chartCanvasType = this.context.chartCanvasType;\n\t\t\tvar _props2 = this.props,\n\t\t\t canvasDraw = _props2.canvasDraw,\n\t\t\t selected = _props2.selected,\n\t\t\t interactiveCursorClass = _props2.interactiveCursorClass;\n\n\n\t\t\tif (prevProps.selected !== selected) {\n\t\t\t\tvar setCursorClass = this.context.setCursorClass;\n\n\t\t\t\tif (selected && this.moreProps.hovering) {\n\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\tsetCursorClass(interactiveCursorClass);\n\t\t\t\t} else {\n\t\t\t\t\tthis.iSetTheCursorClass = false;\n\t\t\t\t\tsetCursorClass(null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ((0, _utils.isDefined)(canvasDraw) && !this.evaluationInProgress\n\t\t\t// && !(this.someDragInProgress && this.props.selected)\n\t\t\t/*\n prevent double draw of interactive elements\n during dragging / hover / click etc.\n */\n\t\t\t&& chartCanvasType !== \"svg\") {\n\n\t\t\t\tthis.updateMoreProps(this.moreProps);\n\t\t\t\tthis.drawOnCanvas();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillReceiveProps\",\n\t\tvalue: function componentWillReceiveProps(nextProps, nextContext) {\n\t\t\tvar xScale = nextContext.xScale,\n\t\t\t plotData = nextContext.plotData,\n\t\t\t chartConfig = nextContext.chartConfig,\n\t\t\t getMutableState = nextContext.getMutableState;\n\n\n\t\t\tthis.props.debug(nextContext);\n\t\t\tthis.moreProps = _extends({}, this.moreProps, getMutableState(), {\n\t\t\t\t/*\n ^ this is so\n mouseXY, currentCharts, currentItem are available to\n newly created components like MouseHoverText which\n is created right after a new interactive object is drawn\n */\n\t\t\t\txScale: xScale, plotData: plotData, chartConfig: chartConfig\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"getMoreProps\",\n\t\tvalue: function getMoreProps() {\n\t\t\tvar _context3 = this.context,\n\t\t\t xScale = _context3.xScale,\n\t\t\t plotData = _context3.plotData,\n\t\t\t chartConfig = _context3.chartConfig,\n\t\t\t morePropsDecorator = _context3.morePropsDecorator,\n\t\t\t xAccessor = _context3.xAccessor,\n\t\t\t displayXAccessor = _context3.displayXAccessor,\n\t\t\t width = _context3.width,\n\t\t\t height = _context3.height;\n\t\t\tvar _context4 = this.context,\n\t\t\t chartId = _context4.chartId,\n\t\t\t fullData = _context4.fullData;\n\n\n\t\t\tvar moreProps = _extends({\n\t\t\t\txScale: xScale, plotData: plotData, chartConfig: chartConfig,\n\t\t\t\txAccessor: xAccessor, displayXAccessor: displayXAccessor,\n\t\t\t\twidth: width, height: height,\n\t\t\t\tchartId: chartId,\n\t\t\t\tfullData: fullData\n\t\t\t}, this.moreProps);\n\n\t\t\treturn (morePropsDecorator || _utils.identity)(moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"preCanvasDraw\",\n\t\tvalue: function preCanvasDraw() {\n\t\t\t// do nothing\n\t\t}\n\t}, {\n\t\tkey: \"postCanvasDraw\",\n\t\tvalue: function postCanvasDraw() {}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas() {\n\t\t\tvar _props3 = this.props,\n\t\t\t canvasDraw = _props3.canvasDraw,\n\t\t\t canvasToDraw = _props3.canvasToDraw;\n\t\t\tvar getCanvasContexts = this.context.getCanvasContexts;\n\n\n\t\t\tvar moreProps = this.getMoreProps();\n\n\t\t\tvar ctx = canvasToDraw(getCanvasContexts());\n\n\t\t\tthis.preCanvasDraw(ctx, moreProps);\n\t\t\tcanvasDraw(ctx, moreProps);\n\t\t\tthis.postCanvasDraw(ctx, moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _context5 = this.context,\n\t\t\t chartCanvasType = _context5.chartCanvasType,\n\t\t\t chartId = _context5.chartId;\n\t\t\tvar _props4 = this.props,\n\t\t\t canvasDraw = _props4.canvasDraw,\n\t\t\t clip = _props4.clip,\n\t\t\t svgDraw = _props4.svgDraw;\n\n\n\t\t\tif ((0, _utils.isDefined)(canvasDraw) && chartCanvasType !== \"svg\") {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar suffix = (0, _utils.isDefined)(chartId) ? \"-\" + chartId : \"\";\n\n\t\t\tvar style = clip ? { \"clipPath\": \"url(#chart-area-clip\" + suffix + \")\" } : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ style: style },\n\t\t\t\tsvgDraw(this.getMoreProps())\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn GenericComponent;\n}(_react.Component);\n\nGenericComponent.propTypes = {\n\tsvgDraw: _propTypes2.default.func.isRequired,\n\tcanvasDraw: _propTypes2.default.func,\n\n\tdrawOn: _propTypes2.default.array.isRequired,\n\n\tclip: _propTypes2.default.bool.isRequired,\n\tedgeClip: _propTypes2.default.bool.isRequired,\n\tinteractiveCursorClass: _propTypes2.default.string,\n\n\tselected: _propTypes2.default.bool.isRequired,\n\tenableDragOnHover: _propTypes2.default.bool.isRequired,\n\tdisablePan: _propTypes2.default.bool.isRequired,\n\n\tcanvasToDraw: _propTypes2.default.func.isRequired,\n\n\tisHover: _propTypes2.default.func,\n\n\tonClick: _propTypes2.default.func,\n\tonClickWhenHover: _propTypes2.default.func,\n\tonClickOutside: _propTypes2.default.func,\n\n\tonPan: _propTypes2.default.func,\n\tonPanEnd: _propTypes2.default.func,\n\tonDragStart: _propTypes2.default.func,\n\tonDrag: _propTypes2.default.func,\n\tonDragComplete: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func,\n\tonDoubleClickWhenHover: _propTypes2.default.func,\n\tonContextMenu: _propTypes2.default.func,\n\tonContextMenuWhenHover: _propTypes2.default.func,\n\tonMouseMove: _propTypes2.default.func,\n\tonMouseDown: _propTypes2.default.func,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdebug: _propTypes2.default.func\n\t// owner: PropTypes.string.isRequired,\n};\n\nGenericComponent.defaultProps = {\n\tsvgDraw: (0, _utils.functor)(null),\n\tdraw: [],\n\tcanvasToDraw: function canvasToDraw(contexts) {\n\t\treturn contexts.mouseHover;\n\t},\n\tclip: true,\n\tedgeClip: false,\n\tselected: false,\n\tdisablePan: false,\n\tenableDragOnHover: false,\n\n\tonClickWhenHover: _utils.noop,\n\tonClickOutside: _utils.noop,\n\tonDragStart: _utils.noop,\n\tonMouseMove: _utils.noop,\n\tonMouseDown: _utils.noop,\n\tdebug: _utils.noop\n};\n\nGenericComponent.contextTypes = {\n\twidth: _propTypes2.default.number.isRequired,\n\theight: _propTypes2.default.number.isRequired,\n\tmargin: _propTypes2.default.object.isRequired,\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\tgetCanvasContexts: _propTypes2.default.func,\n\n\tchartCanvasType: _propTypes2.default.string,\n\txScale: _propTypes2.default.func.isRequired,\n\txAccessor: _propTypes2.default.func.isRequired,\n\tdisplayXAccessor: _propTypes2.default.func.isRequired,\n\tplotData: _propTypes2.default.array.isRequired,\n\tfullData: _propTypes2.default.array.isRequired,\n\n\tchartConfig: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]).isRequired,\n\n\tmorePropsDecorator: _propTypes2.default.func,\n\tgenerateSubscriptionId: _propTypes2.default.func,\n\tgetMutableState: _propTypes2.default.func.isRequired,\n\n\tamIOnTop: _propTypes2.default.func.isRequired,\n\tsubscribe: _propTypes2.default.func.isRequired,\n\tunsubscribe: _propTypes2.default.func.isRequired,\n\tsetCursorClass: _propTypes2.default.func.isRequired\n};\n\nexports.default = GenericComponent;\nfunction getAxisCanvas(contexts) {\n\treturn contexts.axes;\n}\n\nfunction getMouseCanvas(contexts) {\n\treturn contexts.mouseHover;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = financeDiscontinuousScale;\n\nvar _d3Collection = require(\"d3-collection\");\n\nvar _d3Array = require(\"d3-array\");\n\nvar _d3Scale = require(\"d3-scale\");\n\nvar _utils = require(\"../utils\");\n\nvar _levels = require(\"./levels\");\n\nvar MAX_LEVEL = _levels.levelDefinition.length - 1;\n\nfunction financeDiscontinuousScale(index, futureProvider) {\n\tvar backingLinearScale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _d3Scale.scaleLinear)();\n\n\n\tif ((0, _utils.isNotDefined)(index)) throw new Error(\"Use the discontinuousTimeScaleProvider to create financeDiscontinuousScale\");\n\n\tfunction scale(x) {\n\t\treturn backingLinearScale(x);\n\t}\n\tscale.invert = function (x) {\n\t\tvar inverted = backingLinearScale.invert(x);\n\t\treturn Math.round(inverted * 10000) / 10000;\n\t};\n\tscale.domain = function (x) {\n\t\tif (!arguments.length) return backingLinearScale.domain();\n\t\tbackingLinearScale.domain(x);\n\t\treturn scale;\n\t};\n\tscale.range = function (x) {\n\t\tif (!arguments.length) return backingLinearScale.range();\n\t\tbackingLinearScale.range(x);\n\t\treturn scale;\n\t};\n\tscale.rangeRound = function (x) {\n\t\treturn backingLinearScale.range(x);\n\t};\n\tscale.clamp = function (x) {\n\t\tif (!arguments.length) return backingLinearScale.clamp();\n\t\tbackingLinearScale.clamp(x);\n\t\treturn scale;\n\t};\n\tscale.interpolate = function (x) {\n\t\tif (!arguments.length) return backingLinearScale.interpolate();\n\t\tbackingLinearScale.interpolate(x);\n\t\treturn scale;\n\t};\n\tscale.ticks = function (m, flexTicks) {\n\t\tvar backingTicks = backingLinearScale.ticks(m);\n\t\tvar ticksMap = (0, _d3Collection.map)();\n\n\t\tvar _backingLinearScale$d = backingLinearScale.domain(),\n\t\t _backingLinearScale$d2 = _slicedToArray(_backingLinearScale$d, 2),\n\t\t domainStart = _backingLinearScale$d2[0],\n\t\t domainEnd = _backingLinearScale$d2[1];\n\n\t\tvar start = Math.max(Math.ceil(domainStart), (0, _utils.head)(index).index) + Math.abs((0, _utils.head)(index).index);\n\t\tvar end = Math.min(Math.floor(domainEnd), (0, _utils.last)(index).index) + Math.abs((0, _utils.head)(index).index);\n\n\t\tif (Math.floor(domainEnd) > end) {\n\t\t\t// console.log(end, domainEnd, index);\n\t\t}\n\n\t\tvar desiredTickCount = Math.ceil((end - start) / (domainEnd - domainStart) * backingTicks.length);\n\n\t\tfor (var i = MAX_LEVEL; i >= 0; i--) {\n\t\t\tvar ticksAtLevel = ticksMap.get(i);\n\t\t\tvar temp = (0, _utils.isNotDefined)(ticksAtLevel) ? [] : ticksAtLevel.slice();\n\n\t\t\tfor (var j = start; j <= end; j++) {\n\t\t\t\tif (index[j] !== undefined && index[j].level === i) {\n\t\t\t\t\ttemp.push(index[j]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tticksMap.set(i, temp);\n\t\t}\n\n\t\tvar unsortedTicks = [];\n\t\tfor (var _i = MAX_LEVEL; _i >= 0; _i--) {\n\t\t\tif (ticksMap.get(_i).length + unsortedTicks.length > desiredTickCount * 1.5) break;\n\t\t\tunsortedTicks = unsortedTicks.concat(ticksMap.get(_i).map(function (d) {\n\t\t\t\treturn d.index;\n\t\t\t}));\n\t\t}\n\n\t\tvar ticks = unsortedTicks.sort(_d3Array.ascending);\n\n\t\t// console.log(backingTicks.length, desiredTickCount, ticks, ticksMap);\n\n\t\tif (!flexTicks && end - start > ticks.length) {\n\t\t\tvar ticksSet = (0, _d3Collection.set)(ticks);\n\n\t\t\tvar d = Math.abs((0, _utils.head)(index).index);\n\n\t\t\t// ignore ticks within this distance\n\t\t\tvar distance = Math.ceil((backingTicks.length > 0 ? ((0, _utils.last)(backingTicks) - (0, _utils.head)(backingTicks)) / backingTicks.length / 4 : 1) * 1.5);\n\n\t\t\tfor (var _i2 = 0; _i2 < ticks.length - 1; _i2++) {\n\t\t\t\tfor (var _j = _i2 + 1; _j < ticks.length; _j++) {\n\t\t\t\t\tif (ticks[_j] - ticks[_i2] <= distance) {\n if(index[ticks[_i2] + d] !== undefined)\n\t\t\t\t\t\t ticksSet.remove(index[ticks[_i2] + d].level >= index[ticks[_j] + d].level ? ticks[_j] : ticks[_i2]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar tickValues = ticksSet.values().map(function (d) {\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\t// console.log(ticks.length, tickValues, level);\n\t\t\t// console.log(ticks, tickValues, distance);\n\n\t\t\treturn tickValues;\n\t\t}\n\n\t\treturn ticks;\n\t};\n\tscale.tickFormat = function () {\n\t\treturn function (x) {\n var d = Math.abs((0, _utils.head)(index).index);\n\n var _index$Math$floor = index[Math.floor(x + d)];\n if(_index$Math$floor !== undefined)\n {\n var format = _index$Math$floor.format,\n date = _index$Math$floor.date;\n\n return format(date);\n }\n return format(date);\n\t\t};\n\t};\n\tscale.value = function (x) {\n\t\tvar d = Math.abs((0, _utils.head)(index).index);\n\t\tif ((0, _utils.isDefined)(index[Math.floor(x + d)])) {\n\t\t\tvar date = index[Math.floor(x + d)].date;\n\n\t\t\treturn date;\n\t\t}\n\t};\n\tscale.nice = function (m) {\n\t\tbackingLinearScale.nice(m);\n\t\treturn scale;\n\t};\n\tscale.index = function (x) {\n\t\tif (!arguments.length) return index;\n\t\tindex = x;\n\t\treturn scale;\n\t};\n\tscale.copy = function () {\n\t\treturn financeDiscontinuousScale(index, futureProvider, backingLinearScale.copy());\n\t};\n\treturn scale;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar defaultFormatters = exports.defaultFormatters = {\n\tyearFormat: \"%Y\",\n\tquarterFormat: \"%b %Y\",\n\tmonthFormat: \"%b\",\n\tweekFormat: \"%d %b\",\n\tdayFormat: \"%a %d\",\n\thourFormat: \"%_I %p\",\n\tminuteFormat: \"%I:%M %p\",\n\tsecondFormat: \"%I:%M:%S %p\",\n\tmilliSecondFormat: \"%L\"\n};\n\nvar levelDefinition = exports.levelDefinition = [\n/* eslint-disable no-unused-vars */\n/* 19 */function (d, date, i) {\n\treturn d.startOfYear && date.getFullYear() % 12 === 0 && \"yearFormat\";\n},\n/* 18 */function (d, date, i) {\n\treturn d.startOfYear && date.getFullYear() % 4 === 0 && \"yearFormat\";\n},\n/* 17 */function (d, date, i) {\n\treturn d.startOfYear && date.getFullYear() % 2 === 0 && \"yearFormat\";\n},\n/* 16 */function (d, date, i) {\n\treturn d.startOfYear && \"yearFormat\";\n},\n/* 15 */function (d, date, i) {\n\treturn d.startOfQuarter && \"quarterFormat\";\n},\n/* 14 */function (d, date, i) {\n\treturn d.startOfMonth && \"monthFormat\";\n},\n/* 13 */function (d, date, i) {\n\treturn d.startOfWeek && \"weekFormat\";\n},\n/* 12 */function (d, date, i) {\n\treturn d.startOfDay && i % 2 === 0 && \"dayFormat\";\n},\n/* 11 */function (d, date, i) {\n\treturn d.startOfDay && \"dayFormat\";\n},\n/* 10 */function (d, date, i) {\n\treturn d.startOfHalfDay && \"hourFormat\";\n}, // 12h\n/* 9 */function (d, date, i) {\n\treturn d.startOfQuarterDay && \"hourFormat\";\n}, // 6h\n/* 8 */function (d, date, i) {\n\treturn d.startOfEighthOfADay && \"hourFormat\";\n}, // 3h\n/* 7 */function (d, date, i) {\n\treturn d.startOfHour && date.getHours() % 2 === 0 && \"hourFormat\";\n}, // 2h -- REMOVE THIS\n/* 6 */function (d, date, i) {\n\treturn d.startOfHour && \"hourFormat\";\n}, // 1h\n/* 5 */function (d, date, i) {\n\treturn d.startOf30Minutes && \"minuteFormat\";\n},\n/* 4 */function (d, date, i) {\n\treturn d.startOf15Minutes && \"minuteFormat\";\n},\n/* 3 */function (d, date, i) {\n\treturn d.startOf5Minutes && \"minuteFormat\";\n},\n/* 2 */function (d, date, i) {\n\treturn d.startOfMinute && \"minuteFormat\";\n},\n/* 1 */function (d, date, i) {\n\treturn d.startOf30Seconds && \"secondFormat\";\n},\n/* 0 */function (d, date, i) {\n\treturn \"secondFormat\";\n}];\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.SMA;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar average = (0, _utils.slidingWindow)().windowSize(windowSize).sourcePath(sourcePath).accumulator(function (values) {\n\t\t\treturn (0, _d3Array.mean)(values);\n\t\t});\n\n\t\treturn average(data);\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.SMA, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.ForceIndex;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t sourcePath = _options.sourcePath,\n\t\t volumePath = _options.volumePath;\n\n\n\t\tvar source = (0, _utils.path)(sourcePath);\n\t\tvar volume = (0, _utils.path)(volumePath);\n\n\t\tvar forceIndexCalulator = (0, _utils.slidingWindow)().windowSize(2).accumulator(function (_ref) {\n\t\t\tvar _ref2 = _slicedToArray(_ref, 2),\n\t\t\t prev = _ref2[0],\n\t\t\t curr = _ref2[1];\n\n\t\t\treturn (source(curr) - source(prev)) * volume(curr);\n\t\t});\n\n\t\tvar forceIndex = forceIndexCalulator(data);\n\n\t\treturn forceIndex;\n\t}\n\tcalculator.undefinedLength = function () {\n\t\treturn 2;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.ForceIndex, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.getNewXY = getNewXY;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../../utils\");\n\nvar _utils2 = require(\"../utils\");\n\nvar _ChartDataUtil = require(\"../../utils/ChartDataUtil\");\n\nvar _StraightLine = require(\"../components/StraightLine\");\n\nvar _StraightLine2 = _interopRequireDefault(_StraightLine);\n\nvar _ClickableCircle = require(\"../components/ClickableCircle\");\n\nvar _ClickableCircle2 = _interopRequireDefault(_ClickableCircle);\n\nvar _HoverTextNearMouse = require(\"../components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EachTrendLine = function (_Component) {\n\t_inherits(EachTrendLine, _Component);\n\n\tfunction EachTrendLine(props) {\n\t\t_classCallCheck(this, EachTrendLine);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EachTrendLine.__proto__ || Object.getPrototypeOf(EachTrendLine)).call(this, props));\n\n\t\t_this.handleEdge1Drag = _this.handleEdge1Drag.bind(_this);\n\t\t_this.handleEdge2Drag = _this.handleEdge2Drag.bind(_this);\n\t\t_this.handleLineDragStart = _this.handleLineDragStart.bind(_this);\n\t\t_this.handleLineDrag = _this.handleLineDrag.bind(_this);\n\n\t\t_this.handleEdge1DragStart = _this.handleEdge1DragStart.bind(_this);\n\t\t_this.handleEdge2DragStart = _this.handleEdge2DragStart.bind(_this);\n\n\t\t_this.handleDragComplete = _this.handleDragComplete.bind(_this);\n\n\t\t_this.handleHover = _this.handleHover.bind(_this);\n\n\t\t_this.isHover = _utils2.isHover.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = {};\n\n\t\t_this.state = {\n\t\t\thover: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EachTrendLine, [{\n\t\tkey: \"handleLineDragStart\",\n\t\tvalue: function handleLineDragStart() {\n\t\t\tvar _props = this.props,\n\t\t\t x1Value = _props.x1Value,\n\t\t\t y1Value = _props.y1Value,\n\t\t\t x2Value = _props.x2Value,\n\t\t\t y2Value = _props.y2Value;\n\n\n\t\t\tthis.dragStart = {\n\t\t\t\tx1Value: x1Value, y1Value: y1Value,\n\t\t\t\tx2Value: x2Value, y2Value: y2Value\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handleLineDrag\",\n\t\tvalue: function handleLineDrag(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t index = _props2.index,\n\t\t\t onDrag = _props2.onDrag;\n\t\t\tvar _dragStart = this.dragStart,\n\t\t\t x1Value = _dragStart.x1Value,\n\t\t\t y1Value = _dragStart.y1Value,\n\t\t\t x2Value = _dragStart.x2Value,\n\t\t\t y2Value = _dragStart.y2Value;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t fullData = moreProps.fullData;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY;\n\n\n\t\t\tvar x1 = xScale(x1Value);\n\t\t\tvar y1 = yScale(y1Value);\n\t\t\tvar x2 = xScale(x2Value);\n\t\t\tvar y2 = yScale(y2Value);\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\t\t\tvar newX2Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x2 - dx, y2 - dy], fullData);\n\t\t\tvar newY2Value = yScale.invert(y2 - dy);\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1Value: newX1Value,\n\t\t\t\ty1Value: newY1Value,\n\t\t\t\tx2Value: newX2Value,\n\t\t\t\ty2Value: newY2Value\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge1DragStart\",\n\t\tvalue: function handleEdge1DragStart() {\n\t\t\tthis.setState({\n\t\t\t\tanchor: \"edge2\"\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge2DragStart\",\n\t\tvalue: function handleEdge2DragStart() {\n\t\t\tthis.setState({\n\t\t\t\tanchor: \"edge1\"\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragComplete\",\n\t\tvalue: function handleDragComplete() {\n\t\t\tvar _props3;\n\n\t\t\tthis.setState({\n\t\t\t\tanchor: undefined\n\t\t\t});\n\t\t\t(_props3 = this.props).onDragComplete.apply(_props3, arguments);\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge1Drag\",\n\t\tvalue: function handleEdge1Drag(moreProps) {\n\t\t\tvar _props4 = this.props,\n\t\t\t index = _props4.index,\n\t\t\t onDrag = _props4.onDrag;\n\t\t\tvar _props5 = this.props,\n\t\t\t x2Value = _props5.x2Value,\n\t\t\t y2Value = _props5.y2Value;\n\n\t\t\tvar _getNewXY = getNewXY(moreProps),\n\t\t\t _getNewXY2 = _slicedToArray(_getNewXY, 2),\n\t\t\t x1Value = _getNewXY2[0],\n\t\t\t y1Value = _getNewXY2[1];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1Value: x1Value,\n\t\t\t\ty1Value: y1Value,\n\t\t\t\tx2Value: x2Value,\n\t\t\t\ty2Value: y2Value\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge2Drag\",\n\t\tvalue: function handleEdge2Drag(moreProps) {\n\t\t\tvar _props6 = this.props,\n\t\t\t index = _props6.index,\n\t\t\t onDrag = _props6.onDrag;\n\t\t\tvar _props7 = this.props,\n\t\t\t x1Value = _props7.x1Value,\n\t\t\t y1Value = _props7.y1Value;\n\n\t\t\tvar _getNewXY3 = getNewXY(moreProps),\n\t\t\t _getNewXY4 = _slicedToArray(_getNewXY3, 2),\n\t\t\t x2Value = _getNewXY4[0],\n\t\t\t y2Value = _getNewXY4[1];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1Value: x1Value,\n\t\t\t\ty1Value: y1Value,\n\t\t\t\tx2Value: x2Value,\n\t\t\t\ty2Value: y2Value\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n\t\t\tif (this.state.hover !== moreProps.hovering) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thover: moreProps.hovering\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props8 = this.props,\n\t\t\t x1Value = _props8.x1Value,\n\t\t\t y1Value = _props8.y1Value,\n\t\t\t x2Value = _props8.x2Value,\n\t\t\t y2Value = _props8.y2Value,\n\t\t\t type = _props8.type,\n\t\t\t stroke = _props8.stroke,\n\t\t\t strokeWidth = _props8.strokeWidth,\n\t\t\t strokeOpacity = _props8.strokeOpacity,\n\t\t\t strokeDasharray = _props8.strokeDasharray,\n\t\t\t r = _props8.r,\n\t\t\t edgeStrokeWidth = _props8.edgeStrokeWidth,\n\t\t\t edgeFill = _props8.edgeFill,\n\t\t\t edgeStroke = _props8.edgeStroke,\n\t\t\t edgeInteractiveCursor = _props8.edgeInteractiveCursor,\n\t\t\t lineInteractiveCursor = _props8.lineInteractiveCursor,\n\t\t\t hoverText = _props8.hoverText,\n\t\t\t selected = _props8.selected,\n\t\t\t onDragComplete = _props8.onDragComplete;\n\n\t\t\tvar hoverTextEnabled = hoverText.enable,\n\t\t\t hoverTextSelected = hoverText.selectedText,\n\t\t\t hoverTextUnselected = hoverText.text,\n\t\t\t restHoverTextProps = _objectWithoutProperties(hoverText, [\"enable\", \"selectedText\", \"text\"]);\n\n\t\t\tvar _state = this.state,\n\t\t\t hover = _state.hover,\n\t\t\t anchor = _state.anchor;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tref: this.saveNodeType(\"line\"),\n\t\t\t\t\tselected: selected || hover,\n\t\t\t\t\tonHover: this.handleHover,\n\t\t\t\t\tonUnHover: this.handleHover,\n\t\t\t\t\tx1Value: x1Value,\n\t\t\t\t\ty1Value: y1Value,\n\t\t\t\t\tx2Value: x2Value,\n\t\t\t\t\ty2Value: y2Value,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeWidth: hover || selected ? strokeWidth + 1 : strokeWidth,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tstrokeDasharray: strokeDasharray,\n\t\t\t\t\tinteractiveCursorClass: lineInteractiveCursor,\n\t\t\t\t\tonDragStart: this.handleLineDragStart,\n\t\t\t\t\tonDrag: this.handleLineDrag,\n\t\t\t\t\tonDragComplete: onDragComplete }),\n\t\t\t\t_react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\t\tref: this.saveNodeType(\"edge1\"),\n\t\t\t\t\tshow: selected || hover,\n\t\t\t\t\tcx: x1Value,\n\t\t\t\t\tcy: y1Value,\n\t\t\t\t\tr: r,\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tstroke: anchor === \"edge1\" ? stroke : edgeStroke,\n\t\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\t\tstrokeOpacity: 1,\n\t\t\t\t\tinteractiveCursorClass: edgeInteractiveCursor,\n\t\t\t\t\tonDragStart: this.handleEdge1DragStart,\n\t\t\t\t\tonDrag: this.handleEdge1Drag,\n\t\t\t\t\tonDragComplete: this.handleDragComplete }),\n\t\t\t\t_react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\t\tref: this.saveNodeType(\"edge2\"),\n\t\t\t\t\tshow: selected || hover,\n\t\t\t\t\tcx: x2Value,\n\t\t\t\t\tcy: y2Value,\n\t\t\t\t\tr: r,\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tstroke: anchor === \"edge2\" ? stroke : edgeStroke,\n\t\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\t\tstrokeOpacity: 1,\n\t\t\t\t\tinteractiveCursorClass: edgeInteractiveCursor,\n\t\t\t\t\tonDragStart: this.handleEdge2DragStart,\n\t\t\t\t\tonDrag: this.handleEdge2Drag,\n\t\t\t\t\tonDragComplete: this.handleDragComplete }),\n\t\t\t\t_react2.default.createElement(_HoverTextNearMouse2.default, _extends({\n\t\t\t\t\tshow: hoverTextEnabled && hover\n\t\t\t\t}, restHoverTextProps, {\n\t\t\t\t\ttext: selected ? hoverTextSelected : hoverTextUnselected\n\t\t\t\t}))\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EachTrendLine;\n}(_react.Component);\n\nfunction getNewXY(moreProps) {\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t xAccessor = moreProps.xAccessor,\n\t plotData = moreProps.plotData,\n\t mouseXY = moreProps.mouseXY;\n\n\tvar mouseY = mouseXY[1];\n\n\tvar x = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, mouseXY, plotData);\n\n\tvar _yScale$domain$slice$ = yScale.domain().slice().sort(_d3Array.ascending),\n\t _yScale$domain$slice$2 = _slicedToArray(_yScale$domain$slice$, 2),\n\t small = _yScale$domain$slice$2[0],\n\t big = _yScale$domain$slice$2[1];\n\n\tvar y = yScale.invert(mouseY);\n\tvar newY = Math.min(Math.max(y, small), big);\n\n\treturn [x, newY];\n}\n\nEachTrendLine.propTypes = {\n\tx1Value: _propTypes2.default.any.isRequired,\n\tx2Value: _propTypes2.default.any.isRequired,\n\ty1Value: _propTypes2.default.any.isRequired,\n\ty2Value: _propTypes2.default.any.isRequired,\n\n\tindex: _propTypes2.default.number,\n\n\ttype: _propTypes2.default.oneOf([\"XLINE\", // extends from -Infinity to +Infinity\n\t\"RAY\", // extends to +/-Infinity in one direction\n\t\"LINE\"] // extends between the set bounds\n\t).isRequired,\n\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonEdge1Drag: _propTypes2.default.func.isRequired,\n\tonEdge2Drag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func.isRequired,\n\tonUnSelect: _propTypes2.default.func.isRequired,\n\n\tr: _propTypes2.default.number.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\tdefaultClassName: _propTypes2.default.string,\n\n\tselected: _propTypes2.default.bool,\n\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\n\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\tedgeStroke: _propTypes2.default.string.isRequired,\n\tedgeInteractiveCursor: _propTypes2.default.string.isRequired,\n\tlineInteractiveCursor: _propTypes2.default.string.isRequired,\n\tedgeFill: _propTypes2.default.string.isRequired,\n\thoverText: _propTypes2.default.object.isRequired\n};\n\nEachTrendLine.defaultProps = {\n\tonDrag: _utils.noop,\n\tonEdge1Drag: _utils.noop,\n\tonEdge2Drag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\tonUnSelect: _utils.noop,\n\n\tselected: false,\n\n\tedgeStroke: \"#000000\",\n\tedgeFill: \"#FFFFFF\",\n\tedgeStrokeWidth: 2,\n\tr: 5,\n\tstrokeWidth: 1,\n\tstrokeOpacity: 1,\n\tstrokeDasharray: \"Solid\",\n\thoverText: {\n\t\tenable: false\n\t}\n};\n\nexports.default = EachTrendLine;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _TypeChooser = require(\"./TypeChooser\");\n\nObject.defineProperty(exports, \"TypeChooser\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_TypeChooser).default;\n }\n});\n\nvar _SaveChartAsImage = require(\"./SaveChartAsImage\");\n\nObject.defineProperty(exports, \"SaveChartAsImage\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_SaveChartAsImage).default;\n }\n});\n\nvar _fitWidth = require(\"./fitWidth\");\n\nObject.defineProperty(exports, \"fitWidth\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_fitWidth).default;\n }\n});\n\nvar _fitDimensions = require(\"./fitDimensions\");\n\nObject.defineProperty(exports, \"fitDimensions\", {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_fitDimensions).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = rebind;\n// copied from https://github.com/d3fc/d3fc-rebind/blob/master/src/rebind.js\n\nfunction createReboundMethod(target, source, name) {\n\tvar method = source[name];\n\tif (typeof method !== \"function\") {\n\t\tthrow new Error(\"Attempt to rebind \" + name + \" which isn't a function on the source object\");\n\t}\n\treturn function () {\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\tvar value = method.apply(source, args);\n\t\treturn value === source ? target : value;\n\t};\n}\n\nfunction rebind(target, source) {\n\tfor (var _len2 = arguments.length, names = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n\t\tnames[_key2 - 2] = arguments[_key2];\n\t}\n\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = names[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar name = _step.value;\n\n\t\t\ttarget[name] = createReboundMethod(target, source, name);\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn target;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar algorithm = _identity2.default,\n\t skipUndefined = true,\n\t merge = _noop2.default;\n\n\tfunction mergeCompute(data) {\n\t\tvar zip = (0, _zipper2.default)().combine(function (datum, indicator) {\n\t\t\tvar result = skipUndefined && (0, _index.isNotDefined)(indicator) ? datum : merge(datum, indicator);\n\t\t\treturn (0, _index.isNotDefined)(result) ? datum : result;\n\t\t});\n\n\t\t// console.log(data);\n\t\treturn zip(data, algorithm(data));\n\t}\n\n\tmergeCompute.algorithm = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn algorithm;\n\t\t}\n\t\talgorithm = x;\n\t\treturn mergeCompute;\n\t};\n\n\tmergeCompute.merge = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn merge;\n\t\t}\n\t\tmerge = x;\n\t\treturn mergeCompute;\n\t};\n\tmergeCompute.skipUndefined = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn skipUndefined;\n\t\t}\n\t\tskipUndefined = x;\n\t\treturn mergeCompute;\n\t};\n\n\treturn mergeCompute;\n};\n\nvar _identity = require(\"./identity\");\n\nvar _identity2 = _interopRequireDefault(_identity);\n\nvar _zipper = require(\"./zipper\");\n\nvar _zipper2 = _interopRequireDefault(_zipper);\n\nvar _noop = require(\"./noop\");\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _index = require(\"./index\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar undefinedValue = undefined,\n\t windowSize = 10,\n\t accumulator = _noop2.default,\n\t sourcePath = void 0,\n\t source = void 0,\n\t skipInitial = 0,\n\t misc = void 0;\n\n\t// eslint-disable-next-line prefer-const\n\tvar slidingWindow = function slidingWindow(data) {\n\t\tvar sourceFunction = source || (0, _index.path)(sourcePath);\n\n\t\tvar size = (0, _index.functor)(windowSize).apply(this, arguments);\n\t\tvar windowData = data.slice(skipInitial, size + skipInitial).map(sourceFunction);\n\t\tvar accumulatorIdx = 0;\n\t\tvar undef = (0, _index.functor)(undefinedValue);\n\t\t// console.log(skipInitial, size, data.length, windowData.length);\n\t\treturn data.map(function (d, i) {\n\t\t\t// console.log(d, i);\n\t\t\tif (i < skipInitial + size - 1) {\n\t\t\t\treturn undef(sourceFunction(d), i, misc);\n\t\t\t}\n\t\t\tif (i >= skipInitial + size) {\n\t\t\t\t// Treat windowData as FIFO rolling buffer\n\t\t\t\twindowData.shift();\n\t\t\t\twindowData.push(sourceFunction(d, i));\n\t\t\t}\n\t\t\treturn accumulator(windowData, i, accumulatorIdx++, misc);\n\t\t});\n\t};\n\n\tslidingWindow.undefinedValue = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn undefinedValue;\n\t\t}\n\t\tundefinedValue = x;\n\t\treturn slidingWindow;\n\t};\n\tslidingWindow.windowSize = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn windowSize;\n\t\t}\n\t\twindowSize = x;\n\t\treturn slidingWindow;\n\t};\n\tslidingWindow.misc = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn misc;\n\t\t}\n\t\tmisc = x;\n\t\treturn slidingWindow;\n\t};\n\tslidingWindow.accumulator = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn accumulator;\n\t\t}\n\t\taccumulator = x;\n\t\treturn slidingWindow;\n\t};\n\tslidingWindow.skipInitial = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn skipInitial;\n\t\t}\n\t\tskipInitial = x;\n\t\treturn slidingWindow;\n\t};\n\tslidingWindow.sourcePath = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn sourcePath;\n\t\t}\n\t\tsourcePath = x;\n\t\treturn slidingWindow;\n\t};\n\tslidingWindow.source = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn source;\n\t\t}\n\t\tsource = x;\n\t\treturn slidingWindow;\n\t};\n\n\treturn slidingWindow;\n};\n\nvar _noop = require(\"./noop\");\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _index = require(\"./index\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar undefinedValue = undefined,\n\t windowSize = 10,\n\t accumulator = _noop2.default,\n\t source = _identity2.default,\n\t skipInitial = 0;\n\n\t// eslint-disable-next-line prefer-const\n\tvar mappedSlidingWindow = function mappedSlidingWindow(data) {\n\t\tvar size = (0, _index.functor)(windowSize).apply(this, arguments);\n\t\tvar windowData = [];\n\t\tvar accumulatorIdx = 0;\n\t\tvar undef = (0, _index.functor)(undefinedValue);\n\t\t// console.log(skipInitial, size, data.length, windowData.length);\n\t\tvar result = [];\n\t\tdata.forEach(function (d, i) {\n\t\t\t// console.log(d, i, windowData.length);\n\t\t\tvar mapped = void 0;\n\t\t\tif (i < skipInitial + size - 1) {\n\t\t\t\tmapped = undef(d, i);\n\t\t\t\tresult.push(mapped);\n\t\t\t\twindowData.push(mapped);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (i >= skipInitial + size) {\n\t\t\t\t// Treat windowData as FIFO rolling buffer\n\t\t\t\twindowData.shift();\n\t\t\t}\n\t\t\twindowData.push(source(d, i));\n\t\t\tmapped = accumulator(windowData, i, accumulatorIdx++);\n\t\t\tresult.push(mapped);\n\t\t\twindowData.pop();\n\t\t\twindowData.push(mapped);\n\t\t\treturn;\n\t\t});\n\t\treturn result;\n\t};\n\n\tmappedSlidingWindow.undefinedValue = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn undefinedValue;\n\t\t}\n\t\tundefinedValue = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.windowSize = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn windowSize;\n\t\t}\n\t\twindowSize = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.accumulator = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn accumulator;\n\t\t}\n\t\taccumulator = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.skipInitial = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn skipInitial;\n\t\t}\n\t\tskipInitial = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.source = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn source;\n\t\t}\n\t\tsource = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\n\treturn mappedSlidingWindow;\n};\n\nvar _noop = require(\"./noop\");\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _identity = require(\"./identity\");\n\nvar _identity2 = _interopRequireDefault(_identity);\n\nvar _index = require(\"./index\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar accumulateTill = (0, _index.functor)(false),\n\t accumulator = _noop2.default,\n\t value = _identity2.default,\n\t discardTillStart = false,\n\t discardTillEnd = false;\n\n\t// eslint-disable-next-line prefer-const\n\tvar accumulatingWindow = function accumulatingWindow(data) {\n\t\tvar accumulatedWindow = discardTillStart ? undefined : [];\n\t\tvar response = [];\n\t\tvar accumulatorIdx = 0;\n\t\tvar i = 0;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tvar d = data[i];\n\t\t\t// console.log(d, accumulateTill(d));\n\t\t\tif (accumulateTill(d, i, accumulatedWindow || [])) {\n\t\t\t\tif (accumulatedWindow && accumulatedWindow.length > 0) response.push(accumulator(accumulatedWindow, i, accumulatorIdx++));\n\t\t\t\taccumulatedWindow = [value(d)];\n\t\t\t} else {\n\t\t\t\tif (accumulatedWindow) accumulatedWindow.push(value(d));\n\t\t\t}\n\t\t}\n\t\tif (!discardTillEnd) response.push(accumulator(accumulatedWindow, i, accumulatorIdx));\n\t\treturn response;\n\t};\n\n\taccumulatingWindow.accumulateTill = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn accumulateTill;\n\t\t}\n\t\taccumulateTill = (0, _index.functor)(x);\n\t\treturn accumulatingWindow;\n\t};\n\taccumulatingWindow.accumulator = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn accumulator;\n\t\t}\n\t\taccumulator = x;\n\t\treturn accumulatingWindow;\n\t};\n\taccumulatingWindow.value = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn value;\n\t\t}\n\t\tvalue = x;\n\t\treturn accumulatingWindow;\n\t};\n\taccumulatingWindow.discardTillStart = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn discardTillStart;\n\t\t}\n\t\tdiscardTillStart = x;\n\t\treturn accumulatingWindow;\n\t};\n\taccumulatingWindow.discardTillEnd = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn discardTillEnd;\n\t\t}\n\t\tdiscardTillEnd = x;\n\t\treturn accumulatingWindow;\n\t};\n\treturn accumulatingWindow;\n};\n\nvar _noop = require(\"./noop\");\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _identity = require(\"./identity\");\n\nvar _identity2 = _interopRequireDefault(_identity);\n\nvar _index = require(\"./index\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.plotDataLengthBarWidth = plotDataLengthBarWidth;\nexports.timeIntervalBarWidth = timeIntervalBarWidth;\n\nvar _utils = require(\"../utils\");\n\n/**\n * Bar width is based on the amount of items in the plot data and the distance between the first and last of those\n * items.\n * @param props the props passed to the series.\n * @param moreProps an object holding the xScale, xAccessor and plotData.\n * @return {number} the bar width.\n */\nfunction plotDataLengthBarWidth(props, moreProps) {\n\tvar widthRatio = props.widthRatio;\n\tvar xScale = moreProps.xScale;\n\n\tvar _xScale$range = xScale.range(),\n\t _xScale$range2 = _slicedToArray(_xScale$range, 2),\n\t l = _xScale$range2[0],\n\t r = _xScale$range2[1];\n\n\tvar totalWidth = Math.abs(r - l);\n\tif (xScale.invert != null) {\n\t\tvar _xScale$domain = xScale.domain(),\n\t\t _xScale$domain2 = _slicedToArray(_xScale$domain, 2),\n\t\t dl = _xScale$domain2[0],\n\t\t dr = _xScale$domain2[1];\n\n\t\tvar width = totalWidth / Math.abs(dl - dr);\n\t\treturn width * widthRatio;\n\t} else {\n\t\tvar _width = totalWidth / xScale.domain().length;\n\t\treturn _width * widthRatio;\n\t}\n}\n\n/**\n * Generates a width function that calculates the bar width based on the given time interval.\n * @param interval a d3-time time interval.\n * @return {Function} the width function.\n */\nfunction timeIntervalBarWidth(interval) {\n\treturn function (props, moreProps) {\n\t\tvar widthRatio = props.widthRatio;\n\t\tvar xScale = moreProps.xScale,\n\t\t xAccessor = moreProps.xAccessor,\n\t\t plotData = moreProps.plotData;\n\n\n\t\tvar first = xAccessor((0, _utils.head)(plotData));\n\t\treturn Math.abs(xScale(interval.offset(first, 1)) - xScale(first)) * widthRatio;\n\t};\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.getStrokeDasharrayCanvas = getStrokeDasharrayCanvas;\nvar strokeDashTypes = exports.strokeDashTypes = [\"Solid\", \"ShortDash\", \"ShortDash2\", \"ShortDot\", \"ShortDashDot\", \"ShortDashDotDot\", \"Dot\", \"Dash\", \"LongDash\", \"DashDot\", \"LongDashDot\", \"LongDashDotDot\"];\n\nfunction getStrokeDasharrayCanvas(type) {\n\tvar a = getStrokeDasharray(type).split(\",\");\n\n\tif (a.length === 1) return [];\n\n\treturn a.map(function (d) {\n\t\treturn Number(d);\n\t});\n}\nvar getStrokeDasharray = exports.getStrokeDasharray = function getStrokeDasharray(type) {\n\tswitch (type) {\n\t\tdefault:\n\t\tcase \"Solid\":\n\t\t\treturn \"none\";\n\t\tcase \"ShortDash\":\n\t\t\treturn \"6, 2\";\n\t\tcase \"ShortDash2\":\n\t\t\treturn \"6, 3\";\n\t\tcase \"ShortDot\":\n\t\t\treturn \"2, 2\";\n\t\tcase \"ShortDashDot\":\n\t\t\treturn \"6, 2, 2, 2\";\n\t\tcase \"ShortDashDotDot\":\n\t\t\treturn \"6, 2, 2, 2, 2, 2\";\n\t\tcase \"Dot\":\n\t\t\treturn \"2, 6\";\n\t\tcase \"Dash\":\n\t\t\treturn \"8, 6\";\n\t\tcase \"LongDash\":\n\t\t\treturn \"16, 6\";\n\t\tcase \"DashDot\":\n\t\t\treturn \"8, 6, 2, 6\";\n\t\tcase \"LongDashDot\":\n\t\t\treturn \"16, 6, 2, 6\";\n\t\tcase \"LongDashDotDot\":\n\t\t\treturn \"16, 6, 2, 6, 2, 6\";\n\t}\n};\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _AreaSeries = require(\"./AreaSeries\");\n\nvar _AreaSeries2 = _interopRequireDefault(_AreaSeries);\n\nvar _SVGComponent = require(\"./SVGComponent\");\n\nvar _SVGComponent2 = _interopRequireDefault(_SVGComponent);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AlternatingFillAreaSeries = function (_Component) {\n\t_inherits(AlternatingFillAreaSeries, _Component);\n\n\tfunction AlternatingFillAreaSeries(props) {\n\t\t_classCallCheck(this, AlternatingFillAreaSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AlternatingFillAreaSeries.__proto__ || Object.getPrototypeOf(AlternatingFillAreaSeries)).call(this, props));\n\n\t\t_this.renderClip = _this.renderClip.bind(_this);\n\t\t_this.topClip = _this.topClip.bind(_this);\n\t\t_this.bottomClip = _this.bottomClip.bind(_this);\n\t\t_this.baseAt = _this.baseAt.bind(_this);\n\n\t\tvar id1 = String(Math.round(Math.random() * 10000 * 10000));\n\t\t_this.clipPathId1 = \"alternating-area-clip-\" + id1;\n\n\t\tvar id2 = String(Math.round(Math.random() * 10000 * 10000));\n\t\t_this.clipPathId2 = \"alternating-area-clip-\" + id2;\n\t\treturn _this;\n\t}\n\n\t_createClass(AlternatingFillAreaSeries, [{\n\t\tkey: \"topClip\",\n\t\tvalue: function topClip(ctx, moreProps) {\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\t\t\tvar baseAt = this.props.baseAt;\n\t\t\tvar yScale = chartConfig.yScale,\n\t\t\t width = chartConfig.width;\n\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(0, 0, width, yScale(baseAt));\n\t\t\tctx.clip();\n\t\t}\n\t}, {\n\t\tkey: \"bottomClip\",\n\t\tvalue: function bottomClip(ctx, moreProps) {\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\t\t\tvar baseAt = this.props.baseAt;\n\t\t\tvar yScale = chartConfig.yScale,\n\t\t\t width = chartConfig.width,\n\t\t\t height = chartConfig.height;\n\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(0, yScale(baseAt), width, height - yScale(baseAt));\n\t\t\tctx.clip();\n\t\t}\n\t}, {\n\t\tkey: \"renderClip\",\n\t\tvalue: function renderClip(moreProps) {\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\t\t\tvar baseAt = this.props.baseAt;\n\t\t\tvar yScale = chartConfig.yScale,\n\t\t\t width = chartConfig.width,\n\t\t\t height = chartConfig.height;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"defs\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"clipPath\",\n\t\t\t\t\t{ id: this.clipPathId1 },\n\t\t\t\t\t_react2.default.createElement(\"rect\", {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: yScale(baseAt)\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"clipPath\",\n\t\t\t\t\t{ id: this.clipPathId2 },\n\t\t\t\t\t_react2.default.createElement(\"rect\", {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: yScale(baseAt),\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: height - yScale(baseAt)\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"baseAt\",\n\t\tvalue: function baseAt(yScale) {\n\t\t\treturn yScale(this.props.baseAt);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t yAccessor = _props.yAccessor,\n\t\t\t interpolation = _props.interpolation;\n\t\t\tvar _props2 = this.props,\n\t\t\t stroke = _props2.stroke,\n\t\t\t strokeWidth = _props2.strokeWidth,\n\t\t\t strokeOpacity = _props2.strokeOpacity,\n\t\t\t strokeDasharray = _props2.strokeDasharray,\n\t\t\t fill = _props2.fill,\n\t\t\t fillOpacity = _props2.fillOpacity;\n\n\n\t\t\tvar style1 = { \"clipPath\": \"url(#\" + this.clipPathId1 + \")\" };\n\t\t\tvar style2 = { \"clipPath\": \"url(#\" + this.clipPathId2 + \")\" };\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_SVGComponent2.default,\n\t\t\t\t\tnull,\n\t\t\t\t\tthis.renderClip\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(_AreaSeries2.default, {\n\t\t\t\t\tstyle: style1,\n\t\t\t\t\tcanvasClip: this.topClip,\n\n\t\t\t\t\tyAccessor: yAccessor,\n\t\t\t\t\tinterpolation: interpolation,\n\t\t\t\t\tbaseAt: this.baseAt,\n\n\t\t\t\t\tfill: fill.top,\n\t\t\t\t\topacity: fillOpacity.top,\n\t\t\t\t\tstroke: stroke.top,\n\t\t\t\t\tstrokeOpacity: strokeOpacity.top,\n\t\t\t\t\tstrokeDasharray: strokeDasharray.top,\n\t\t\t\t\tstrokeWidth: strokeWidth.top\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(_AreaSeries2.default, {\n\t\t\t\t\tstyle: style2,\n\t\t\t\t\tcanvasClip: this.bottomClip,\n\n\t\t\t\t\tyAccessor: yAccessor,\n\t\t\t\t\tinterpolation: interpolation,\n\t\t\t\t\tbaseAt: this.baseAt,\n\n\t\t\t\t\tfill: fill.bottom,\n\t\t\t\t\topacity: fillOpacity.bottom,\n\t\t\t\t\tstroke: stroke.bottom,\n\t\t\t\t\tstrokeOpacity: strokeOpacity.bottom,\n\t\t\t\t\tstrokeDasharray: strokeDasharray.bottom,\n\t\t\t\t\tstrokeWidth: strokeWidth.bottom\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AlternatingFillAreaSeries;\n}(_react.Component);\n\nAlternatingFillAreaSeries.propTypes = {\n\tstroke: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.string,\n\t\tbottom: _propTypes2.default.string\n\t}),\n\n\tstrokeWidth: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.number,\n\t\tbottom: _propTypes2.default.number\n\t}),\n\tstrokeOpacity: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.number,\n\t\tbottom: _propTypes2.default.number\n\t}),\n\tfill: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.string,\n\t\tbottom: _propTypes2.default.string\n\t}),\n\tfillOpacity: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.number,\n\t\tbottom: _propTypes2.default.number\n\t}),\n\tstrokeDasharray: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\t\tbottom: _propTypes2.default.oneOf(_utils.strokeDashTypes)\n\t}).isRequired,\n\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\n\tbaseAt: _propTypes2.default.number.isRequired,\n\n\tinterpolation: _propTypes2.default.func\n};\n\nAlternatingFillAreaSeries.defaultProps = {\n\tstroke: {\n\t\ttop: \"#38C172\",\n\t\tbottom: \"#E3342F\"\n\t},\n\tstrokeWidth: {\n\t\ttop: 2,\n\t\tbottom: 2\n\t},\n\tstrokeOpacity: {\n\t\ttop: 1,\n\t\tbottom: 1\n\t},\n\tfill: {\n\t\ttop: \"#A2F5BF\",\n\t\tbottom: \"#EF5753\"\n\t},\n\tfillOpacity: {\n\t\ttop: 0.5,\n\t\tbottom: 0.5\n\t},\n\tstrokeDasharray: {\n\t\ttop: \"Solid\",\n\t\tbottom: \"Solid\"\n\t},\n\tclassName: \"react-stockcharts-alternating-area\"\n};\n\nexports.default = AlternatingFillAreaSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Collection = require(\"d3-collection\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ScatterSeries = function (_Component) {\n\t_inherits(ScatterSeries, _Component);\n\n\tfunction ScatterSeries(props) {\n\t\t_classCallCheck(this, ScatterSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (ScatterSeries.__proto__ || Object.getPrototypeOf(ScatterSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(ScatterSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\n\t\t\tvar points = helper(this.props, moreProps, xAccessor);\n\n\t\t\t_drawOnCanvas(ctx, this.props, points);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t markerProps = _props.markerProps;\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\n\t\t\tvar points = helper(this.props, moreProps, xAccessor);\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\tpoints.map(function (point, idx) {\n\t\t\t\t\tvar Marker = point.marker;\n\n\t\t\t\t\treturn _react2.default.createElement(Marker, _extends({ key: idx }, markerProps, { point: point }));\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn ScatterSeries;\n}(_react.Component);\n\nScatterSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tmarker: _propTypes2.default.func,\n\tmarkerProvider: _propTypes2.default.func,\n\tmarkerProps: _propTypes2.default.object\n};\n\nScatterSeries.defaultProps = {\n\tclassName: \"react-stockcharts-scatter\"\n};\n\nfunction helper(props, moreProps, xAccessor) {\n\tvar yAccessor = props.yAccessor,\n\t markerProvider = props.markerProvider,\n\t markerProps = props.markerProps;\n\tvar Marker = props.marker;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t plotData = moreProps.plotData;\n\n\n\tif (!(markerProvider || Marker)) throw new Error(\"required prop, either marker or markerProvider missing\");\n\n\treturn plotData.map(function (d) {\n\n\t\tif (markerProvider) Marker = markerProvider(d);\n\n\t\tvar mProps = _extends({}, Marker.defaultProps, markerProps);\n\n\t\tvar fill = (0, _utils.functor)(mProps.fill);\n\t\tvar stroke = (0, _utils.functor)(mProps.stroke);\n\n\t\treturn {\n\t\t\tx: xScale(xAccessor(d)),\n\t\t\ty: yScale(yAccessor(d)),\n\t\t\tfill: (0, _utils.hexToRGBA)(fill(d), mProps.opacity),\n\t\t\tstroke: stroke(d),\n\t\t\tdatum: d,\n\t\t\tmarker: Marker\n\t\t};\n\t});\n}\n\nfunction _drawOnCanvas(ctx, props, points) {\n\tvar markerProps = props.markerProps;\n\n\n\tvar nest = (0, _d3Collection.nest)().key(function (d) {\n\t\treturn d.fill;\n\t}).key(function (d) {\n\t\treturn d.stroke;\n\t}).entries(points);\n\n\tnest.forEach(function (fillGroup) {\n\t\tvar fillKey = fillGroup.key,\n\t\t fillValues = fillGroup.values;\n\n\n\t\tif (fillKey !== \"none\") {\n\t\t\tctx.fillStyle = fillKey;\n\t\t}\n\n\t\tfillValues.forEach(function (strokeGroup) {\n\t\t\t// var { key: strokeKey, values: strokeValues } = strokeGroup;\n\t\t\tvar strokeValues = strokeGroup.values;\n\n\n\t\t\tstrokeValues.forEach(function (point) {\n\t\t\t\tvar marker = point.marker;\n\n\t\t\t\tmarker.drawOnCanvas(_extends({}, marker.defaultProps, markerProps, { fill: fillKey }), point, ctx);\n\t\t\t});\n\t\t});\n\t});\n}\n\nexports.default = ScatterSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Circle(props) {\n\tvar className = props.className,\n\t stroke = props.stroke,\n\t strokeWidth = props.strokeWidth,\n\t opacity = props.opacity,\n\t fill = props.fill,\n\t point = props.point,\n\t r = props.r;\n\n\tvar radius = (0, _utils.functor)(r)(point.datum);\n\treturn _react2.default.createElement(\"circle\", { className: className,\n\t\tcx: point.x, cy: point.y,\n\t\tstroke: stroke, strokeWidth: strokeWidth,\n\t\tfillOpacity: opacity, fill: fill, r: radius });\n}\n\nCircle.propTypes = {\n\tstroke: _propTypes2.default.string,\n\tfill: _propTypes2.default.string.isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tpoint: _propTypes2.default.shape({\n\t\tx: _propTypes2.default.number.isRequired,\n\t\ty: _propTypes2.default.number.isRequired,\n\t\tdatum: _propTypes2.default.object.isRequired\n\t}).isRequired,\n\tclassName: _propTypes2.default.string,\n\tstrokeWidth: _propTypes2.default.number,\n\tr: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]).isRequired\n};\n\nCircle.defaultProps = {\n\tstroke: \"#4682B4\",\n\tstrokeWidth: 1,\n\topacity: 0.5,\n\tfill: \"#4682B4\",\n\tclassName: \"react-stockcharts-marker-circle\"\n};\n\nCircle.drawOnCanvas = function (props, point, ctx) {\n\tvar stroke = props.stroke,\n\t fill = props.fill,\n\t opacity = props.opacity,\n\t strokeWidth = props.strokeWidth;\n\n\n\tctx.strokeStyle = stroke;\n\tctx.lineWidth = strokeWidth;\n\n\tif (fill !== \"none\") {\n\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, opacity);\n\t}\n\n\tCircle.drawOnCanvasWithNoStateChange(props, point, ctx);\n};\n\nCircle.drawOnCanvasWithNoStateChange = function (props, point, ctx) {\n\tvar r = props.r;\n\n\tvar radius = (0, _utils.functor)(r)(point.datum);\n\n\tctx.moveTo(point.x, point.y);\n\tctx.beginPath();\n\tctx.arc(point.x, point.y, radius, 0, 2 * Math.PI, false);\n\tctx.stroke();\n\tctx.fill();\n};\n\nexports.default = Circle;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Triangle(props) {\n\tvar className = props.className,\n\t strokeWidth = props.strokeWidth,\n\t opacity = props.opacity,\n\t point = props.point,\n\t width = props.width;\n\n\n\tvar rotation = getRotationInDegrees(props, point);\n\tif (rotation == null) return null;\n\n\tvar fillColor = getFillColor(props);\n\tvar strokeColor = getStrokeColor(props);\n\n\tvar w = (0, _utils.functor)(width)(point.datum);\n\tvar x = point.x,\n\t y = point.y;\n\n\tvar _getTrianglePoints = getTrianglePoints(w),\n\t innerOpposite = _getTrianglePoints.innerOpposite,\n\t innerHypotenuse = _getTrianglePoints.innerHypotenuse;\n\n\tvar points = \"\\n\\t\\t\" + x + \" \" + (y - innerHypotenuse) + \",\\n\\t\\t\" + (x + w / 2) + \" \" + (y + innerOpposite) + \",\\n\\t\\t\" + (x - w / 2) + \" \" + (y + innerOpposite) + \"\\n\\t\";\n\n\treturn _react2.default.createElement(\"polygon\", {\n\t\tclassName: className,\n\t\tpoints: points,\n\t\tstroke: strokeColor,\n\t\tstrokeWidth: strokeWidth,\n\t\tfillOpacity: opacity,\n\t\tfill: fillColor,\n\t\ttransform: rotation !== 0 ? \"rotate(\" + rotation + \", \" + x + \", \" + y + \")\" : null\n\t});\n}\nTriangle.propTypes = {\n\tdirection: _propTypes2.default.oneOfType([_propTypes2.default.oneOf([\"top\", \"bottom\", \"left\", \"right\", \"hide\"]), _propTypes2.default.func]).isRequired,\n\tstroke: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]).isRequired,\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]).isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tpoint: _propTypes2.default.shape({\n\t\tx: _propTypes2.default.number.isRequired,\n\t\ty: _propTypes2.default.number.isRequired,\n\t\tdatum: _propTypes2.default.object.isRequired\n\t}).isRequired,\n\tclassName: _propTypes2.default.string,\n\tstrokeWidth: _propTypes2.default.number,\n\twidth: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]).isRequired\n};\nTriangle.defaultProps = {\n\tdirection: \"top\",\n\tstroke: \"#4682B4\",\n\tstrokeWidth: 1,\n\topacity: 0.5,\n\tfill: \"#4682B4\",\n\tclassName: \"react-stockcharts-marker-triangle\"\n};\nTriangle.drawOnCanvas = function (props, point, ctx) {\n\tvar stroke = props.stroke,\n\t fill = props.fill,\n\t opacity = props.opacity,\n\t strokeWidth = props.strokeWidth;\n\n\tctx.strokeStyle = stroke;\n\tctx.lineWidth = strokeWidth;\n\tif (fill !== \"none\") {\n\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, opacity);\n\t}\n\tTriangle.drawOnCanvasWithNoStateChange(props, point, ctx);\n};\nTriangle.drawOnCanvasWithNoStateChange = function (props, point, ctx) {\n\tvar width = props.width;\n\n\tvar w = (0, _utils.functor)(width)(point.datum);\n\tvar x = point.x,\n\t y = point.y;\n\n\tvar _getTrianglePoints2 = getTrianglePoints(w),\n\t innerOpposite = _getTrianglePoints2.innerOpposite,\n\t innerHypotenuse = _getTrianglePoints2.innerHypotenuse;\n\n\tvar rotationDeg = getRotationInDegrees(props, point);\n\n\tctx.beginPath();\n\tctx.moveTo(x, y - innerHypotenuse);\n\tctx.lineTo(x + w / 2, y + innerOpposite);\n\tctx.lineTo(x - w / 2, y + innerOpposite);\n\tctx.stroke();\n\n\t// TODO: rotation does not work\n\t// example: https://gist.github.com/geoffb/6392450\n\tif (rotationDeg !== null && rotationDeg !== 0) {\n\t\tctx.save();\n\t\tctx.translate(x, y);\n\t\tctx.rotate(rotationDeg * Math.PI / 180); // 45 degrees\n\t\tctx.fill();\n\t\tctx.restore();\n\t}\n\tctx.fill();\n};\nexports.default = Triangle;\n\n\nfunction getTrianglePoints(width) {\n\tvar innerHypotenuse = width / 2 * (1 / Math.cos(30 * Math.PI / 180));\n\tvar innerOpposite = width / 2 * (1 / Math.tan(60 * Math.PI / 180));\n\treturn {\n\t\tinnerOpposite: innerOpposite,\n\t\tinnerHypotenuse: innerHypotenuse\n\t};\n}\n\nfunction getFillColor(props) {\n\tvar fill = props.fill,\n\t point = props.point;\n\n\treturn fill instanceof Function ? fill(point.datum) : fill;\n}\n\nfunction getStrokeColor(props) {\n\tvar stroke = props.stroke,\n\t point = props.point;\n\n\treturn stroke instanceof Function ? stroke(point.datum) : stroke;\n}\n\nfunction getRotationInDegrees(props, point) {\n\tvar direction = props.direction;\n\n\tvar directionVal = direction instanceof Function ? direction(point.datum) : direction;\n\tif (directionVal === \"hide\") return null;\n\n\tvar rotate = 0;\n\tswitch (directionVal) {\n\t\tcase \"bottom\":\n\t\t\trotate = 180;\n\t\t\tbreak;\n\t\tcase \"left\":\n\t\t\trotate = -90;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\trotate = 90;\n\t\t\tbreak;\n\t}\n\treturn rotate;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Square(props) {\n\tvar className = props.className,\n\t stroke = props.stroke,\n\t strokeWidth = props.strokeWidth,\n\t opacity = props.opacity,\n\t fill = props.fill,\n\t point = props.point,\n\t width = props.width;\n\n\tvar w = (0, _utils.functor)(width)(point.datum);\n\tvar x = point.x - w / 2;\n\tvar y = point.y - w / 2;\n\treturn _react2.default.createElement(\"rect\", {\n\t\tclassName: className,\n\t\tx: x,\n\t\ty: y,\n\t\tstroke: stroke,\n\t\tstrokeWidth: strokeWidth,\n\t\tfillOpacity: opacity,\n\t\tfill: fill,\n\t\twidth: w,\n\t\theight: w\n\t});\n}\nSquare.propTypes = {\n\tstroke: _propTypes2.default.string,\n\tfill: _propTypes2.default.string.isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tpoint: _propTypes2.default.shape({\n\t\tx: _propTypes2.default.number.isRequired,\n\t\ty: _propTypes2.default.number.isRequired,\n\t\tdatum: _propTypes2.default.object.isRequired\n\t}).isRequired,\n\tclassName: _propTypes2.default.string,\n\tstrokeWidth: _propTypes2.default.number,\n\twidth: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]).isRequired\n};\nSquare.defaultProps = {\n\tstroke: \"#4682B4\",\n\tstrokeWidth: 1,\n\topacity: 0.5,\n\tfill: \"#4682B4\",\n\tclassName: \"react-stockcharts-marker-rect\"\n};\nSquare.drawOnCanvas = function (props, point, ctx) {\n\tvar stroke = props.stroke,\n\t fill = props.fill,\n\t opacity = props.opacity,\n\t strokeWidth = props.strokeWidth;\n\n\tctx.strokeStyle = stroke;\n\tctx.lineWidth = strokeWidth;\n\tif (fill !== \"none\") {\n\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, opacity);\n\t}\n\tSquare.drawOnCanvasWithNoStateChange(props, point, ctx);\n};\nSquare.drawOnCanvasWithNoStateChange = function (props, point, ctx) {\n\tvar width = props.width;\n\n\tvar w = (0, _utils.functor)(width)(point.datum);\n\tvar x = point.x - w / 2;\n\tvar y = point.y - w / 2;\n\tctx.beginPath();\n\tctx.rect(x, y, w, w);\n\tctx.stroke();\n\tctx.fill();\n};\nexports.default = Square;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _d3Collection = require(\"d3-collection\");\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CandlestickSeries = function (_Component) {\n\t_inherits(CandlestickSeries, _Component);\n\n\tfunction CandlestickSeries(props) {\n\t\t_classCallCheck(this, CandlestickSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (CandlestickSeries.__proto__ || Object.getPrototypeOf(CandlestickSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(CandlestickSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\t_drawOnCanvas(ctx, this.props, moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t wickClassName = _props.wickClassName,\n\t\t\t candleClassName = _props.candleClassName;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t xAccessor = moreProps.xAccessor;\n\n\n\t\t\tvar candleData = getCandleData(this.props, xAccessor, xScale, yScale, plotData);\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\t{ className: wickClassName, key: \"wicks\" },\n\t\t\t\t\tgetWicksSVG(candleData)\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\t{ className: candleClassName, key: \"candles\" },\n\t\t\t\t\tgetCandlesSVG(this.props, candleData)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar clip = this.props.clip;\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: clip,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn CandlestickSeries;\n}(_react.Component);\n\nCandlestickSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\twickClassName: _propTypes2.default.string,\n\tcandleClassName: _propTypes2.default.string,\n\twidthRatio: _propTypes2.default.number,\n\twidth: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\tclassNames: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n\tstroke: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n\twickStroke: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n\tyAccessor: _propTypes2.default.func,\n\tclip: _propTypes2.default.bool\n};\n\nCandlestickSeries.defaultProps = {\n\tclassName: \"react-stockcharts-candlestick\",\n\twickClassName: \"react-stockcharts-candlestick-wick\",\n\tcandleClassName: \"react-stockcharts-candlestick-candle\",\n\tyAccessor: function yAccessor(d) {\n\t\treturn { open: d.open, high: d.high, low: d.low, close: d.close, sma50: d.sma50, sma200: d.sma200, sma20: d.sma20 };\n\t},\n\tclassNames: function classNames(d) {\n\t\treturn d.close > d.open ? \"up\" : \"down\";\n\t},\n\twidth: _utils.plotDataLengthBarWidth,\n\twickStroke: \"#000000\",\n\t// wickStroke: d => d.close > d.open ? \"#6BA583\" : \"#FF0000\",\n\tfill: function fill(d) {\n\t\treturn d.close > d.open ? \"#6BA583\" : \"#FF0000\";\n\t},\n\t// stroke: d => d.close > d.open ? \"#6BA583\" : \"#FF0000\",\n\tstroke: \"#000000\",\n\tcandleStrokeWidth: 0.5,\n\t// stroke: \"none\",\n\twidthRatio: 0.8,\n\topacity: 0.5,\n\tclip: true\n};\n\nfunction getWicksSVG(candleData) {\n\n\tvar wicks = candleData.map(function (each, idx) {\n\t\tvar d = each.wick;\n\t\treturn _react2.default.createElement(\"path\", { key: idx,\n\t\t\tclassName: each.className,\n\t\t\tstroke: d.stroke,\n\t\t\td: \"M\" + d.x + \",\" + d.y1 + \" L\" + d.x + \",\" + d.y2 + \" M\" + d.x + \",\" + d.y3 + \" L\" + d.x + \",\" + d.y4 });\n\t});\n\n\treturn wicks;\n}\n\nfunction getCandlesSVG(props, candleData) {\n\n\t/* eslint-disable react/prop-types */\n\tvar opacity = props.opacity,\n\t candleStrokeWidth = props.candleStrokeWidth;\n\t/* eslint-enable react/prop-types */\n\tvar candles = candleData.map(function (d, idx) {\n\t\tif (d.width <= 1) return _react2.default.createElement(\"line\", { className: d.className, key: idx,\n\t\t\tx1: d.x, y1: d.y, x2: d.x, y2: d.y + d.height,\n\t\t\tstroke: d.stroke });else if (d.height === 0) return _react2.default.createElement(\"line\", { key: idx,\n\t\t\tx1: d.x, y1: d.y, x2: d.x + d.width, y2: d.y + d.height,\n\t\t\tstroke: d.stroke });\n\t\treturn _react2.default.createElement(\"rect\", { key: idx, className: d.className,\n\t\t\tfillOpacity: opacity,\n\t\t\tx: d.x, y: d.y, width: d.width, height: d.height,\n\t\t\tfill: d.stroke, stroke: d.stroke, strokeWidth: candleStrokeWidth });\n\t});\n\treturn candles;\n}\n\nfunction _drawOnCanvas(ctx, props, moreProps) {\n\tvar opacity = props.opacity,\n\t candleStrokeWidth = props.candleStrokeWidth;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t plotData = moreProps.plotData,\n\t xAccessor = moreProps.xAccessor;\n\n\t// const wickData = getWickData(props, xAccessor, xScale, yScale, plotData);\n\n\tvar candleData = getCandleData(props, xAccessor, xScale, yScale, plotData);\n\n\tvar wickNest = (0, _d3Collection.nest)().key(function (d) {\n\t\treturn d.wick.stroke;\n\t}).entries(candleData);\n\n\twickNest.forEach(function (outer) {\n\t\tvar key = outer.key,\n\t\t values = outer.values;\n\n\t\tctx.strokeStyle = key;\n\t\tctx.fillStyle = key;\n\t\tvalues.forEach(function (each) {\n\t\t\t/*\n ctx.moveTo(d.x, d.y1);\n ctx.lineTo(d.x, d.y2);\n \tctx.beginPath();\n ctx.moveTo(d.x, d.y3);\n ctx.lineTo(d.x, d.y4);\n ctx.stroke(); */\n\t\t\tvar d = each.wick;\n\n\t\t \tctx.fillRect(d.x - 0.5, d.y1, 1, d.y2 - d.y1);\n\t\t\tctx.fillRect(d.x - 0.5, d.y3, 1, d.y4 - d.y3);\n\t\t});\n\t});\n\n\t// const candleData = getCandleData(props, xAccessor, xScale, yScale, plotData);\n\n\tvar candleNest = (0, _d3Collection.nest)().key(function (d) {\n\t\treturn d.stroke;\n\t}).key(function (d) {\n\t\treturn d.fill;\n\t}).entries(candleData);\n\n\tcandleNest.forEach(function (outer) {\n\t\tvar strokeKey = outer.key,\n\t\t strokeValues = outer.values;\n\n\t\tif (strokeKey !== \"none\") {\n\t\t\tctx.strokeStyle = strokeKey;\n\t\t\tctx.lineWidth = candleStrokeWidth;\n\t\t}\n\t\tstrokeValues.forEach(function (inner) {\n\t\t\tvar key = inner.key,\n\t\t\t values = inner.values;\n\n\t\t\tvar fillStyle = (0, _utils.head)(values).width <= 1 ? key : (0, _utils.hexToRGBA)(key, opacity);\n\t\t\tctx.fillStyle = fillStyle;\n\t\t\tvalues.forEach(function (d) {\n\t\t\t\tif (d.width <= 1) {\n\t\t\t\t\t// \n\t\t\t\t\t/*\n ctx.beginPath();\n ctx.moveTo(d.x, d.y);\n ctx.lineTo(d.x, d.y + d.height);\n ctx.stroke();\n */\n\t\t\t\t\tctx.fillRect(d.x - 0.5, d.y, 1, d.height);\n\t\t\t\t} else if (d.height === 0) {\n\t\t\t\t\t// \n\t\t\t\t\t/*\n ctx.beginPath();\n ctx.moveTo(d.x, d.y);\n ctx.lineTo(d.x + d.width, d.y + d.height);\n ctx.stroke();\n */\n\t\t\t\t\tctx.fillRect(d.x, d.y - 0.5, d.width, 1);\n\t\t\t\t} else {\n\t\t\t\t\t/*\n ctx.beginPath();\n ctx.rect(d.x, d.y, d.width, d.height);\n ctx.closePath();\n ctx.fill();\n if (strokeKey !== \"none\") ctx.stroke();\n */\n\t\t\t\t\tctx.fillRect(d.x, d.y, d.width, d.height);\n\t\t\t\t\tif (strokeKey !== \"none\") ctx.strokeRect(d.x, d.y, d.width, d.height);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t});\n}\n/*\nfunction getWickData(props, xAccessor, xScale, yScale, plotData) {\n\n\tconst { classNames: classNameProp, wickStroke: wickStrokeProp, yAccessor } = props;\n\tconst wickStroke = functor(wickStrokeProp);\n\tconst className = functor(classNameProp);\n\tconst wickData = plotData\n\t\t\t.filter(d => isDefined(yAccessor(d).close))\n\t\t\t.map(d => {\n\t\t\t\t// console.log(yAccessor);\n\t\t\t\tconst ohlc = yAccessor(d);\n\n\t\t\t\tconst x = Math.round(xScale(xAccessor(d))),\n\t\t\t\t\ty1 = yScale(ohlc.high),\n\t\t\t\t\ty2 = yScale(Math.max(ohlc.open, ohlc.close)),\n\t\t\t\t\ty3 = yScale(Math.min(ohlc.open, ohlc.close)),\n\t\t\t\t\ty4 = yScale(ohlc.low);\n\n\t\t\t\treturn {\n\t\t\t\t\tx,\n\t\t\t\t\ty1,\n\t\t\t\t\ty2,\n\t\t\t\t\ty3,\n\t\t\t\t\ty4,\n\t\t\t\t\tclassName: className(ohlc),\n\t\t\t\t\tdirection: (ohlc.close - ohlc.open),\n\t\t\t\t\tstroke: wickStroke(ohlc),\n\t\t\t\t};\n\t\t\t});\n\treturn wickData;\n}\n*/\n\nfunction getCandleData(props, xAccessor, xScale, yScale, plotData) {\n\tvar wickStrokeProp = props.wickStroke;\n\n\tvar wickStroke = (0, _utils.functor)(wickStrokeProp);\n\n\tvar classNames = props.classNames,\n\t fillProp = props.fill,\n\t strokeProp = props.stroke,\n\t yAccessor = props.yAccessor;\n\n\tvar className = (0, _utils.functor)(classNames);\n\n\tvar fill = (0, _utils.functor)(fillProp);\n\tvar stroke = (0, _utils.functor)(strokeProp);\n\n\tvar widthFunctor = (0, _utils.functor)(props.width);\n\tvar width = widthFunctor(props, {\n\t\txScale: xScale,\n\t\txAccessor: xAccessor,\n\t\tplotData: plotData\n\t});\n\n\t/*\n const candleWidth = Math.round(width);\n const offset = Math.round(candleWidth === 1 ? 0 : 0.5 * width);\n */\n\tvar trueOffset = 0.5 * width;\n\tvar offset = trueOffset > 0.7 ? Math.round(trueOffset) : Math.floor(trueOffset);\n\n\t// eslint-disable-next-line prefer-const\n\tvar candles = [];\n\n\tfor (var i = 0; i < plotData.length; i++) {\n\t\tvar d = plotData[i];\n\t\tif ((0, _utils.isDefined)(yAccessor(d).close)) {\n\t\t\tvar x = Math.round(xScale(xAccessor(d)));\n\t\t\t// const x = Math.round(xScale(xAccessor(d)) - offset);\n\n\t\t\tvar ohlc = yAccessor(d);\n\t\t\tvar y = Math.round(yScale(Math.max(ohlc.open, ohlc.close)));\n\t\t\tvar height = Math.round(Math.abs(yScale(ohlc.open) - yScale(ohlc.close)));\n\t\t\tcandles.push({\n\t\t\t\t// type: \"line\"\n\t\t\t\tx: x - offset,\n\t\t\t\ty: y,\n\t\t\t\twick: {\n\t\t\t\t\tstroke: wickStroke(ohlc),\n\t\t\t\t\tx: x,\n\t\t\t\t\ty1: Math.round(yScale(ohlc.high)),\n\t\t\t\t\ty2: y,\n\t\t\t\t\ty3: y + height, // Math.round(yScale(Math.min(ohlc.open, ohlc.close))),\n\t\t\t\t\ty4: Math.round(yScale(ohlc.low))\n\t\t\t\t},\n\t\t\t\theight: height,\n\t\t\t\twidth: offset * 2,\n\t\t\t\tclassName: className(ohlc),\n\t\t\t\tfill: fill(ohlc),\n\t\t\t\tstroke: stroke(ohlc),\n\t\t\t\tdirection: ohlc.close - ohlc.open\n\t\t\t});\n\t\t}\n\t}\n\n\treturn candles;\n}\n\nexports.default = CandlestickSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _d3Collection = require(\"d3-collection\");\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar OHLCSeries = function (_Component) {\n\t_inherits(OHLCSeries, _Component);\n\n\tfunction OHLCSeries(props) {\n\t\t_classCallCheck(this, OHLCSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (OHLCSeries.__proto__ || Object.getPrototypeOf(OHLCSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(OHLCSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData;\n\n\n\t\t\tvar barData = getOHLCBars(this.props, xAccessor, yAccessor, xScale, yScale, plotData);\n\t\t\t_drawOnCanvas(ctx, barData);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar clip = this.props.clip;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tclip: clip,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n \n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t yAccessor = _props.yAccessor;\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData;\n\n\n\t\t\tvar barData = getOHLCBars(this.props, xAccessor, yAccessor, xScale, yScale, plotData);\n\n\t\t\tvar strokeWidth = barData.strokeWidth,\n\t\t\t bars = barData.bars;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\tbars.map(function (d, idx) {\n\t\t\t\t\treturn _react2.default.createElement(\"path\", { key: idx,\n\t\t\t\t\t\tclassName: d.className, stroke: d.stroke, strokeWidth: strokeWidth,\n\t\t\t\t\t\td: \"M\" + d.openX1 + \" \" + d.openY + \" L\" + d.openX2 + \" \" + d.openY + \" M\" + d.x + \" \" + d.y1 + \" L\" + d.x + \" \" + d.y2 + \" M\" + d.closeX1 + \" \" + d.closeY + \" L\" + d.closeX2 + \" \" + d.closeY });\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn OHLCSeries;\n}(_react.Component);\n\nOHLCSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tclassNames: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\tstroke: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tclip: _propTypes2.default.bool.isRequired\n};\n\nOHLCSeries.defaultProps = {\n\tclassName: \"react-stockcharts-ohlc\",\n\tyAccessor: function yAccessor(d) {\n\t\treturn { open: d.open, high: d.high, low: d.low, close: d.close };\n\t},\n\tclassNames: function classNames(d) {\n\t\treturn (0, _utils.isDefined)(d.absoluteChange) ? d.absoluteChange > 0 ? \"up\" : \"down\" : \"firstbar\";\n\t},\n\tstroke: function stroke(d) {\n\t\treturn (0, _utils.isDefined)(d.absoluteChange) ? d.absoluteChange > 0 ? \"#6BA583\" : \"#FF0000\" : \"#000000\";\n\t},\n\tclip: true\n};\n\nfunction _drawOnCanvas(ctx, barData) {\n\tvar strokeWidth = barData.strokeWidth,\n\t bars = barData.bars;\n\n\tvar wickNest = (0, _d3Collection.nest)().key(function (d) {\n\t\treturn d.stroke;\n\t}).entries(bars);\n\n //ctx.lineWidth = strokeWidth;\n ctx.lineWidth = 2;\n \n\n\twickNest.forEach(function (outer) {\n\t\tvar key = outer.key,\n\t\t values = outer.values;\n\n\t\tctx.strokeStyle = key;\n\t\tvalues.forEach(function (d) {\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(d.x, d.y1);\n\t\t\tctx.lineTo(d.x, d.y2);\n\n\t\t\tctx.moveTo(d.openX1, d.openY);\n\t\t\tctx.lineTo(d.openX2, d.openY);\n\n\t\t\tctx.moveTo(d.closeX1, d.closeY);\n\t\t\tctx.lineTo(d.closeX2, d.closeY);\n\n\t\t\tctx.stroke();\n\t\t});\n\t});\n}\n\nfunction getOHLCBars(props, xAccessor, yAccessor, xScale, yScale, plotData) {\n\tvar classNamesProp = props.classNames,\n\t strokeProp = props.stroke;\n\n\n\tvar strokeFunc = (0, _utils.functor)(strokeProp);\n\tvar classNameFunc = (0, _utils.functor)(classNamesProp);\n\n\tvar width = xScale(xAccessor(plotData[plotData.length - 1])) - xScale(xAccessor(plotData[0]));\n\n\tvar barWidth = Math.max(1, Math.round(width / (plotData.length - 1) / 2) - 1.5);\n\tvar strokeWidth = Math.min(barWidth, 6);\n\n\tvar bars = plotData.filter(function (d) {\n\t\treturn (0, _utils.isDefined)(yAccessor(d).close);\n\t}).map(function (d) {\n\t\tvar ohlc = yAccessor(d),\n\t\t x = Math.round(xScale(xAccessor(d))),\n\t\t y1 = yScale(ohlc.high),\n\t\t y2 = yScale(ohlc.low),\n\t\t openX1 = x - barWidth,\n\t\t openX2 = x + strokeWidth / 2,\n\t\t openY = yScale(ohlc.open),\n\t\t closeX1 = x - strokeWidth / 2,\n\t\t closeX2 = x + barWidth,\n\t\t closeY = yScale(ohlc.close),\n\t\t className = classNameFunc(d),\n\t\t stroke = strokeFunc(d);\n\n\t\treturn { x: x, y1: y1, y2: y2, openX1: openX1, openX2: openX2, openY: openY, closeX1: closeX1, closeX2: closeX2, closeY: closeY, stroke: stroke, className: className };\n\t});\n\treturn { barWidth: barWidth, strokeWidth: strokeWidth, bars: bars };\n}\n\nexports.default = OHLCSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _StackedBarSeries = require(\"./StackedBarSeries\");\n\nvar _StackedBarSeries2 = _interopRequireDefault(_StackedBarSeries);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GroupedBarSeries = function (_Component) {\n\t_inherits(GroupedBarSeries, _Component);\n\n\tfunction GroupedBarSeries(props) {\n\t\t_classCallCheck(this, GroupedBarSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GroupedBarSeries.__proto__ || Object.getPrototypeOf(GroupedBarSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(GroupedBarSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\n\t\t\t(0, _StackedBarSeries.drawOnCanvasHelper)(ctx, this.props, moreProps, xAccessor, _StackedBarSeries.identityStack, postProcessor);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: \"react-stockcharts-grouped-bar-series\" },\n\t\t\t\t(0, _StackedBarSeries.svgHelper)(this.props, moreProps, xAccessor, _StackedBarSeries.identityStack, postProcessor)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn GroupedBarSeries;\n}(_react.Component);\n\nGroupedBarSeries.propTypes = {\n\tbaseAt: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]).isRequired,\n\tdirection: _propTypes2.default.oneOf([\"up\", \"down\"]).isRequired,\n\tstroke: _propTypes2.default.bool.isRequired,\n\twidthRatio: _propTypes2.default.number.isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\tclassName: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\tyAccessor: _propTypes2.default.arrayOf(_propTypes2.default.func)\n};\n\nGroupedBarSeries.defaultProps = _extends({}, _StackedBarSeries2.default.defaultProps, {\n\twidthRatio: 0.8,\n\tspaceBetweenBar: 5\n});\n\nfunction postProcessor(array) {\n\treturn array.map(function (each) {\n\t\treturn _extends({}, each, {\n\t\t\tx: each.x + each.offset - each.groupOffset,\n\t\t\twidth: each.groupWidth\n\t\t});\n\t});\n}\n\nexports.default = GroupedBarSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Shape = require(\"d3-shape\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar KagiSeries = function (_Component) {\n\t_inherits(KagiSeries, _Component);\n\n\tfunction KagiSeries(props) {\n\t\t_classCallCheck(this, KagiSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (KagiSeries.__proto__ || Object.getPrototypeOf(KagiSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(KagiSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\n\n\t\t\t_drawOnCanvas(ctx, this.props, moreProps, xAccessor);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData;\n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t stroke = _props.stroke,\n\t\t\t fill = _props.fill,\n\t\t\t strokeWidth = _props.strokeWidth;\n\n\n\t\t\tvar paths = helper(plotData, xAccessor).map(function (each, i) {\n\t\t\t\tvar dataSeries = (0, _d3Shape.line)().x(function (item) {\n\t\t\t\t\treturn xScale(item[0]);\n\t\t\t\t}).y(function (item) {\n\t\t\t\t\treturn yScale(item[1]);\n\t\t\t\t}).curve(_d3Shape.curveStepBefore);\n\n\t\t\t\tdataSeries(each.plot);\n\n\t\t\t\treturn _react2.default.createElement(\"path\", { key: i, d: dataSeries(each.plot), className: each.type,\n\t\t\t\t\tstroke: stroke[each.type], fill: fill[each.type], strokeWidth: strokeWidth });\n\t\t\t});\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\tpaths\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn KagiSeries;\n}(_react.Component);\n\nKagiSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tstroke: _propTypes2.default.object,\n\tfill: _propTypes2.default.object,\n\tstrokeWidth: _propTypes2.default.number.isRequired\n};\n\nKagiSeries.defaultProps = {\n\tclassName: \"react-stockcharts-kagi\",\n\tstrokeWidth: 2,\n\tstroke: {\n\t\tyang: \"#6BA583\",\n\t\tyin: \"#E60000\"\n\t},\n\tfill: {\n\t\tyang: \"none\",\n\t\tyin: \"none\"\n\t},\n\tcurrentValueStroke: \"#000000\"\n};\n\nfunction _drawOnCanvas(ctx, props, moreProps, xAccessor) {\n\tvar stroke = props.stroke,\n\t strokeWidth = props.strokeWidth,\n\t currentValueStroke = props.currentValueStroke;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t plotData = moreProps.plotData;\n\n\n\tvar paths = helper(plotData, xAccessor);\n\n\tvar begin = true;\n\n\tpaths.forEach(function (each) {\n\t\tctx.strokeStyle = stroke[each.type];\n\t\tctx.lineWidth = strokeWidth;\n\n\t\tctx.beginPath();\n\t\tvar prevX = void 0;\n\t\teach.plot.forEach(function (d) {\n\t\t\tvar _ref = [xScale(d[0]), yScale(d[1])],\n\t\t\t x = _ref[0],\n\t\t\t y = _ref[1];\n\n\t\t\tif (begin) {\n\t\t\t\tctx.moveTo(x, y);\n\t\t\t\tbegin = false;\n\t\t\t} else {\n\t\t\t\tif ((0, _utils.isDefined)(prevX)) {\n\t\t\t\t\tctx.lineTo(prevX, y);\n\t\t\t\t}\n\t\t\t\tctx.lineTo(x, y);\n\t\t\t}\n\t\t\tprevX = x;\n\t\t\t// console.log(d);\n\t\t});\n\t\tctx.stroke();\n\t});\n\tvar lastPlot = paths[paths.length - 1].plot;\n\tvar last = lastPlot[lastPlot.length - 1];\n\tctx.beginPath();\n\t// ctx.strokeStyle = \"black\";\n\tctx.lineWidth = 1;\n\n\tvar _ref2 = [xScale(last[0]), yScale(last[2]), yScale(last[3])],\n\t x = _ref2[0],\n\t y1 = _ref2[1],\n\t y2 = _ref2[2];\n\t// console.log(last, x, y);\n\n\tctx.moveTo(x, y1);\n\tctx.lineTo(x + 10, y1);\n\tctx.stroke();\n\n\tctx.beginPath();\n\tctx.strokeStyle = currentValueStroke;\n\tctx.moveTo(x - 10, y2);\n\tctx.lineTo(x, y2);\n\tctx.stroke();\n}\n\nfunction helper(plotData, xAccessor) {\n\tvar kagiLine = [];\n\tvar kagi = {};\n\tvar d = plotData[0];\n\tvar idx = xAccessor(d);\n\n\tfor (var i = 0; i < plotData.length; i++) {\n\t\td = plotData[i];\n\n\t\tif ((0, _utils.isNotDefined)(d.close)) continue;\n\t\tif ((0, _utils.isNotDefined)(kagi.type)) kagi.type = d.startAs;\n\t\tif ((0, _utils.isNotDefined)(kagi.plot)) kagi.plot = [];\n\n\t\tidx = xAccessor(d);\n\t\tkagi.plot.push([idx, d.open]);\n\n\t\tif ((0, _utils.isDefined)(d.changeTo)) {\n\t\t\tkagi.plot.push([idx, d.changePoint]);\n\t\t\tkagi.added = true;\n\t\t\tkagiLine.push(kagi);\n\n\t\t\tkagi = {\n\t\t\t\ttype: d.changeTo,\n\t\t\t\tplot: [],\n\t\t\t\tadded: false\n\t\t\t};\n\t\t\tkagi.plot.push([idx, d.changePoint]);\n\t\t}\n\t}\n\n\tif (!kagi.added) {\n\t\tkagi.plot.push([idx, d.close, d.current, d.reverseAt]);\n\t\tkagiLine.push(kagi);\n\t}\n\n\t// console.log(d.reverseAt);\n\n\treturn kagiLine;\n}\n\nexports.default = KagiSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar PointAndFigureSeries = function (_Component) {\n\t_inherits(PointAndFigureSeries, _Component);\n\n\tfunction PointAndFigureSeries(props) {\n\t\t_classCallCheck(this, PointAndFigureSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (PointAndFigureSeries.__proto__ || Object.getPrototypeOf(PointAndFigureSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(PointAndFigureSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData;\n\n\t\t\tvar columns = getColumns(xScale, xAccessor, yScale, plotData);\n\n\t\t\t_drawOnCanvas(ctx, this.props, columns);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar clip = this.props.clip;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: clip,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData;\n\t\t\tvar _props = this.props,\n\t\t\t stroke = _props.stroke,\n\t\t\t fill = _props.fill,\n\t\t\t strokeWidth = _props.strokeWidth,\n\t\t\t className = _props.className;\n\n\n\t\t\tvar columns = getColumns(xScale, xAccessor, yScale, plotData);\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\tcolumns.map(function (col, idx) {\n\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t\"g\",\n\t\t\t\t\t\t{ key: idx, className: col.className, transform: \"translate(\" + col.offset[0] + \", \" + col.offset[1] + \")\" },\n\t\t\t\t\t\tcol.boxes.map(function (box, i) {\n\t\t\t\t\t\t\tif (col.direction > 0) {\n\t\t\t\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t\t\t\t\"g\",\n\t\t\t\t\t\t\t\t\t{ key: idx + \"-\" + i },\n\t\t\t\t\t\t\t\t\t_react2.default.createElement(\"line\", { className: \"up\", strokeWidth: strokeWidth, stroke: stroke.up, fill: fill.up,\n\t\t\t\t\t\t\t\t\t\tx1: 0, y1: box.open, x2: box.columnWidth, y2: box.close }),\n\t\t\t\t\t\t\t\t\t_react2.default.createElement(\"line\", { className: \"up\", strokeWidth: strokeWidth, stroke: stroke.up, fill: fill.up,\n\t\t\t\t\t\t\t\t\t\tx1: 0, y1: box.close, x2: box.columnWidth, y2: box.open })\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn _react2.default.createElement(\"ellipse\", { key: idx + \"-\" + i,\n\t\t\t\t\t\t\t\tclassName: \"down\", strokeWidth: strokeWidth, stroke: stroke.down, fill: fill.down,\n\t\t\t\t\t\t\t\tcx: box.columnWidth / 2, cy: (box.open + box.close) / 2,\n\t\t\t\t\t\t\t\trx: box.columnWidth / 2, ry: box.boxHeight / 2 });\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn PointAndFigureSeries;\n}(_react.Component);\n\nPointAndFigureSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tstroke: _propTypes2.default.object.isRequired,\n\tfill: _propTypes2.default.object.isRequired,\n\tclip: _propTypes2.default.bool.isRequired\n};\n\nPointAndFigureSeries.defaultProps = {\n\tclassName: \"react-stockcharts-point-and-figure\",\n\tstrokeWidth: 1,\n\tstroke: {\n\t\tup: \"#6BA583\",\n\t\tdown: \"#FF0000\"\n\t},\n\tfill: {\n\t\tup: \"none\",\n\t\tdown: \"none\"\n\t},\n\tclip: true\n};\n\nfunction _drawOnCanvas(ctx, props, columns) {\n\tvar stroke = props.stroke,\n\t fill = props.fill,\n\t strokeWidth = props.strokeWidth;\n\n\n\tctx.lineWidth = strokeWidth;\n\n\tcolumns.forEach(function (col) {\n\t\tvar _col$offset = _slicedToArray(col.offset, 2),\n\t\t offsetX = _col$offset[0],\n\t\t offsetY = _col$offset[1];\n\n\t\tcol.boxes.forEach(function (box) {\n\t\t\tif (col.direction > 0) {\n\t\t\t\tctx.fillStyle = fill.up;\n\t\t\t\tctx.strokeStyle = stroke.up;\n\n\t\t\t\tctx.beginPath();\n\n\t\t\t\tctx.moveTo(offsetX, offsetY + box.open);\n\t\t\t\tctx.lineTo(offsetX + box.columnWidth, offsetY + box.close);\n\t\t\t\tctx.moveTo(offsetX, offsetY + box.close);\n\t\t\t\tctx.lineTo(offsetX + box.columnWidth, offsetY + box.open);\n\n\t\t\t\tctx.stroke();\n\t\t\t} else {\n\t\t\t\tctx.fillStyle = fill.down;\n\t\t\t\tctx.strokeStyle = stroke.down;\n\n\t\t\t\tctx.beginPath();\n\n\t\t\t\tvar x = offsetX + box.columnWidth / 2,\n\t\t\t\t y = offsetY + box.open + box.boxHeight / 2;\n\t\t\t\tvar rx = box.columnWidth / 2,\n\t\t\t\t ry = box.boxHeight / 2;\n\n\n\t\t\t\tctx.ellipse(x, y, rx, ry, 0, 0, 2 * Math.PI);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t});\n\t});\n\n\tctx.stroke();\n}\n\nfunction getColumns(xScale, xAccessor, yScale, plotData) {\n\n\tvar width = xScale(xAccessor(plotData[plotData.length - 1])) - xScale(xAccessor(plotData[0]));\n\n\tvar columnWidth = width / (plotData.length - 1);\n\n\tvar anyBox = void 0,\n\t j = 0;\n\twhile ((0, _utils.isNotDefined)(anyBox)) {\n\t\tif ((0, _utils.isDefined)(plotData[j].close)) {\n\t\t\tanyBox = plotData[j].boxes[0];\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t\tj++;\n\t}\n\n\tvar boxHeight = Math.abs(yScale(anyBox.open) - yScale(anyBox.close));\n\n\tvar columns = plotData.filter(function (d) {\n\t\treturn (0, _utils.isDefined)(d.close);\n\t}).map(function (d) {\n\t\tvar boxes = d.boxes.map(function (box) {\n\t\t\treturn {\n\t\t\t\tcolumnWidth: columnWidth,\n\t\t\t\tboxHeight: boxHeight,\n\t\t\t\topen: yScale(box.open),\n\t\t\t\tclose: yScale(box.close)\n\t\t\t};\n\t\t});\n\n\t\tvar xOffset = xScale(xAccessor(d)) - columnWidth / 2;\n\t\treturn {\n\t\t\tboxes: boxes,\n\t\t\tdirection: d.direction,\n\t\t\toffset: [xOffset, 0]\n\t\t};\n\t});\n\treturn columns;\n}\n\nexports.default = PointAndFigureSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar RenkoSeries = function (_Component) {\n\t_inherits(RenkoSeries, _Component);\n\n\tfunction RenkoSeries(props) {\n\t\t_classCallCheck(this, RenkoSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (RenkoSeries.__proto__ || Object.getPrototypeOf(RenkoSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(RenkoSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData;\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\n\t\t\tvar candles = getRenko(this.props, plotData, xScale, xAccessor, yScale, yAccessor);\n\n\t\t\t_drawOnCanvas(ctx, candles);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar clip = this.props.clip;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: clip,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t plotData = moreProps.plotData;\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\n\t\t\tvar candles = getRenko(this.props, plotData, xScale, xAccessor, yScale, yAccessor).map(function (each, idx) {\n\t\t\t\treturn _react2.default.createElement(\"rect\", { key: idx, className: each.className,\n\t\t\t\t\tfill: each.fill,\n\t\t\t\t\tx: each.x,\n\t\t\t\t\ty: each.y,\n\t\t\t\t\twidth: each.width,\n\t\t\t\t\theight: each.height });\n\t\t\t});\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\t{ className: \"candle\" },\n\t\t\t\t\tcandles\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn RenkoSeries;\n}(_react.Component);\n\nRenkoSeries.propTypes = {\n\tclassNames: _propTypes2.default.shape({\n\t\tup: _propTypes2.default.string,\n\t\tdown: _propTypes2.default.string\n\t}),\n\tstroke: _propTypes2.default.shape({\n\t\tup: _propTypes2.default.string,\n\t\tdown: _propTypes2.default.string\n\t}),\n\tfill: _propTypes2.default.shape({\n\t\tup: _propTypes2.default.string,\n\t\tdown: _propTypes2.default.string,\n\t\tpartial: _propTypes2.default.string\n\t}),\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tclip: _propTypes2.default.bool.isRequired\n};\n\nRenkoSeries.defaultProps = {\n\tclassNames: {\n\t\tup: \"up\",\n\t\tdown: \"down\"\n\t},\n\tstroke: {\n\t\tup: \"none\",\n\t\tdown: \"none\"\n\t},\n\tfill: {\n\t\tup: \"#6BA583\",\n\t\tdown: \"#E60000\",\n\t\tpartial: \"#4682B4\"\n\t},\n\tyAccessor: function yAccessor(d) {\n\t\treturn { open: d.open, high: d.high, low: d.low, close: d.close };\n\t},\n\tclip: true\n};\n\nfunction _drawOnCanvas(ctx, renko) {\n\trenko.forEach(function (d) {\n\t\tctx.beginPath();\n\n\t\tctx.strokeStyle = d.stroke;\n\t\tctx.fillStyle = d.fill;\n\n\t\tctx.rect(d.x, d.y, d.width, d.height);\n\t\tctx.closePath();\n\t\tctx.fill();\n\t});\n}\n\nfunction getRenko(props, plotData, xScale, xAccessor, yScale, yAccessor) {\n\tvar classNames = props.classNames,\n\t fill = props.fill;\n\n\tvar width = xScale(xAccessor(plotData[plotData.length - 1])) - xScale(xAccessor(plotData[0]));\n\n\tvar candleWidth = width / (plotData.length - 1);\n\tvar candles = plotData.filter(function (d) {\n\t\treturn (0, _utils.isDefined)(yAccessor(d).close);\n\t}).map(function (d) {\n\t\tvar ohlc = yAccessor(d);\n\t\tvar x = xScale(xAccessor(d)) - 0.5 * candleWidth,\n\t\t y = yScale(Math.max(ohlc.open, ohlc.close)),\n\t\t height = Math.abs(yScale(ohlc.open) - yScale(ohlc.close)),\n\t\t className = ohlc.open <= ohlc.close ? classNames.up : classNames.down;\n\n\t\tvar svgfill = d.fullyFormed ? ohlc.open <= ohlc.close ? fill.up : fill.down : fill.partial;\n\n\t\treturn {\n\t\t\tclassName: className,\n\t\t\tfill: svgfill,\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\theight: height,\n\t\t\twidth: candleWidth\n\t\t};\n\t});\n\treturn candles;\n}\n\nexports.default = RenkoSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _BarSeries = require(\"./BarSeries\");\n\nvar _BarSeries2 = _interopRequireDefault(_BarSeries);\n\nvar _LineSeries = require(\"./LineSeries\");\n\nvar _LineSeries2 = _interopRequireDefault(_LineSeries);\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _StraightLine2 = _interopRequireDefault(_StraightLine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MACDSeries = function (_Component) {\n\t_inherits(MACDSeries, _Component);\n\n\tfunction MACDSeries(props) {\n\t\t_classCallCheck(this, MACDSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (MACDSeries.__proto__ || Object.getPrototypeOf(MACDSeries)).call(this, props));\n\n\t\t_this.yAccessorForMACD = _this.yAccessorForMACD.bind(_this);\n\t\t_this.yAccessorForSignal = _this.yAccessorForSignal.bind(_this);\n\t\t_this.yAccessorForDivergence = _this.yAccessorForDivergence.bind(_this);\n\t\t_this.yAccessorForDivergenceBase = _this.yAccessorForDivergenceBase.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(MACDSeries, [{\n\t\tkey: \"yAccessorForMACD\",\n\t\tvalue: function yAccessorForMACD(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).macd;\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForSignal\",\n\t\tvalue: function yAccessorForSignal(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).signal;\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForDivergence\",\n\t\tvalue: function yAccessorForDivergence(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).divergence;\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForDivergenceBase\",\n\t\tvalue: function yAccessorForDivergenceBase(xScale, yScale /* , d */) {\n\t\t\treturn yScale(0);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t opacity = _props.opacity,\n\t\t\t divergenceStroke = _props.divergenceStroke,\n\t\t\t widthRatio = _props.widthRatio,\n\t\t\t width = _props.width;\n\t\t\tvar _props2 = this.props,\n\t\t\t stroke = _props2.stroke,\n\t\t\t fill = _props2.fill;\n\t\t\tvar clip = this.props.clip;\n\t\t\tvar _props3 = this.props,\n\t\t\t zeroLineStroke = _props3.zeroLineStroke,\n\t\t\t zeroLineOpacity = _props3.zeroLineOpacity;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\t_react2.default.createElement(_BarSeries2.default, {\n\t\t\t\t\tbaseAt: this.yAccessorForDivergenceBase,\n\t\t\t\t\tclassName: \"macd-divergence\",\n\t\t\t\t\twidth: width,\n\t\t\t\t\twidthRatio: widthRatio,\n\t\t\t\t\tstroke: divergenceStroke,\n\t\t\t\t\tfill: fill.divergence,\n\t\t\t\t\topacity: opacity,\n\t\t\t\t\tclip: clip,\n\t\t\t\t\tyAccessor: this.yAccessorForDivergence }),\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, {\n\t\t\t\t\tyAccessor: this.yAccessorForMACD,\n\t\t\t\t\tstroke: stroke.macd,\n\t\t\t\t\tfill: \"none\" }),\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, {\n\t\t\t\t\tyAccessor: this.yAccessorForSignal,\n\t\t\t\t\tstroke: stroke.signal,\n\t\t\t\t\tfill: \"none\" }),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tstroke: zeroLineStroke,\n\t\t\t\t\topacity: zeroLineOpacity,\n\t\t\t\t\tyValue: 0 })\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn MACDSeries;\n}(_react.Component);\n\nMACDSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\topacity: _propTypes2.default.number,\n\tdivergenceStroke: _propTypes2.default.bool,\n\tzeroLineStroke: _propTypes2.default.string,\n\tzeroLineOpacity: _propTypes2.default.number,\n\tclip: _propTypes2.default.bool.isRequired,\n\tstroke: _propTypes2.default.shape({\n\t\tmacd: _propTypes2.default.string.isRequired,\n\t\tsignal: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\tfill: _propTypes2.default.shape({\n\t\tdivergence: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]).isRequired\n\t}).isRequired,\n\twidthRatio: _propTypes2.default.number,\n\twidth: _BarSeries2.default.propTypes.width\n};\n\nMACDSeries.defaultProps = {\n\tclassName: \"react-stockcharts-macd-series\",\n\tzeroLineStroke: \"#000000\",\n\tzeroLineOpacity: 0.3,\n\topacity: 0.6,\n\tdivergenceStroke: false,\n\tclip: true,\n\twidthRatio: 0.5,\n\twidth: _BarSeries2.default.defaultProps.width\n};\n\nexports.default = MACDSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _LineSeries = require(\"./LineSeries\");\n\nvar _LineSeries2 = _interopRequireDefault(_LineSeries);\n\nvar _AreaOnlySeries = require(\"./AreaOnlySeries\");\n\nvar _AreaOnlySeries2 = _interopRequireDefault(_AreaOnlySeries);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BollingerSeries = function (_Component) {\n\t_inherits(BollingerSeries, _Component);\n\n\tfunction BollingerSeries(props) {\n\t\t_classCallCheck(this, BollingerSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (BollingerSeries.__proto__ || Object.getPrototypeOf(BollingerSeries)).call(this, props));\n\n\t\t_this.yAccessorForTop = _this.yAccessorForTop.bind(_this);\n\t\t_this.yAccessorForMiddle = _this.yAccessorForMiddle.bind(_this);\n\t\t_this.yAccessorForBottom = _this.yAccessorForBottom.bind(_this);\n\t\t_this.yAccessorForScalledBottom = _this.yAccessorForScalledBottom.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(BollingerSeries, [{\n\t\tkey: \"yAccessorForTop\",\n\t\tvalue: function yAccessorForTop(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).top;\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForMiddle\",\n\t\tvalue: function yAccessorForMiddle(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).middle;\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForBottom\",\n\t\tvalue: function yAccessorForBottom(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).bottom;\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForScalledBottom\",\n\t\tvalue: function yAccessorForScalledBottom(scale, d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn scale(yAccessor(d) && yAccessor(d).bottom);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t areaClassName = _props.areaClassName,\n\t\t\t className = _props.className,\n\t\t\t opacity = _props.opacity;\n\t\t\tvar _props2 = this.props,\n\t\t\t stroke = _props2.stroke,\n\t\t\t fill = _props2.fill;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, { yAccessor: this.yAccessorForTop,\n\t\t\t\t\tstroke: stroke.top, fill: \"#00ff00\" }),\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, { yAccessor: this.yAccessorForMiddle,\n\t\t\t\t\tstroke: stroke.middle, fill: \"#0000ff\" }),\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, { yAccessor: this.yAccessorForBottom,\n\t\t\t\t\tstroke: stroke.bottom, fill: \"ff0000\" }),\n\t\t\t\t_react2.default.createElement(_AreaOnlySeries2.default, { className: areaClassName,\n\t\t\t\t\tyAccessor: this.yAccessorForTop,\n\t\t\t\t\tbase: this.yAccessorForScalledBottom,\n\t\t\t\t\tstroke: \"none\", fill: fill,\n\t\t\t\t\topacity: opacity })\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn BollingerSeries;\n}(_react.Component);\n\nBollingerSeries.propTypes = {\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tclassName: _propTypes2.default.string,\n\tareaClassName: _propTypes2.default.string,\n\topacity: _propTypes2.default.number,\n\ttype: _propTypes2.default.string,\n\tstroke: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.string.isRequired,\n\t\tmiddle: _propTypes2.default.string.isRequired,\n\t\tbottom: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\tfill: _propTypes2.default.string.isRequired\n};\n\nBollingerSeries.defaultProps = {\n\tclassName: \"react-stockcharts-bollinger-band-series\",\n\tareaClassName: \"react-stockcharts-bollinger-band-series-area\",\n\topacity: 0.2\n};\n\nexports.default = BollingerSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _LineSeries = require(\"./LineSeries\");\n\nvar _LineSeries2 = _interopRequireDefault(_LineSeries);\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _StraightLine2 = _interopRequireDefault(_StraightLine);\n\nvar _SVGComponent = require(\"./SVGComponent\");\n\nvar _SVGComponent2 = _interopRequireDefault(_SVGComponent);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n// import AreaSeries from \"./AreaSeries\";\n\n\nvar RSISeries = function (_Component) {\n\t_inherits(RSISeries, _Component);\n\n\tfunction RSISeries(props) {\n\t\t_classCallCheck(this, RSISeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (RSISeries.__proto__ || Object.getPrototypeOf(RSISeries)).call(this, props));\n\n\t\t_this.renderClip = _this.renderClip.bind(_this);\n\t\t_this.topAndBottomClip = _this.topAndBottomClip.bind(_this);\n\t\t_this.mainClip = _this.mainClip.bind(_this);\n\n\t\tvar id1 = String(Math.round(Math.random() * 10000 * 10000));\n\t\t_this.clipPathId1 = \"rsi-clip-\" + id1;\n\n\t\tvar id2 = String(Math.round(Math.random() * 10000 * 10000));\n\t\t_this.clipPathId2 = \"rsi-clip-\" + id2;\n\t\treturn _this;\n\t}\n\n\t_createClass(RSISeries, [{\n\t\tkey: \"topAndBottomClip\",\n\t\tvalue: function topAndBottomClip(ctx, moreProps) {\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\t\t\tvar _props = this.props,\n\t\t\t overSold = _props.overSold,\n\t\t\t overBought = _props.overBought;\n\t\t\tvar yScale = chartConfig.yScale,\n\t\t\t width = chartConfig.width;\n\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(0, yScale(overSold), width, yScale(overBought) - yScale(overSold));\n\t\t\tctx.clip();\n\t\t}\n\t}, {\n\t\tkey: \"mainClip\",\n\t\tvalue: function mainClip(ctx, moreProps) {\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\t\t\tvar _props2 = this.props,\n\t\t\t overSold = _props2.overSold,\n\t\t\t overBought = _props2.overBought;\n\t\t\tvar yScale = chartConfig.yScale,\n\t\t\t width = chartConfig.width,\n\t\t\t height = chartConfig.height;\n\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(0, 0, width, yScale(overSold));\n\t\t\tctx.rect(0, yScale(overBought), width, height - yScale(overBought));\n\t\t\tctx.clip();\n\t\t}\n\t}, {\n\t\tkey: \"renderClip\",\n\t\tvalue: function renderClip(moreProps) {\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\t\t\tvar _props3 = this.props,\n\t\t\t overSold = _props3.overSold,\n\t\t\t overBought = _props3.overBought;\n\t\t\tvar yScale = chartConfig.yScale,\n\t\t\t width = chartConfig.width,\n\t\t\t height = chartConfig.height;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"defs\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"clipPath\",\n\t\t\t\t\t{ id: this.clipPathId1 },\n\t\t\t\t\t_react2.default.createElement(\"rect\", {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: yScale(overSold),\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: yScale(overBought) - yScale(overSold)\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"clipPath\",\n\t\t\t\t\t{ id: this.clipPathId2 },\n\t\t\t\t\t_react2.default.createElement(\"rect\", {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: yScale(overSold)\n\t\t\t\t\t}),\n\t\t\t\t\t_react2.default.createElement(\"rect\", {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: yScale(overBought),\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: height - yScale(overBought)\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props4 = this.props,\n\t\t\t className = _props4.className,\n\t\t\t stroke = _props4.stroke,\n\t\t\t opacity = _props4.opacity,\n\t\t\t strokeDasharray = _props4.strokeDasharray,\n\t\t\t strokeWidth = _props4.strokeWidth;\n\t\t\tvar yAccessor = this.props.yAccessor;\n\t\t\tvar _props5 = this.props,\n\t\t\t overSold = _props5.overSold,\n\t\t\t middle = _props5.middle,\n\t\t\t overBought = _props5.overBought;\n\n\n\t\t\tvar style1 = { \"clipPath\": \"url(#\" + this.clipPathId1 + \")\" };\n\t\t\tvar style2 = { \"clipPath\": \"url(#\" + this.clipPathId2 + \")\" };\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_SVGComponent2.default,\n\t\t\t\t\tnull,\n\t\t\t\t\tthis.renderClip\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tstroke: stroke.top,\n\t\t\t\t\topacity: opacity.top,\n\t\t\t\t\tyValue: overSold,\n\t\t\t\t\tstrokeDasharray: strokeDasharray.top,\n\t\t\t\t\tstrokeWidth: strokeWidth.top\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tstroke: stroke.middle,\n\t\t\t\t\topacity: opacity.middle,\n\t\t\t\t\tyValue: middle,\n\t\t\t\t\tstrokeDasharray: strokeDasharray.middle,\n\t\t\t\t\tstrokeWidth: strokeWidth.middle\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tstroke: stroke.bottom,\n\t\t\t\t\topacity: opacity.bottom,\n\t\t\t\t\tyValue: overBought,\n\t\t\t\t\tstrokeDasharray: strokeDasharray.bottom,\n\t\t\t\t\tstrokeWidth: strokeWidth.bottom\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, {\n\t\t\t\t\tstyle: style1,\n\t\t\t\t\tcanvasClip: this.topAndBottomClip,\n\n\t\t\t\t\tclassName: className,\n\t\t\t\t\tyAccessor: yAccessor,\n\t\t\t\t\tstroke: stroke.insideThreshold || stroke.line,\n\t\t\t\t\tstrokeWidth: strokeWidth.insideThreshold,\n\t\t\t\t\tstrokeDasharray: strokeDasharray.line\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, {\n\t\t\t\t\tstyle: style2,\n\t\t\t\t\tcanvasClip: this.mainClip\n\t\t\t\t\t/* baseAt={yScale => yScale(middle)} */\n\t\t\t\t\t, className: className,\n\t\t\t\t\tyAccessor: yAccessor,\n\t\t\t\t\tstroke: stroke.outsideThreshold || stroke.line,\n\t\t\t\t\tstrokeWidth: strokeWidth.outsideThreshold,\n\t\t\t\t\tstrokeDasharray: strokeDasharray.line\n\t\t\t\t\t/* fill={stroke.outsideThreshold || stroke.line} */\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn RSISeries;\n}(_react.Component);\n\nRSISeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tstroke: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.string.isRequired,\n\t\tmiddle: _propTypes2.default.string.isRequired,\n\t\tbottom: _propTypes2.default.string.isRequired,\n\t\toutsideThreshold: _propTypes2.default.string.isRequired,\n\t\tinsideThreshold: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\topacity: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.number.isRequired,\n\t\tmiddle: _propTypes2.default.number.isRequired,\n\t\tbottom: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\tstrokeDasharray: _propTypes2.default.shape({\n\t\tline: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\t\ttop: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\t\tmiddle: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\t\tbottom: _propTypes2.default.oneOf(_utils.strokeDashTypes)\n\t}).isRequired,\n\tstrokeWidth: _propTypes2.default.shape({\n\t\toutsideThreshold: _propTypes2.default.number.isRequired,\n\t\tinsideThreshold: _propTypes2.default.number.isRequired,\n\t\ttop: _propTypes2.default.number.isRequired,\n\t\tmiddle: _propTypes2.default.number.isRequired,\n\t\tbottom: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\toverSold: _propTypes2.default.number.isRequired,\n\tmiddle: _propTypes2.default.number.isRequired,\n\toverBought: _propTypes2.default.number.isRequired\n};\n\nRSISeries.defaultProps = {\n\tclassName: \"react-stockcharts-rsi-series\",\n\tstroke: {\n\t\tline: \"#000000\",\n\t\ttop: \"#B8C2CC\",\n\t\tmiddle: \"#8795A1\",\n\t\tbottom: \"#B8C2CC\",\n\t\toutsideThreshold: \"#b300b3\",\n\t\tinsideThreshold: \"#ffccff\"\n\t},\n\topacity: {\n\t\ttop: 1,\n\t\tmiddle: 1,\n\t\tbottom: 1\n\t},\n\tstrokeDasharray: {\n\t\tline: \"Solid\",\n\t\ttop: \"ShortDash\",\n\t\tmiddle: \"ShortDash\",\n\t\tbottom: \"ShortDash\"\n\t},\n\tstrokeWidth: {\n\t\toutsideThreshold: 1,\n\t\tinsideThreshold: 1,\n\t\ttop: 1,\n\t\tmiddle: 1,\n\t\tbottom: 1\n\t},\n\toverSold: 70,\n\tmiddle: 50,\n\toverBought: 30\n};\n\nexports.default = RSISeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _LineSeries = require(\"./LineSeries\");\n\nvar _LineSeries2 = _interopRequireDefault(_LineSeries);\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _StraightLine2 = _interopRequireDefault(_StraightLine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StochasticSeries = function (_Component) {\n\t_inherits(StochasticSeries, _Component);\n\n\tfunction StochasticSeries(props) {\n\t\t_classCallCheck(this, StochasticSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (StochasticSeries.__proto__ || Object.getPrototypeOf(StochasticSeries)).call(this, props));\n\n\t\t_this.yAccessorForD = _this.yAccessorForD.bind(_this);\n\t\t_this.yAccessorForK = _this.yAccessorForK.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(StochasticSeries, [{\n\t\tkey: \"yAccessorForD\",\n\t\tvalue: function yAccessorForD(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).D;\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForK\",\n\t\tvalue: function yAccessorForK(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && yAccessor(d).K;\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t stroke = _props.stroke,\n\t\t\t refLineOpacity = _props.refLineOpacity;\n\t\t\tvar _props2 = this.props,\n\t\t\t overSold = _props2.overSold,\n\t\t\t middle = _props2.middle,\n\t\t\t overBought = _props2.overBought;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, { yAccessor: this.yAccessorForD,\n\t\t\t\t\tstroke: stroke.dLine,\n\t\t\t\t\tfill: \"none\" }),\n\t\t\t\t_react2.default.createElement(_LineSeries2.default, { yAccessor: this.yAccessorForK,\n\t\t\t\t\tstroke: stroke.kLine,\n\t\t\t\t\tfill: \"none\" }),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tstroke: stroke.top,\n\t\t\t\t\topacity: refLineOpacity,\n\t\t\t\t\tyValue: overSold }),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tstroke: stroke.middle,\n\t\t\t\t\topacity: refLineOpacity,\n\t\t\t\t\tyValue: middle }),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tstroke: stroke.bottom,\n\t\t\t\t\topacity: refLineOpacity,\n\t\t\t\t\tyValue: overBought })\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn StochasticSeries;\n}(_react.Component);\n\nStochasticSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tstroke: _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.string.isRequired,\n\t\tmiddle: _propTypes2.default.string.isRequired,\n\t\tbottom: _propTypes2.default.string.isRequired,\n\t\tdLine: _propTypes2.default.string.isRequired,\n\t\tkLine: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\toverSold: _propTypes2.default.number.isRequired,\n\tmiddle: _propTypes2.default.number.isRequired,\n\toverBought: _propTypes2.default.number.isRequired,\n\trefLineOpacity: _propTypes2.default.number.isRequired\n};\n\nStochasticSeries.defaultProps = {\n\tclassName: \"react-stockcharts-stochastic-series\",\n\tstroke: {\n\t\ttop: \"#964B00\",\n\t\tmiddle: \"#000000\",\n\t\tbottom: \"#964B00\",\n\t\tdLine: \"#EA2BFF\",\n\t\tkLine: \"#74D400\"\n\t},\n\toverSold: 80,\n\tmiddle: 50,\n\toverBought: 20,\n\trefLineOpacity: 0.3\n};\n\nexports.default = StochasticSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _OverlayBarSeries = require(\"./OverlayBarSeries\");\n\nvar _OverlayBarSeries2 = _interopRequireDefault(_OverlayBarSeries);\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _StraightLine2 = _interopRequireDefault(_StraightLine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElderRaySeries = function (_Component) {\n\t_inherits(ElderRaySeries, _Component);\n\n\tfunction ElderRaySeries(props) {\n\t\t_classCallCheck(this, ElderRaySeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (ElderRaySeries.__proto__ || Object.getPrototypeOf(ElderRaySeries)).call(this, props));\n\n\t\t_this.fillForEachBar = _this.fillForEachBar.bind(_this);\n\t\t_this.yAccessorTop = _this.yAccessorTop.bind(_this);\n\t\t_this.yAccessorBullTop = _this.yAccessorBullTop.bind(_this);\n\t\t_this.yAccessorBearTop = _this.yAccessorBearTop.bind(_this);\n\t\t_this.yAccessorBullBottom = _this.yAccessorBullBottom.bind(_this);\n\t\t_this.yAccessorBearBottom = _this.yAccessorBearBottom.bind(_this);\n\t\t_this.yAccessorForBarBase = _this.yAccessorForBarBase.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(ElderRaySeries, [{\n\t\tkey: \"yAccessorTop\",\n\t\tvalue: function yAccessorTop(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && Math.max(yAccessor(d).bullPower, 0);\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorBullTop\",\n\t\tvalue: function yAccessorBullTop(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && (yAccessor(d).bullPower > 0 ? yAccessor(d).bullPower : undefined);\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorBearTop\",\n\t\tvalue: function yAccessorBearTop(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && (yAccessor(d).bearPower > 0 ? yAccessor(d).bearPower : undefined);\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorBullBottom\",\n\t\tvalue: function yAccessorBullBottom(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && (yAccessor(d).bullPower < 0 ? 0 : undefined);\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorBearBottom\",\n\t\tvalue: function yAccessorBearBottom(d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\treturn yAccessor(d) && (yAccessor(d).bullPower < 0 || yAccessor(d).bullPower * yAccessor(d).bearPower < 0 // bullPower is +ve and bearPower is -ve\n\t\t\t? Math.min(0, yAccessor(d).bullPower) : undefined);\n\t\t}\n\t}, {\n\t\tkey: \"yAccessorForBarBase\",\n\t\tvalue: function yAccessorForBarBase(xScale, yScale, d) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\tvar y = yAccessor(d) && Math.min(yAccessor(d).bearPower, 0);\n\t\t\treturn yScale(y);\n\t\t}\n\t}, {\n\t\tkey: \"fillForEachBar\",\n\t\tvalue: function fillForEachBar(d, yAccessorNumber) {\n\t\t\tvar _props = this.props,\n\t\t\t bullPowerFill = _props.bullPowerFill,\n\t\t\t bearPowerFill = _props.bearPowerFill;\n\n\t\t\treturn yAccessorNumber % 2 === 0 ? bullPowerFill : bearPowerFill;\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props2 = this.props,\n\t\t\t className = _props2.className,\n\t\t\t opacity = _props2.opacity,\n\t\t\t stroke = _props2.stroke,\n\t\t\t straightLineStroke = _props2.straightLineStroke,\n\t\t\t straightLineOpacity = _props2.straightLineOpacity,\n\t\t\t widthRatio = _props2.widthRatio;\n\t\t\tvar clip = this.props.clip;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\t_react2.default.createElement(_OverlayBarSeries2.default, {\n\t\t\t\t\tbaseAt: this.yAccessorForBarBase,\n\t\t\t\t\tclassName: \"react-stockcharts-elderray-bar\",\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tfill: this.fillForEachBar,\n\t\t\t\t\topacity: opacity,\n\t\t\t\t\twidthRatio: widthRatio,\n\t\t\t\t\tclip: clip,\n\t\t\t\t\tyAccessor: [this.yAccessorBullTop, this.yAccessorBearTop, this.yAccessorBullBottom, this.yAccessorBearBottom] }),\n\t\t\t\t_react2.default.createElement(_StraightLine2.default, {\n\t\t\t\t\tclassName: \"react-stockcharts-elderray-straight-line\",\n\t\t\t\t\tyValue: 0,\n\t\t\t\t\tstroke: straightLineStroke,\n\t\t\t\t\topacity: straightLineOpacity })\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn ElderRaySeries;\n}(_react.Component);\n\nElderRaySeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func,\n\topacity: _propTypes2.default.number,\n\tstroke: _propTypes2.default.bool,\n\tbullPowerFill: _propTypes2.default.string,\n\tbearPowerFill: _propTypes2.default.string,\n\tstraightLineStroke: _propTypes2.default.string,\n\tstraightLineOpacity: _propTypes2.default.number,\n\twidthRatio: _propTypes2.default.number,\n\tclip: _propTypes2.default.bool.isRequired\n};\n\nElderRaySeries.defaultProps = {\n\tclassName: \"react-stockcharts-elderray-series\",\n\tstraightLineStroke: \"#000000\",\n\tstraightLineOpacity: 0.3,\n\topacity: 0.5,\n\tstroke: true,\n\tbullPowerFill: \"#6BA583\",\n\tbearPowerFill: \"#FF0000\",\n\twidthRatio: 0.8,\n\tclip: true\n};\n\nexports.default = ElderRaySeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _d3Array = require(\"d3-array\");\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _StackedBarSeries = require(\"./StackedBarSeries\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar OverlayBarSeries = function (_Component) {\n\t_inherits(OverlayBarSeries, _Component);\n\n\tfunction OverlayBarSeries(props) {\n\t\t_classCallCheck(this, OverlayBarSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (OverlayBarSeries.__proto__ || Object.getPrototypeOf(OverlayBarSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(OverlayBarSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\tvar bars = getBars(this.props, moreProps, yAccessor);\n\n\t\t\t(0, _StackedBarSeries.drawOnCanvas2)(this.props, ctx, bars);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\n\t\t\tvar bars = getBars(this.props, moreProps, yAccessor);\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: \"react-stockcharts-bar-series\" },\n\t\t\t\t(0, _StackedBarSeries.getBarsSVG2)(this.props, bars)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar clip = this.props.clip;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tclip: clip,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn OverlayBarSeries;\n}(_react.Component);\n\nOverlayBarSeries.propTypes = {\n\tbaseAt: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]).isRequired,\n\tdirection: _propTypes2.default.oneOf([\"up\", \"down\"]).isRequired,\n\tstroke: _propTypes2.default.bool.isRequired,\n\twidthRatio: _propTypes2.default.number.isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\tclassName: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]).isRequired,\n\txAccessor: _propTypes2.default.func,\n\tyAccessor: _propTypes2.default.arrayOf(_propTypes2.default.func),\n\txScale: _propTypes2.default.func,\n\tyScale: _propTypes2.default.func,\n\tplotData: _propTypes2.default.array,\n\tclip: _propTypes2.default.bool.isRequired\n};\n\nOverlayBarSeries.defaultProps = {\n\tbaseAt: function baseAt(xScale, yScale /* , d*/) {\n\t\treturn (0, _utils.first)(yScale.range());\n\t},\n\tdirection: \"up\",\n\tclassName: \"bar\",\n\tstroke: false,\n\tfill: \"#4682B4\",\n\topacity: 1,\n\twidthRatio: 0.5,\n\twidth: _utils.plotDataLengthBarWidth,\n\tclip: true\n};\n\nfunction getBars(props, moreProps, yAccessor) {\n\tvar xScale = moreProps.xScale,\n\t xAccessor = moreProps.xAccessor,\n\t yScale = moreProps.chartConfig.yScale,\n\t plotData = moreProps.plotData;\n\tvar baseAt = props.baseAt,\n\t className = props.className,\n\t fill = props.fill,\n\t stroke = props.stroke;\n\n\n\tvar getClassName = (0, _utils.functor)(className);\n\tvar getFill = (0, _utils.functor)(fill);\n\tvar getBase = (0, _utils.functor)(baseAt);\n\tvar widthFunctor = (0, _utils.functor)(props.width);\n\n\tvar width = widthFunctor(props, moreProps);\n\tvar offset = Math.floor(0.5 * width);\n\n\t// console.log(xScale.domain(), yScale.domain());\n\n\tvar bars = plotData.map(function (d) {\n\t\t// eslint-disable-next-line prefer-const\n\t\tvar innerBars = yAccessor.map(function (eachYAccessor, i) {\n\t\t\tvar yValue = eachYAccessor(d);\n\t\t\tif ((0, _utils.isNotDefined)(yValue)) return undefined;\n\n\t\t\tvar xValue = xAccessor(d);\n\t\t\tvar x = Math.round(xScale(xValue)) - offset;\n\t\t\tvar y = yScale(yValue);\n\t\t\t// console.log(yValue, y, xValue, x)\n\t\t\treturn {\n\t\t\t\twidth: offset * 2,\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t\tclassName: getClassName(d, i),\n\t\t\t\tstroke: stroke ? getFill(d, i) : \"none\",\n\t\t\t\tfill: getFill(d, i),\n\t\t\t\ti: i\n\t\t\t};\n\t\t}).filter(function (yValue) {\n\t\t\treturn (0, _utils.isDefined)(yValue);\n\t\t});\n\n\t\tvar b = getBase(xScale, yScale, d);\n\t\tvar h = void 0;\n\t\tfor (var i = innerBars.length - 1; i >= 0; i--) {\n\t\t\th = b - innerBars[i].y;\n\t\t\tif (h < 0) {\n\t\t\t\tinnerBars[i].y = b;\n\t\t\t\th = -1 * h;\n\t\t\t}\n\t\t\tinnerBars[i].height = h;\n\t\t\tb = innerBars[i].y;\n\t\t}\n\t\treturn innerBars;\n\t});\n\n\treturn (0, _d3Array.merge)(bars);\n}\n\nexports.default = OverlayBarSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Array = require(\"d3-array\");\n\nvar _d3Collection = require(\"d3-collection\");\n\nvar _d3Scale = require(\"d3-scale\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar VolumeProfileSeries = function (_Component) {\n\t_inherits(VolumeProfileSeries, _Component);\n\n\tfunction VolumeProfileSeries(props) {\n\t\t_classCallCheck(this, VolumeProfileSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (VolumeProfileSeries.__proto__ || Object.getPrototypeOf(VolumeProfileSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(VolumeProfileSeries, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar xAccessor = moreProps.xAccessor,\n\t\t\t width = moreProps.width;\n\n\t\t\tvar _helper = helper(this.props, moreProps, xAccessor, width),\n\t\t\t rects = _helper.rects,\n\t\t\t sessionBg = _helper.sessionBg;\n\n\t\t\t_drawOnCanvas(ctx, this.props, rects, sessionBg);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t className = _props.className,\n\t\t\t opacity = _props.opacity;\n\t\t\tvar _props2 = this.props,\n\t\t\t showSessionBackground = _props2.showSessionBackground,\n\t\t\t sessionBackGround = _props2.sessionBackGround,\n\t\t\t sessionBackGroundOpacity = _props2.sessionBackGroundOpacity;\n\t\t\tvar xAccessor = moreProps.xAccessor,\n\t\t\t width = moreProps.width;\n\n\t\t\tvar _helper2 = helper(this.props, moreProps, xAccessor, width),\n\t\t\t rects = _helper2.rects,\n\t\t\t sessionBg = _helper2.sessionBg;\n\n\t\t\tvar sessionBgSvg = showSessionBackground ? sessionBg.map(function (d, idx) {\n\t\t\t\treturn _react2.default.createElement(\"rect\", _extends({ key: idx }, d, { opacity: sessionBackGroundOpacity, fill: sessionBackGround }));\n\t\t\t}) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\tsessionBgSvg,\n\t\t\t\trects.map(function (d, i) {\n\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t\"g\",\n\t\t\t\t\t\t{ key: i },\n\t\t\t\t\t\t_react2.default.createElement(\"rect\", { x: d.x, y: d.y,\n\t\t\t\t\t\t\twidth: d.w1, height: d.height,\n\t\t\t\t\t\t\tfill: d.fill1, stroke: d.stroke1, fillOpacity: opacity }),\n\t\t\t\t\t\t_react2.default.createElement(\"rect\", { x: d.x + d.w1, y: d.y,\n\t\t\t\t\t\t\twidth: d.w2, height: d.height,\n\t\t\t\t\t\t\tfill: d.fill2, stroke: d.stroke2, fillOpacity: opacity })\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn VolumeProfileSeries;\n}(_react.Component);\n\nVolumeProfileSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\topacity: _propTypes2.default.number,\n\tshowSessionBackground: _propTypes2.default.bool,\n\tsessionBackGround: _propTypes2.default.string,\n\tsessionBackGroundOpacity: _propTypes2.default.number\n};\n\nVolumeProfileSeries.defaultProps = {\n\tclassName: \"line \",\n\tbins: 20,\n\topacity: 0.5,\n\tmaxProfileWidthPercent: 50,\n\tfill: function fill(_ref) {\n\t\tvar type = _ref.type;\n\t\treturn type === \"up\" ? \"#6BA583\" : \"#FF0000\";\n\t},\n\tstroke: \"#FFFFFF\",\n\tshowSessionBackground: false,\n\tsessionBackGround: \"#4682B4\",\n\tsessionBackGroundOpacity: 0.3,\n\n\tsource: function source(d) {\n\t\treturn d.close;\n\t},\n\tvolume: function volume(d) {\n\t\treturn d.volume;\n\t},\n\tabsoluteChange: function absoluteChange(d) {\n\t\treturn d.absoluteChange;\n\t},\n\tbySession: false,\n\t/* eslint-disable no-unused-vars */\n\tsessionStart: function sessionStart(_ref2) {\n\t\tvar d = _ref2.d,\n\t\t i = _ref2.i,\n\t\t plotData = _ref2.plotData;\n\t\treturn i > 0 && plotData[i - 1].date.getMonth() !== d.date.getMonth();\n\t},\n\t/* eslint-enable no-unused-vars */\n\torient: \"left\",\n\t// // fill: ({ type }) => { var c = type === \"up\" ? \"#6BA583\" : \"#FF0000\"; console.log(type, c); return c },\n\t// stroke: ({ type }) => type === \"up\" ? \"#6BA583\" : \"#FF0000\",\n\t// stroke: \"none\",\n\tpartialStartOK: true,\n\tpartialEndOK: true\n};\n\nfunction helper(props, moreProps, xAccessor, width) {\n\tvar realXScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t plotData = moreProps.plotData;\n\tvar sessionStart = props.sessionStart,\n\t bySession = props.bySession,\n\t partialStartOK = props.partialStartOK,\n\t partialEndOK = props.partialEndOK;\n\tvar bins = props.bins,\n\t maxProfileWidthPercent = props.maxProfileWidthPercent,\n\t source = props.source,\n\t volume = props.volume,\n\t absoluteChange = props.absoluteChange,\n\t orient = props.orient,\n\t fill = props.fill,\n\t stroke = props.stroke;\n\n\n\tvar sessionBuilder = (0, _utils.accumulatingWindow)().discardTillStart(!partialStartOK).discardTillEnd(!partialEndOK).accumulateTill(function (d, i) {\n\t\treturn sessionStart(_extends({ d: d, i: i }, moreProps));\n\t}).accumulator(_utils.identity);\n\n\tvar dx = plotData.length > 1 ? realXScale(xAccessor(plotData[1])) - realXScale(xAccessor((0, _utils.head)(plotData))) : 0;\n\n\tvar sessions = bySession ? sessionBuilder(plotData) : [plotData];\n\n\tvar allRects = sessions.map(function (session) {\n\n\t\tvar begin = bySession ? realXScale(xAccessor((0, _utils.head)(session))) : 0;\n\t\tvar finish = bySession ? realXScale(xAccessor((0, _utils.last)(session))) : width;\n\t\tvar sessionWidth = finish - begin + dx;\n\n\t\t// console.log(session)\n\n\t\t/* var histogram = d3.layout.histogram()\n \t\t.value(source)\n \t\t.bins(bins);*/\n\n\t\tvar histogram2 = (0, _d3Array.histogram)()\n\t\t// .domain(xScale.domain())\n\t\t.value(source).thresholds(bins);\n\n\t\t// console.log(bins, histogram(session))\n\t\t// console.log(bins, histogram2(session))\n\t\tvar rollup = (0, _d3Collection.nest)().key(function (d) {\n\t\t\treturn d.direction;\n\t\t}).sortKeys(orient === \"right\" ? _d3Array.descending : _d3Array.ascending).rollup(function (leaves) {\n\t\t\treturn (0, _d3Array.sum)(leaves, function (d) {\n\t\t\t\treturn d.volume;\n\t\t\t});\n\t\t});\n\n\t\tvar values = histogram2(session);\n\t\t// console.log(\"values\", values)\n\n\t\tvar volumeInBins = values.map(function (arr) {\n\t\t\treturn arr.map(function (d) {\n\t\t\t\treturn absoluteChange(d) > 0 ? { direction: \"up\", volume: volume(d) } : { direction: \"down\", volume: volume(d) };\n\t\t\t});\n\t\t}).map(function (arr) {\n\t\t\treturn rollup.entries(arr);\n\t\t});\n\n\t\t// console.log(\"volumeInBins\", volumeInBins)\n\t\tvar volumeValues = volumeInBins.map(function (each) {\n\t\t\treturn (0, _d3Array.sum)(each.map(function (d) {\n\t\t\t\treturn d.value;\n\t\t\t}));\n\t\t});\n\n\t\t// console.log(\"volumeValues\", volumeValues)\n\t\tvar base = function base(xScale) {\n\t\t\treturn (0, _utils.head)(xScale.range());\n\t\t};\n\n\t\tvar _ref3 = orient === \"right\" ? [begin, begin + sessionWidth * maxProfileWidthPercent / 100] : [finish, finish - sessionWidth * (100 - maxProfileWidthPercent) / 100],\n\t\t _ref4 = _slicedToArray(_ref3, 2),\n\t\t start = _ref4[0],\n\t\t end = _ref4[1];\n\n\t\tvar xScale = (0, _d3Scale.scaleLinear)().domain([0, (0, _d3Array.max)(volumeValues)]).range([start, end]);\n\n\t\t// console.log(xScale.domain())\n\n\t\tvar totalVolumes = volumeInBins.map(function (volumes) {\n\n\t\t\tvar totalVolume = (0, _d3Array.sum)(volumes, function (d) {\n\t\t\t\treturn d.value;\n\t\t\t});\n\t\t\tvar totalVolumeX = xScale(totalVolume);\n\t\t\tvar width = base(xScale) - totalVolumeX;\n\t\t\tvar x = width < 0 ? totalVolumeX + width : totalVolumeX;\n\n\t\t\tvar ws = volumes.map(function (d) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: d.key,\n\t\t\t\t\twidth: d.value * Math.abs(width) / totalVolume\n\t\t\t\t};\n\t\t\t});\n\n\t\t\treturn { x: x, ws: ws, totalVolumeX: totalVolumeX };\n\t\t});\n\t\t// console.log(\"totalVolumes\", totalVolumes)\n\n\t\tvar rects = (0, _d3Array.zip)(values, totalVolumes).map(function (_ref5) {\n\t\t\tvar _ref6 = _slicedToArray(_ref5, 2),\n\t\t\t d = _ref6[0],\n\t\t\t _ref6$ = _ref6[1],\n\t\t\t x = _ref6$.x,\n\t\t\t ws = _ref6$.ws;\n\n\t\t\tvar w1 = ws[0] || { type: \"up\", width: 0 };\n\t\t\tvar w2 = ws[1] || { type: \"down\", width: 0 };\n\n\t\t\treturn {\n\t\t\t\t// y: yScale(d.x + d.dx),\n\t\t\t\ty: yScale(d.x1),\n\t\t\t\t// height: yScale(d.x - d.dx) - yScale(d.x),\n\t\t\t\theight: yScale(d.x1) - yScale(d.x0),\n\t\t\t\tx: x,\n\t\t\t\twidth: width,\n\t\t\t\tw1: w1.width,\n\t\t\t\tw2: w2.width,\n\t\t\t\tstroke1: (0, _utils.functor)(stroke)(w1),\n\t\t\t\tstroke2: (0, _utils.functor)(stroke)(w2),\n\t\t\t\tfill1: (0, _utils.functor)(fill)(w1),\n\t\t\t\tfill2: (0, _utils.functor)(fill)(w2)\n\t\t\t};\n\t\t});\n\n\t\t// console.log(\"rects\", rects)\n\n\t\tvar sessionBg = {\n\t\t\tx: begin,\n\t\t\ty: (0, _utils.last)(rects).y,\n\t\t\theight: (0, _utils.head)(rects).y - (0, _utils.last)(rects).y + (0, _utils.head)(rects).height,\n\t\t\twidth: sessionWidth\n\t\t};\n\n\t\treturn { rects: rects, sessionBg: sessionBg };\n\t});\n\n\treturn {\n\t\trects: (0, _d3Array.merge)(allRects.map(function (d) {\n\t\t\treturn d.rects;\n\t\t})),\n\t\tsessionBg: allRects.map(function (d) {\n\t\t\treturn d.sessionBg;\n\t\t})\n\t};\n}\n\nfunction _drawOnCanvas(ctx, props, rects, sessionBg) {\n\tvar opacity = props.opacity,\n\t sessionBackGround = props.sessionBackGround,\n\t sessionBackGroundOpacity = props.sessionBackGroundOpacity,\n\t showSessionBackground = props.showSessionBackground;\n\n\t// var { rects, sessionBg } = helper(props, xScale, yScale, plotData);\n\n\tif (showSessionBackground) {\n\t\tctx.fillStyle = (0, _utils.hexToRGBA)(sessionBackGround, sessionBackGroundOpacity);\n\n\t\tsessionBg.forEach(function (each) {\n\t\t\tvar x = each.x,\n\t\t\t y = each.y,\n\t\t\t height = each.height,\n\t\t\t width = each.width;\n\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(x, y, width, height);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\t\t});\n\t}\n\n\trects.forEach(function (each) {\n\t\tvar x = each.x,\n\t\t y = each.y,\n\t\t height = each.height,\n\t\t w1 = each.w1,\n\t\t w2 = each.w2,\n\t\t stroke1 = each.stroke1,\n\t\t stroke2 = each.stroke2,\n\t\t fill1 = each.fill1,\n\t\t fill2 = each.fill2;\n\n\n\t\tif (w1 > 0) {\n\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill1, opacity);\n\t\t\tif (stroke1 !== \"none\") ctx.strokeStyle = stroke1;\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(x, y, w1, height);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\n\t\t\tif (stroke1 !== \"none\") ctx.stroke();\n\t\t}\n\n\t\tif (w2 > 0) {\n\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill2, opacity);\n\t\t\tif (stroke2 !== \"none\") ctx.strokeStyle = stroke2;\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(x + w1, y, w2, height);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\n\t\t\tif (stroke2 !== \"none\") ctx.stroke();\n\t\t}\n\t});\n}\n\nexports.default = VolumeProfileSeries;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SARSeries = function (_Component) {\n\t_inherits(SARSeries, _Component);\n\n\tfunction SARSeries(props) {\n\t\t_classCallCheck(this, SARSeries);\n\n\t\tvar _this = _possibleConstructorReturn(this, (SARSeries.__proto__ || Object.getPrototypeOf(SARSeries)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(SARSeries, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar mouseXY = moreProps.mouseXY,\n\t\t\t currentItem = moreProps.currentItem,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\t\t\tvar yAccessor = this.props.yAccessor;\n\n\t\t\tvar y = mouseXY[1];\n\t\t\tvar currentY = yScale(yAccessor(currentItem));\n\t\t\treturn y < currentY + 5 && y > currentY - 5;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t yAccessor = _props.yAccessor,\n\t\t\t fill = _props.fill,\n\t\t\t opacity = _props.opacity;\n\t\t\tvar xAccessor = moreProps.xAccessor,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t hovering = moreProps.hovering;\n\n\n\t\t\tvar width = xScale(xAccessor((0, _utils.last)(plotData))) - xScale(xAccessor((0, _utils.first)(plotData)));\n\n\t\t\tvar d = width / plotData.length * 0.5 / 2;\n\t\t\tvar radius = Math.min(2, Math.max(0.5, d)) + (hovering ? 2 : 0);\n if(plotData[plotData.length - 1].close == 0)\n {\n plotData = plotData.slice(0, plotData.length - 1);\n }\n\t\t\tplotData.forEach(function (each) {\n\t\t\t\tvar centerX = xScale(xAccessor(each));\n\t\t\t\tvar centerY = yScale(yAccessor(each));\n\t\t\t\tvar color = yAccessor(each) > each.close ? fill.falling : fill.rising;\n\n\t\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(color, opacity);\n\t\t\t\tctx.strokeStyle = color;\n\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.ellipse(centerX, centerY, radius, radius, 0, 0, 2 * Math.PI);\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.fill();\n\t\t\t\tctx.stroke();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t className = _props2.className,\n\t\t\t yAccessor = _props2.yAccessor;\n\t\t\tvar xAccessor = moreProps.xAccessor,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\t\t\t// console.log(moreProps);\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className },\n\t\t\t\tplotData.filter(function (each) {\n\t\t\t\t\treturn (0, _utils.isDefined)(yAccessor(each));\n\t\t\t\t}).map(function (each, idx) {\n\t\t\t\t\treturn _react2.default.createElement(\"circle\", { key: idx, cx: xScale(xAccessor(each)),\n\t\t\t\t\t\tcy: yScale(yAccessor(each)), r: 3, fill: \"green\" });\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar highlightOnHover = this.props.highlightOnHover;\n\n\t\t\tvar hoverProps = highlightOnHover ? {\n\t\t\t\tisHover: this.isHover,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\"],\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas\n\t\t\t} : {\n\t\t\t\tdrawOn: [\"pan\"],\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas\n\t\t\t};\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, _extends({\n\t\t\t\tsvgDraw: this.renderSVG,\n\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tonClickWhenHover: this.props.onClick,\n\t\t\t\tonDoubleClickWhenHover: this.props.onDoubleClick,\n\t\t\t\tonContextMenuWhenHover: this.props.onContextMenu\n\t\t\t}, hoverProps));\n\t\t}\n\t}]);\n\n\treturn SARSeries;\n}(_react.Component);\n\nSARSeries.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tfill: _propTypes2.default.object.isRequired,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\topacity: _propTypes2.default.number.isRequired,\n\tonClick: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func,\n\tonContextMenu: _propTypes2.default.func,\n\thighlightOnHover: _propTypes2.default.bool\n};\n\nSARSeries.defaultProps = {\n\tclassName: \"react-stockcharts-sar\",\n\tfill: {\n\t\tfalling: \"#4682B4\",\n\t\trising: \"#15EC2E\"\n\t},\n\thighlightOnHover: true,\n\topacity: 0.2,\n\tonClick: function onClick(e) {\n\t\tconsole.log(\"Click\", e);\n\t},\n\tonDoubleClick: function onDoubleClick(e) {\n\t\tconsole.log(\"Double Click\", e);\n\t},\n\tonContextMenu: function onContextMenu(e) {\n\t\tconsole.log(\"Right Click\", e);\n\t}\n};\n\nexports.default = SARSeries;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _Axis = require(\"./Axis\");\n\nvar _Axis2 = _interopRequireDefault(_Axis);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar XAxis = function (_Component) {\n\t_inherits(XAxis, _Component);\n\n\tfunction XAxis(props, context) {\n\t\t_classCallCheck(this, XAxis);\n\n\t\tvar _this = _possibleConstructorReturn(this, (XAxis.__proto__ || Object.getPrototypeOf(XAxis)).call(this, props, context));\n\n\t\t_this.axisZoomCallback = _this.axisZoomCallback.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(XAxis, [{\n\t\tkey: \"axisZoomCallback\",\n\t\tvalue: function axisZoomCallback(newXDomain) {\n\t\t\tvar xAxisZoom = this.context.xAxisZoom;\n\n\t\t\txAxisZoom(newXDomain);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar showTicks = this.props.showTicks;\n\n\t\t\tvar moreProps = helper(this.props, this.context);\n\n\t\t\treturn _react2.default.createElement(_Axis2.default, _extends({}, this.props, moreProps, { x: true,\n\t\t\t\tzoomEnabled: this.props.zoomEnabled && showTicks,\n\t\t\t\taxisZoomCallback: this.axisZoomCallback,\n\t\t\t\tzoomCursorClassName: \"react-stockcharts-ew-resize-cursor\" }));\n\t\t}\n\t}]);\n\n\treturn XAxis;\n}(_react.Component);\n\nXAxis.propTypes = {\n\taxisAt: _propTypes2.default.oneOfType([_propTypes2.default.oneOf([\"top\", \"bottom\", \"middle\"]), _propTypes2.default.number]).isRequired,\n\torient: _propTypes2.default.oneOf([\"top\", \"bottom\"]).isRequired,\n\tinnerTickSize: _propTypes2.default.number,\n\touterTickSize: _propTypes2.default.number,\n\ttickFormat: _propTypes2.default.func,\n\ttickPadding: _propTypes2.default.number,\n\ttickSize: _propTypes2.default.number,\n\tticks: _propTypes2.default.number,\n\ttickValues: _propTypes2.default.array,\n\tshowTicks: _propTypes2.default.bool,\n\tclassName: _propTypes2.default.string,\n\tzoomEnabled: _propTypes2.default.bool,\n\tonContextMenu: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func\n};\n\nXAxis.defaultProps = {\n\tshowTicks: true,\n\tshowTickLabel: true,\n\tshowDomain: true,\n\tclassName: \"react-stockcharts-x-axis\",\n\tticks: 10,\n\touterTickSize: 0,\n\tfill: \"none\",\n\tstroke: \"#000000\", // x axis stroke color\n\tstrokeWidth: 1,\n\topacity: 1, // x axis opacity\n\tdomainClassName: \"react-stockcharts-axis-domain\",\n\tinnerTickSize: 5,\n\ttickPadding: 6,\n\ttickStroke: \"#000000\", // tick/grid stroke\n\ttickStrokeOpacity: 1,\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 12,\n\tfontWeight: 400,\n\txZoomHeight: 25,\n\tzoomEnabled: true,\n\tgetMouseDelta: function getMouseDelta(startXY, mouseXY) {\n\t\treturn startXY[0] - mouseXY[0];\n\t}\n};\n\nXAxis.contextTypes = {\n\tchartConfig: _propTypes2.default.object.isRequired,\n\txAxisZoom: _propTypes2.default.func.isRequired\n};\n\nfunction helper(props, context) {\n\tvar axisAt = props.axisAt,\n\t xZoomHeight = props.xZoomHeight,\n\t orient = props.orient;\n\tvar _context$chartConfig = context.chartConfig,\n\t width = _context$chartConfig.width,\n\t height = _context$chartConfig.height;\n\n\n\tvar axisLocation = void 0;\n\tvar x = 0,\n\t w = width,\n\t h = xZoomHeight;\n\n\tif (axisAt === \"top\") axisLocation = 0;else if (axisAt === \"bottom\") axisLocation = height;else if (axisAt === \"middle\") axisLocation = height / 2;else axisLocation = axisAt;\n\n\tvar y = orient === \"top\" ? -xZoomHeight : 0;\n\n\treturn {\n\t\ttransform: [0, axisLocation],\n\t\trange: [0, width],\n\t\tgetScale: getXScale,\n\t\tbg: { x: x, y: y, h: h, w: w }\n\t};\n}\n\nfunction getXScale(moreProps) {\n\tvar scale = moreProps.xScale,\n\t width = moreProps.width;\n\n\n\tif (scale.invert) {\n\t\tvar trueRange = [0, width];\n\t\tvar trueDomain = trueRange.map(scale.invert);\n\t\treturn scale.copy().domain(trueDomain).range(trueRange);\n\t}\n\n\treturn scale;\n}\n\nexports.default = XAxis;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Selection = require(\"d3-selection\");\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AxisZoomCapture = function (_Component) {\n\t_inherits(AxisZoomCapture, _Component);\n\n\tfunction AxisZoomCapture(props) {\n\t\t_classCallCheck(this, AxisZoomCapture);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AxisZoomCapture.__proto__ || Object.getPrototypeOf(AxisZoomCapture)).call(this, props));\n\n\t\t_this.handleDragStartMouse = _this.handleDragStartMouse.bind(_this);\n\t\t_this.handleDragStartTouch = _this.handleDragStartTouch.bind(_this);\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\t\t_this.handleDragEnd = _this.handleDragEnd.bind(_this);\n\t\t_this.handleRightClick = _this.handleRightClick.bind(_this);\n\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t_this.state = {\n\t\t\tstartPosition: null\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AxisZoomCapture, [{\n\t\tkey: \"saveNode\",\n\t\tvalue: function saveNode(node) {\n\t\t\tthis.node = node;\n\t\t}\n\t}, {\n\t\tkey: \"handleRightClick\",\n\t\tvalue: function handleRightClick(e) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tvar onContextMenu = this.props.onContextMenu;\n\n\n\t\t\tvar mouseXY = (0, _utils.mousePosition)(e, this.node.getBoundingClientRect());\n\n\t\t\t(0, _d3Selection.select)((0, _utils.d3Window)(this.node)).on(_utils.MOUSEMOVE, null).on(_utils.MOUSEUP, null);\n\t\t\tthis.setState({\n\t\t\t\tstartPosition: null\n\t\t\t});\n\n\t\t\tonContextMenu(mouseXY, e);\n\n\t\t\tthis.contextMenuClicked = true;\n\t\t}\n\t}, {\n\t\tkey: \"handleDragStartMouse\",\n\t\tvalue: function handleDragStartMouse(e) {\n\t\t\tthis.mouseInteraction = true;\n\n\t\t\tvar _props = this.props,\n\t\t\t getScale = _props.getScale,\n\t\t\t getMoreProps = _props.getMoreProps;\n\n\t\t\tvar startScale = getScale(getMoreProps());\n\t\t\tthis.dragHappened = false;\n\n\t\t\tif (startScale.invert) {\n\t\t\t\t(0, _d3Selection.select)((0, _utils.d3Window)(this.node)).on(_utils.MOUSEMOVE, this.handleDrag, false).on(_utils.MOUSEUP, this.handleDragEnd, false);\n\n\t\t\t\tvar startXY = (0, _utils.mousePosition)(e);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tstartPosition: {\n\t\t\t\t\t\tstartXY: startXY,\n\t\t\t\t\t\tstartScale: startScale\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t}\n\t}, {\n\t\tkey: \"handleDragStartTouch\",\n\t\tvalue: function handleDragStartTouch(e) {\n\t\t\tthis.mouseInteraction = false;\n\n\t\t\tvar _props2 = this.props,\n\t\t\t getScale = _props2.getScale,\n\t\t\t getMoreProps = _props2.getMoreProps;\n\n\t\t\tvar startScale = getScale(getMoreProps());\n\t\t\tthis.dragHappened = false;\n\n\t\t\tif (e.touches.length === 1 && startScale.invert) {\n\t\t\t\t(0, _d3Selection.select)((0, _utils.d3Window)(this.node)).on(_utils.TOUCHMOVE, this.handleDrag).on(_utils.TOUCHEND, this.handleDragEnd);\n\n\t\t\t\tvar startXY = (0, _utils.touchPosition)((0, _utils.getTouchProps)(e.touches[0]), e);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tstartPosition: {\n\t\t\t\t\t\tstartXY: startXY,\n\t\t\t\t\t\tstartScale: startScale\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag() {\n\t\t\tvar startPosition = this.state.startPosition;\n\t\t\tvar _props3 = this.props,\n\t\t\t getMouseDelta = _props3.getMouseDelta,\n\t\t\t inverted = _props3.inverted;\n\n\n\t\t\tthis.dragHappened = true;\n\t\t\tif ((0, _utils.isDefined)(startPosition)) {\n\t\t\t\tvar startScale = startPosition.startScale;\n\t\t\t\tvar startXY = startPosition.startXY;\n\n\n\t\t\t\tvar mouseXY = this.mouseInteraction ? (0, _d3Selection.mouse)(this.node) : (0, _d3Selection.touches)(this.node)[0];\n\n\t\t\t\tvar diff = getMouseDelta(startXY, mouseXY);\n\n\t\t\t\tvar center = (0, _d3Array.mean)(startScale.range());\n\n\t\t\t\tvar tempRange = startScale.range().map(function (d) {\n\t\t\t\t\treturn inverted ? d - (0, _utils.sign)(d - center) * diff : d + (0, _utils.sign)(d - center) * diff;\n\t\t\t\t});\n\n\t\t\t\tvar newDomain = tempRange.map(startScale.invert);\n\n\t\t\t\tif ((0, _utils.sign)((0, _utils.last)(startScale.range()) - (0, _utils.first)(startScale.range())) === (0, _utils.sign)((0, _utils.last)(tempRange) - (0, _utils.first)(tempRange))) {\n\t\t\t\t\tvar axisZoomCallback = this.props.axisZoomCallback;\n\t\t\t\t\t// console.log(startXScale.domain(), newXDomain)\n\n\t\t\t\t\taxisZoomCallback(newDomain);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDragEnd\",\n\t\tvalue: function handleDragEnd() {\n\t\t\tvar _this2 = this;\n\n\t\t\tif (!this.dragHappened) {\n\t\t\t\tif (this.clicked) {\n\t\t\t\t\tvar e = _d3Selection.event;\n\t\t\t\t\tvar mouseXY = this.mouseInteraction ? (0, _d3Selection.mouse)(this.node) : (0, _d3Selection.touches)(this.node)[0];\n\t\t\t\t\tvar onDoubleClick = this.props.onDoubleClick;\n\n\n\t\t\t\t\tonDoubleClick(mouseXY, e);\n\t\t\t\t} else {\n\t\t\t\t\tthis.clicked = true;\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t_this2.clicked = false;\n\t\t\t\t\t}, 300);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t(0, _d3Selection.select)((0, _utils.d3Window)(this.node)).on(_utils.MOUSEMOVE, null).on(_utils.MOUSEUP, null).on(_utils.TOUCHMOVE, null).on(_utils.TOUCHEND, null);\n\n\t\t\tthis.setState({\n\t\t\t\tstartPosition: null\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props4 = this.props,\n\t\t\t bg = _props4.bg,\n\t\t\t className = _props4.className,\n\t\t\t zoomCursorClassName = _props4.zoomCursorClassName;\n\n\n\t\t\tvar cursor = (0, _utils.isDefined)(this.state.startPosition) ? zoomCursorClassName : \"react-stockcharts-default-cursor\";\n\n\t\t\treturn _react2.default.createElement(\"rect\", {\n\t\t\t\tclassName: \"react-stockcharts-enable-interaction \" + cursor + \" \" + className,\n\t\t\t\tref: this.saveNode,\n\t\t\t\tx: bg.x, y: bg.y, opacity: 0, height: bg.h, width: bg.w,\n\t\t\t\tonContextMenu: this.handleRightClick,\n\t\t\t\tonMouseDown: this.handleDragStartMouse,\n\t\t\t\tonTouchStart: this.handleDragStartTouch\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn AxisZoomCapture;\n}(_react.Component);\n\nAxisZoomCapture.propTypes = {\n\tinnerTickSize: _propTypes2.default.number,\n\touterTickSize: _propTypes2.default.number,\n\ttickFormat: _propTypes2.default.func,\n\ttickPadding: _propTypes2.default.number,\n\ttickSize: _propTypes2.default.number,\n\tticks: _propTypes2.default.number,\n\ttickValues: _propTypes2.default.array,\n\tshowDomain: _propTypes2.default.bool,\n\tshowTicks: _propTypes2.default.bool,\n\tclassName: _propTypes2.default.string,\n\taxisZoomCallback: _propTypes2.default.func,\n\tinverted: _propTypes2.default.bool,\n\tbg: _propTypes2.default.object.isRequired,\n\tzoomCursorClassName: _propTypes2.default.string.isRequired,\n\tgetMoreProps: _propTypes2.default.func.isRequired,\n\tgetScale: _propTypes2.default.func.isRequired,\n\tgetMouseDelta: _propTypes2.default.func.isRequired,\n\tonDoubleClick: _propTypes2.default.func.isRequired,\n\tonContextMenu: _propTypes2.default.func.isRequired\n};\n\nAxisZoomCapture.defaultProps = {\n\tonDoubleClick: _utils.noop,\n\tonContextMenu: _utils.noop,\n\tinverted: true\n};\n\nexports.default = AxisZoomCapture;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _Axis = require(\"./Axis\");\n\nvar _Axis2 = _interopRequireDefault(_Axis);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar YAxis = function (_Component) {\n\t_inherits(YAxis, _Component);\n\n\tfunction YAxis(props, context) {\n\t\t_classCallCheck(this, YAxis);\n\n\t\tvar _this = _possibleConstructorReturn(this, (YAxis.__proto__ || Object.getPrototypeOf(YAxis)).call(this, props, context));\n\n\t\t_this.axisZoomCallback = _this.axisZoomCallback.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(YAxis, [{\n\t\tkey: \"axisZoomCallback\",\n\t\tvalue: function axisZoomCallback(newYDomain) {\n\t\t\tvar _context = this.context,\n\t\t\t chartId = _context.chartId,\n\t\t\t yAxisZoom = _context.yAxisZoom;\n\n\t\t\tyAxisZoom(chartId, newYDomain);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _helper = helper(this.props, this.context),\n\t\t\t zoomEnabled = _helper.zoomEnabled,\n\t\t\t moreProps = _objectWithoutProperties(_helper, [\"zoomEnabled\"]);\n\n\t\t\treturn _react2.default.createElement(_Axis2.default, _extends({}, this.props, moreProps, {\n\t\t\t\tzoomEnabled: this.props.zoomEnabled && zoomEnabled,\n\t\t\t\tedgeClip: true,\n\t\t\t\taxisZoomCallback: this.axisZoomCallback,\n\t\t\t\tzoomCursorClassName: \"react-stockcharts-ns-resize-cursor\" }));\n\t\t}\n\t}]);\n\n\treturn YAxis;\n}(_react.Component);\n\nYAxis.propTypes = {\n\taxisAt: _propTypes2.default.oneOfType([_propTypes2.default.oneOf([\"left\", \"right\", \"middle\"]), _propTypes2.default.number]).isRequired,\n\torient: _propTypes2.default.oneOf([\"left\", \"right\"]).isRequired,\n\tinnerTickSize: _propTypes2.default.number,\n\touterTickSize: _propTypes2.default.number,\n\ttickFormat: _propTypes2.default.func,\n\ttickPadding: _propTypes2.default.number,\n\ttickSize: _propTypes2.default.number,\n\tticks: _propTypes2.default.number,\n\tyZoomWidth: _propTypes2.default.number,\n\ttickValues: _propTypes2.default.array,\n\tshowTicks: _propTypes2.default.bool,\n\tclassName: _propTypes2.default.string,\n\tzoomEnabled: _propTypes2.default.bool,\n\tonContextMenu: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func\n};\n\nYAxis.defaultProps = {\n\tshowTicks: true,\n\tshowTickLabel: true,\n\tshowDomain: true,\n\tclassName: \"react-stockcharts-y-axis\",\n\tticks: 10,\n\touterTickSize: 0,\n\tdomainClassName: \"react-stockcharts-axis-domain\",\n\tfill: \"none\",\n\tstroke: \"#FFFFFF\",\n\tstrokeWidth: 1,\n\topacity: 1,\n\tinnerTickSize: 5,\n\ttickPadding: 6,\n\ttickStroke: \"#000000\",\n\ttickStrokeOpacity: 1,\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 12,\n\tfontWeight: 400,\n\tyZoomWidth: 40,\n\tzoomEnabled: true,\n\tgetMouseDelta: function getMouseDelta(startXY, mouseXY) {\n\t\treturn startXY[1] - mouseXY[1];\n\t}\n};\n\nYAxis.contextTypes = {\n\tyAxisZoom: _propTypes2.default.func.isRequired,\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,\n\tchartConfig: _propTypes2.default.object.isRequired\n};\n\nfunction helper(props, context) {\n\tvar axisAt = props.axisAt,\n\t yZoomWidth = props.yZoomWidth,\n\t orient = props.orient;\n\tvar _context$chartConfig = context.chartConfig,\n\t width = _context$chartConfig.width,\n\t height = _context$chartConfig.height;\n\n\n\tvar axisLocation = void 0;\n\tvar y = 0,\n\t w = yZoomWidth,\n\t h = height;\n\n\tif (axisAt === \"left\") {\n\t\taxisLocation = 0;\n\t} else if (axisAt === \"right\") {\n\t\taxisLocation = width;\n\t} else if (axisAt === \"middle\") {\n\t\taxisLocation = width / 2;\n\t} else {\n\t\taxisLocation = axisAt;\n\t}\n\n\tvar x = orient === \"left\" ? -yZoomWidth : 0;\n\n\treturn {\n\t\ttransform: [axisLocation, 0],\n\t\trange: [0, height],\n\t\tgetScale: getYScale,\n\t\tbg: { x: x, y: y, h: h, w: w },\n\t\tzoomEnabled: context.chartConfig.yPan\n\t};\n}\n\nfunction getYScale(moreProps) {\n\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t scale = _moreProps$chartConfi.yScale,\n\t flipYScale = _moreProps$chartConfi.flipYScale,\n\t height = _moreProps$chartConfi.height;\n\n\tif (scale.invert) {\n\t\tvar trueRange = flipYScale ? [0, height] : [height, 0];\n\t\tvar trueDomain = trueRange.map(scale.invert);\n\t\treturn scale.copy().domain(trueDomain).range(trueRange);\n\t}\n\treturn scale;\n}\n\nexports.default = YAxis;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Format = require(\"d3-format\");\n\nvar _EdgeCoordinateV = require(\"./EdgeCoordinateV3\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EdgeIndicator = function (_Component) {\n\t_inherits(EdgeIndicator, _Component);\n\n\tfunction EdgeIndicator(props) {\n\t\t_classCallCheck(this, EdgeIndicator);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EdgeIndicator.__proto__ || Object.getPrototypeOf(EdgeIndicator)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(EdgeIndicator, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar edge = helper(this.props, moreProps);\n\t\t\tvar props = _extends({}, this.props, edge);\n\t\t\t(0, _EdgeCoordinateV.drawOnCanvas)(ctx, props);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar edge = helper(this.props, moreProps);\n\t\t\tvar props = _extends({}, this.props, edge);\n\t\t\treturn (0, _EdgeCoordinateV.renderSVG)(props);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tedgeClip: true,\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn EdgeIndicator;\n}(_react.Component);\n\nEdgeIndicator.propTypes = {\n\tyAccessor: _propTypes2.default.func,\n\n\ttype: _propTypes2.default.oneOf([\"horizontal\"]),\n\tclassName: _propTypes2.default.string,\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\tlineStroke: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\ttextFill: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\titemType: _propTypes2.default.oneOf([\"first\", \"last\"]).isRequired,\n\torient: _propTypes2.default.oneOf([\"left\", \"right\"]),\n\tedgeAt: _propTypes2.default.oneOf([\"left\", \"right\"]),\n\tdisplayFormat: _propTypes2.default.func,\n\trectHeight: _propTypes2.default.number,\n\trectWidth: _propTypes2.default.number,\n\tarrowWidth: _propTypes2.default.number,\n\tlineStrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes)\n};\n\nEdgeIndicator.defaultProps = {\n\tclassName: \"react-stockcharts-edgeindicator\",\n\n\ttype: \"horizontal\",\n\torient: \"left\",\n\tedgeAt: \"left\",\n\ttextFill: \"#FFFFFF\",\n\tdisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tyAxisPad: 0,\n\trectHeight: 20,\n\trectWidth: 50,\n\tarrowWidth: 10,\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 13,\n\tdx: 0,\n\thideLine: false,\n\tfill: \"#8a8a8a\",\n\topacity: 1,\n\n\tstroke: _utils.noop,\n\tstrokeOpacity: 1,\n\tstrokeWidth: 3,\n\tlineStroke: \"#000000\",\n\tlineOpacity: 0.3,\n\tlineStrokeDasharray: \"ShortDash\"\n};\n\nfunction helper(props, moreProps) {\n\tvar itemType = props.itemType,\n\t yAccessor = props.yAccessor;\n\tvar plotData = moreProps.plotData;\n\n\n\tvar item = itemType === \"first\" ? (0, _utils.first)(plotData, yAccessor) : (0, _utils.last)(plotData, yAccessor);\n\n\t// var currentItem = ChartDataUtil.getCurrentItemForChartNew(currentItems, forChart);\n\tvar edge = (0, _utils.isDefined)(item) ? getEdge(props, moreProps, item) : null;\n\n\treturn edge;\n}\n\nfunction getEdge(props, moreProps, item) {\n\tvar edgeType = props.type,\n\t displayFormat = props.displayFormat,\n\t edgeAt = props.edgeAt,\n\t yAxisPad = props.yAxisPad,\n\t orient = props.orient,\n\t lineStroke = props.lineStroke;\n\tvar yAccessor = props.yAccessor,\n\t fill = props.fill,\n\t textFill = props.textFill,\n\t rectHeight = props.rectHeight,\n\t rectWidth = props.rectWidth,\n\t arrowWidth = props.arrowWidth;\n\tvar fontFamily = props.fontFamily,\n\t fontSize = props.fontSize;\n\tvar stroke = props.stroke;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t xAccessor = moreProps.xAccessor,\n\t width = moreProps.width;\n\n\n\tvar yValue = yAccessor(item),\n\t xValue = xAccessor(item);\n\n\tvar x1 = Math.round(xScale(xValue)),\n\t y1 = Math.round(yScale(yValue));\n\n\tvar left = 0,\n\t right = width;\n\n var edgeX = edgeAt === \"left\" ? left - yAxisPad : right + yAxisPad;\n\n\treturn {\n\t\t// ...props,\n\t\tcoordinate: displayFormat(yValue),\n\t\tshow: true,\n\t\ttype: edgeType,\n\t\torient: orient,\n\t\tedgeAt: edgeX,\n\t\tfill: (0, _utils.functor)(fill)(item),\n\t\tlineStroke: (0, _utils.functor)(lineStroke)(item),\n\t\tstroke: (0, _utils.functor)(stroke)(item),\n\t\tfontFamily: fontFamily, fontSize: fontSize,\n\t\ttextFill: (0, _utils.functor)(textFill)(item),\n\t\trectHeight: rectHeight, rectWidth: rectWidth, arrowWidth: arrowWidth,\n\t\tx1: x1,\n\t\ty1: y1,\n\t\tx2: right,\n\t\ty2: y1\n\t};\n}\n\nexports.default = EdgeIndicator;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _utils = require(\"../utils\");\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CurrentCoordinate = function (_Component) {\n\t_inherits(CurrentCoordinate, _Component);\n\n\tfunction CurrentCoordinate(props) {\n\t\t_classCallCheck(this, CurrentCoordinate);\n\n\t\tvar _this = _possibleConstructorReturn(this, (CurrentCoordinate.__proto__ || Object.getPrototypeOf(CurrentCoordinate)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(CurrentCoordinate, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar circle = helper(this.props, moreProps);\n\t\t\tif (!circle) return null;\n\n\t\t\tctx.fillStyle = circle.fill;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(circle.x, circle.y, circle.r, 0, 2 * Math.PI, false);\n\t\t\tctx.fill();\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar className = this.props.className;\n\n\n\t\t\tvar circle = helper(this.props, moreProps);\n\t\t\tif (!circle) return null;\n\n\t\t\tvar fillColor = circle.fill instanceof Function ? circle.fill(moreProps.currentItem) : circle.fill;\n\n\t\t\treturn _react2.default.createElement(\"circle\", { className: className, cx: circle.x, cy: circle.y, r: circle.r, fill: fillColor });\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn CurrentCoordinate;\n}(_react.Component);\n\nCurrentCoordinate.propTypes = {\n\tyAccessor: _propTypes2.default.func,\n\tr: _propTypes2.default.number.isRequired,\n\tclassName: _propTypes2.default.string\n};\n\nCurrentCoordinate.defaultProps = {\n\tr: 3,\n\tclassName: \"react-stockcharts-current-coordinate\"\n};\n\nfunction helper(props, moreProps) {\n\tvar fill = props.fill,\n\t yAccessor = props.yAccessor,\n\t r = props.r;\n\tvar show = moreProps.show,\n\t xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t currentItem = moreProps.currentItem,\n\t xAccessor = moreProps.xAccessor;\n\n\t// console.log(show);\n\n\tif (!show || (0, _utils.isNotDefined)(currentItem)) return null;\n\n\tvar xValue = xAccessor(currentItem);\n\tvar yValue = yAccessor(currentItem);\n\n\tif ((0, _utils.isNotDefined)(yValue)) return null;\n\n\t// console.log(chartConfig);\n\tvar x = Math.round(xScale(xValue));\n\tvar y = Math.round(yScale(yValue));\n\n\treturn { x: x, y: y, r: r, fill: fill };\n}\n\nexports.default = CurrentCoordinate;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _EdgeCoordinateV = require(\"./EdgeCoordinateV3\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MouseCoordinateX = function (_Component) {\n\t_inherits(MouseCoordinateX, _Component);\n\n\tfunction MouseCoordinateX(props) {\n\t\t_classCallCheck(this, MouseCoordinateX);\n\n\t\tvar _this = _possibleConstructorReturn(this, (MouseCoordinateX.__proto__ || Object.getPrototypeOf(MouseCoordinateX)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(MouseCoordinateX, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar props = helper(this.props, moreProps);\n\t\t\tif ((0, _utils.isNotDefined)(props)) return null;\n\n\t\t\t(0, _EdgeCoordinateV.drawOnCanvas)(ctx, props);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar props = helper(this.props, moreProps);\n\t\t\tif ((0, _utils.isNotDefined)(props)) return null;\n\n\t\t\treturn (0, _EdgeCoordinateV.renderSVG)(props);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tclip: false,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn MouseCoordinateX;\n}(_react.Component);\n\nMouseCoordinateX.propTypes = {\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\tyAxisPad: _propTypes2.default.number,\n\trectWidth: _propTypes2.default.number,\n\trectHeight: _propTypes2.default.number,\n\torient: _propTypes2.default.oneOf([\"bottom\", \"top\", \"left\", \"right\"]),\n\tat: _propTypes2.default.oneOf([\"bottom\", \"top\", \"left\", \"right\"]),\n\tfill: _propTypes2.default.string,\n\topacity: _propTypes2.default.number,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\ttextFill: _propTypes2.default.string,\n\tsnapX: _propTypes2.default.bool\n};\n\nfunction customX(props, moreProps) {\n\tvar xScale = moreProps.xScale,\n\t xAccessor = moreProps.xAccessor,\n\t currentItem = moreProps.currentItem,\n\t mouseXY = moreProps.mouseXY;\n\tvar snapX = props.snapX;\n\n\tvar x = snapX ? xScale(xAccessor(currentItem)) : mouseXY[0];\n\n\tvar displayXAccessor = moreProps.displayXAccessor;\n\tvar displayFormat = props.displayFormat;\n\n\tvar coordinate = snapX ? displayFormat(displayXAccessor(currentItem)) : displayFormat(xScale.invert(x));\n\treturn { x: x, coordinate: coordinate };\n}\n\nMouseCoordinateX.defaultProps = {\n\tyAxisPad: 0,\n\trectWidth: 80,\n\trectHeight: 20,\n\n\t// rectRadius: 5,\n\t// stroke: \"#684F1D\",\n\tstrokeOpacity: 1,\n\tstrokeWidth: 1,\n\n\torient: \"bottom\",\n\tat: \"bottom\",\n\n\tfill: \"#525252\",\n\topacity: 1,\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 13,\n\ttextFill: \"#FFFFFF\",\n\tsnapX: true,\n\tcustomX: customX\n};\n\nfunction helper(props, moreProps) {\n\tvar show = moreProps.show,\n\t currentItem = moreProps.currentItem;\n\tvar height = moreProps.chartConfig.height;\n\n\n\tif ((0, _utils.isNotDefined)(currentItem)) return null;\n\n\tvar customX = props.customX;\n\tvar orient = props.orient,\n\t at = props.at;\n\tvar stroke = props.stroke,\n\t strokeOpacity = props.strokeOpacity,\n\t strokeWidth = props.strokeWidth;\n\tvar rectRadius = props.rectRadius,\n\t rectWidth = props.rectWidth,\n\t rectHeight = props.rectHeight;\n\tvar fill = props.fill,\n\t opacity = props.opacity,\n\t fontFamily = props.fontFamily,\n\t fontSize = props.fontSize,\n\t textFill = props.textFill;\n\n\n\tvar edgeAt = at === \"bottom\" ? height : 0;\n\n\tvar _customX = customX(props, moreProps),\n\t x = _customX.x,\n\t coordinate = _customX.coordinate;\n\n\tvar type = \"vertical\";\n\tvar y1 = 0,\n\t y2 = height;\n\tvar hideLine = true;\n\n\tvar coordinateProps = {\n\t\tcoordinate: coordinate,\n\t\tshow: show,\n\t\ttype: type,\n\t\torient: orient,\n\t\tedgeAt: edgeAt,\n\t\thideLine: hideLine,\n\t\tfill: fill, opacity: opacity, fontFamily: fontFamily, fontSize: fontSize, textFill: textFill,\n\t\tstroke: stroke, strokeOpacity: strokeOpacity, strokeWidth: strokeWidth,\n\t\trectWidth: rectWidth,\n\t\trectHeight: rectHeight,\n\t\trectRadius: rectRadius,\n\t\tarrowWidth: 0,\n\t\tx1: x,\n\t\tx2: x,\n\t\ty1: y1,\n\t\ty2: y2\n\t};\n\treturn coordinateProps;\n}\n\nexports.default = MouseCoordinateX;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = {\n\txPosition: _propTypes2.default.func,\n\tdrawCoordinate: _propTypes2.default.func,\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\tat: _propTypes2.default.oneOf([\"bottom\", \"top\"]),\n\torient: _propTypes2.default.oneOf([\"bottom\", \"top\"]),\n\ttext: _propTypes2.default.shape({\n\t\tfontStyle: _propTypes2.default.string,\n\t\tfontWeight: _propTypes2.default.string,\n\t\tfontFamily: _propTypes2.default.string,\n\t\tfontSize: _propTypes2.default.number,\n\t\tfill: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string])\n\t}),\n\tbg: _propTypes2.default.shape({\n\t\tfill: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n\t\tstroke: _propTypes2.default.string,\n\t\tstrokeWidth: _propTypes2.default.number,\n\t\tpadding: _propTypes2.default.shape({\n\t\t\tleft: _propTypes2.default.number,\n\t\t\tright: _propTypes2.default.number,\n\t\t\ttop: _propTypes2.default.number,\n\t\t\tbottom: _propTypes2.default.number\n\t\t})\n\t}),\n\tdx: _propTypes2.default.number,\n\tdy: _propTypes2.default.number\n};\n\nvar defaultProps = {\n\txPosition: xPosition,\n\tdrawCoordinate: drawCoordinate,\n\tat: \"bottom\",\n\torient: \"bottom\",\n\n\ttext: {\n\t\tfontStyle: \"\",\n\t\tfontWeight: \"\",\n\t\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\t\tfontSize: 13,\n\t\tfill: \"rgb(35, 35, 35)\"\n\t},\n\tbg: {\n\t\tfill: \"rgb(255, 255, 255)\",\n\t\tstroke: \"rgb(35, 35, 35)\",\n\t\tstrokeWidth: 1,\n\t\tpadding: {\n\t\t\tleft: 7,\n\t\t\tright: 7,\n\t\t\ttop: 4,\n\t\t\tbottom: 4\n\t\t}\n\t},\n\tdx: 7,\n\tdy: 7\n};\n\nvar MouseCoordinateXV2 = function (_Component) {\n\t_inherits(MouseCoordinateXV2, _Component);\n\n\tfunction MouseCoordinateXV2(props) {\n\t\t_classCallCheck(this, MouseCoordinateXV2);\n\n\t\tvar _this = _possibleConstructorReturn(this, (MouseCoordinateXV2.__proto__ || Object.getPrototypeOf(MouseCoordinateXV2)).call(this, props));\n\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(MouseCoordinateXV2, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar show = moreProps.show,\n\t\t\t currentItem = moreProps.currentItem;\n\t\t\tvar drawCoordinate = this.props.drawCoordinate;\n\n\n\t\t\tif (show && currentItem != null) {\n\t\t\t\tvar shape = getXCoordinateInfo(ctx, this.props, moreProps);\n\t\t\t\tdrawCoordinate(ctx, shape, this.props, moreProps);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn MouseCoordinateXV2;\n}(_react.Component);\n\nMouseCoordinateXV2.defaultProps = defaultProps;\nMouseCoordinateXV2.propTypes = propTypes;\n\nfunction xPosition(props, moreProps) {\n\tvar currentItem = moreProps.currentItem,\n\t xAccessor = moreProps.xAccessor;\n\n\treturn xAccessor(currentItem);\n}\nfunction getXCoordinateInfo(ctx, props, moreProps) {\n\tvar xPosition = props.xPosition;\n\n\tvar xValue = xPosition(props, moreProps);\n\tvar at = props.at,\n\t displayFormat = props.displayFormat;\n\tvar text = props.text;\n\tvar xScale = moreProps.xScale,\n\t height = moreProps.chartConfig.height;\n\n\tctx.font = text.fontStyle + \" \" + text.fontWeight + \" \" + text.fontSize + \"px \" + text.fontFamily;\n\n\tvar t = displayFormat(xValue);\n\tvar textWidth = ctx.measureText(t).width;\n\n\tvar y = at === \"bottom\" ? height : 0;\n\tvar x = Math.round(xScale(xValue));\n\n\treturn {\n\t\tx: x,\n\t\ty: y,\n\t\ttextWidth: textWidth,\n\t\ttext: t\n\t};\n}\n\nfunction drawCoordinate(ctx, shape, props, moreProps) {\n\tvar x = shape.x,\n\t y = shape.y,\n\t textWidth = shape.textWidth,\n\t text = shape.text;\n\tvar orient = props.orient,\n\t dx = props.dx,\n\t dy = props.dy;\n\tvar _props$bg = props.bg,\n\t padding = _props$bg.padding,\n\t fill = _props$bg.fill,\n\t stroke = _props$bg.stroke,\n\t strokeWidth = _props$bg.strokeWidth,\n\t _props$text = props.text,\n\t fontSize = _props$text.fontSize,\n\t textFill = _props$text.fill;\n\n\n\tctx.textAlign = \"center\";\n\n\tvar sign = orient === \"top\" ? -1 : 1;\n\tvar halfWidth = Math.round(textWidth / 2 + padding.right);\n\tvar height = Math.round(fontSize + padding.top + padding.bottom);\n\n\tctx.strokeStyle = typeof stroke === \"function\" ? stroke(moreProps, ctx) : stroke;\n\tctx.fillStyle = typeof fill === \"function\" ? fill(moreProps, ctx) : fill;\n\tctx.lineWidth = typeof strokeWidth === \"function\" ? strokeWidth(moreProps) : strokeWidth;\n\n\tctx.beginPath();\n\n\tctx.moveTo(x, y);\n\tctx.lineTo(x + dx, y + sign * dy);\n\tctx.lineTo(x + halfWidth, y + sign * dy);\n\tctx.lineTo(x + halfWidth, y + sign * (dy + height));\n\tctx.lineTo(x - halfWidth, y + sign * (dy + height));\n\tctx.lineTo(x - halfWidth, y + sign * dy);\n\tctx.lineTo(x - dx, y + sign * dy);\n\tctx.closePath();\n\tctx.stroke();\n\tctx.fill();\n\n\tctx.beginPath();\n\tctx.fillStyle = typeof textFill === \"function\" ? textFill(moreProps, ctx) : textFill;\n\n\tctx.textBaseline = orient === \"top\" ? \"alphabetic\" : \"hanging\";\n\tvar pad = orient === \"top\" ? padding.bottom : padding.top;\n\n\tctx.fillText(text, x, y + sign * (dy + pad + 2));\n}\n\nexports.default = MouseCoordinateXV2;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _GenericComponent2 = _interopRequireDefault(_GenericComponent);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CrossHairCursor = function (_Component) {\n\t_inherits(CrossHairCursor, _Component);\n\n\tfunction CrossHairCursor(props) {\n\t\t_classCallCheck(this, CrossHairCursor);\n\n\t\tvar _this = _possibleConstructorReturn(this, (CrossHairCursor.__proto__ || Object.getPrototypeOf(CrossHairCursor)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(CrossHairCursor, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar lines = helper(this.props, moreProps);\n\n\t\t\tif ((0, _utils.isDefined)(lines)) {\n\t\t\t\tvar _context = this.context,\n\t\t\t\t margin = _context.margin,\n\t\t\t\t ratio = _context.ratio;\n\n\t\t\t\tvar originX = 0.5 * ratio + margin.left;\n\t\t\t\tvar originY = 0.5 * ratio + margin.top;\n\n\t\t\t\tctx.save();\n\t\t\t\tctx.setTransform(1, 0, 0, 1, 0, 0);\n\t\t\t\tctx.scale(ratio, ratio);\n\n\t\t\t\tctx.translate(originX, originY);\n\n\t\t\t\tlines.forEach(function (line) {\n\t\t\t\t\tvar dashArray = (0, _utils.getStrokeDasharray)(line.strokeDasharray).split(\",\").map(function (d) {\n\t\t\t\t\t\treturn +d;\n\t\t\t\t\t});\n\n\t\t\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(line.stroke, line.opacity);\n\t\t\t\t\tctx.setLineDash(dashArray);\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(line.x1, line.y1);\n\t\t\t\t\tctx.lineTo(line.x2, line.y2);\n\t\t\t\t\tctx.stroke();\n\t\t\t\t});\n\n\t\t\t\tctx.restore();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar className = this.props.className;\n\n\t\t\tvar lines = helper(this.props, moreProps);\n\n\t\t\tif ((0, _utils.isNotDefined)(lines)) return null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: \"react-stockcharts-crosshair \" + className },\n\t\t\t\tlines.map(function (_ref, idx) {\n\t\t\t\t\tvar strokeDasharray = _ref.strokeDasharray,\n\t\t\t\t\t rest = _objectWithoutProperties(_ref, [\"strokeDasharray\"]);\n\n\t\t\t\t\treturn _react2.default.createElement(\"line\", _extends({\n\t\t\t\t\t\tkey: idx,\n\t\t\t\t\t\tstrokeDasharray: (0, _utils.getStrokeDasharray)(strokeDasharray)\n\t\t\t\t\t}, rest));\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tclip: false,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn CrossHairCursor;\n}(_react.Component);\n\nCrossHairCursor.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes)\n};\n\nCrossHairCursor.contextTypes = {\n\tmargin: _propTypes2.default.object.isRequired,\n\tratio: _propTypes2.default.number.isRequired\n\t// xScale for getting update event upon pan end, this is needed to get past the PureComponent shouldComponentUpdate\n\t// xScale: PropTypes.func.isRequired,\n};\n\nfunction customX(props, moreProps) {\n\tvar xScale = moreProps.xScale,\n\t xAccessor = moreProps.xAccessor,\n\t currentItem = moreProps.currentItem,\n\t mouseXY = moreProps.mouseXY;\n\tvar snapX = props.snapX;\n\n\tvar x = snapX ? Math.round(xScale(xAccessor(currentItem))) : mouseXY[0];\n\treturn x;\n}\n\nCrossHairCursor.defaultProps = {\n\tstroke: \"#000000\",\n\topacity: 0.3,\n\tstrokeDasharray: \"ShortDash\",\n\tsnapX: true,\n\tcustomX: customX\n};\n\nfunction helper(props, moreProps) {\n\tvar mouseXY = moreProps.mouseXY,\n\t currentItem = moreProps.currentItem,\n\t show = moreProps.show,\n\t height = moreProps.height,\n\t width = moreProps.width;\n\tvar customX = props.customX,\n\t stroke = props.stroke,\n\t opacity = props.opacity,\n\t strokeDasharray = props.strokeDasharray;\n\n\n\tif (!show || (0, _utils.isNotDefined)(currentItem)) return null;\n\n\tvar line1 = {\n\t\tx1: 0,\n\t\tx2: width,\n\t\ty1: mouseXY[1],\n\t\ty2: mouseXY[1],\n\t\tstroke: stroke, strokeDasharray: strokeDasharray, opacity: opacity\n\t};\n\tvar x = customX(props, moreProps);\n\n\tvar line2 = {\n\t\tx1: x,\n\t\tx2: x,\n\t\ty1: 0,\n\t\ty2: height,\n\t\tstroke: stroke, strokeDasharray: strokeDasharray, opacity: opacity\n\t};\n\treturn [line1, line2];\n}\n\nexports.default = CrossHairCursor;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _EdgeCoordinateV = require(\"./EdgeCoordinateV3\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar PriceCoordinate = function (_Component) {\n\t_inherits(PriceCoordinate, _Component);\n\n\tfunction PriceCoordinate(props) {\n\t\t_classCallCheck(this, PriceCoordinate);\n\n\t\tvar _this = _possibleConstructorReturn(this, (PriceCoordinate.__proto__ || Object.getPrototypeOf(PriceCoordinate)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(PriceCoordinate, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar props = helper(this.props, moreProps);\n\t\t\t(0, _EdgeCoordinateV.drawOnCanvas)(ctx, props);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar props = helper(this.props, moreProps);\n\t\t\treturn (0, _EdgeCoordinateV.renderSVG)(props);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getAxisCanvas,\n\t\t\t\tdrawOn: [\"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn PriceCoordinate;\n}(_react.Component);\n\nPriceCoordinate.propTypes = {\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\tyAxisPad: _propTypes2.default.number,\n\trectWidth: _propTypes2.default.number,\n\trectHeight: _propTypes2.default.number,\n\torient: _propTypes2.default.oneOf([\"bottom\", \"top\", \"left\", \"right\"]),\n\tat: _propTypes2.default.oneOf([\"bottom\", \"top\", \"left\", \"right\"]),\n\tprice: _propTypes2.default.number,\n\tdx: _propTypes2.default.number,\n\tarrowWidth: _propTypes2.default.number,\n\topacity: _propTypes2.default.number,\n\tlineOpacity: _propTypes2.default.number,\n\tlineStroke: _propTypes2.default.string,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tfill: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\tstroke: _propTypes2.default.string,\n\tstrokeOpacity: _propTypes2.default.number,\n\tstrokeWidth: _propTypes2.default.number,\n\ttextFill: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func])\n};\n\nPriceCoordinate.defaultProps = {\n\tyAxisPad: 0,\n\trectWidth: 70,\n\trectHeight: 17,\n\torient: \"left\",\n\tat: \"left\",\n\tprice: 0,\n\tdx: 0,\n\tarrowWidth: 0,\n\tfill: \"#BAB8b8\",\n\topacity: 1,\n\tlineOpacity: 0.2,\n\tlineStroke: \"#000000\",\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 11,\n\ttextFill: \"#FFFFFF\",\n\tstrokeOpacity: 1,\n\tstrokeWidth: 1,\n\tstrokeDasharray: \"Solid\"\n};\n\nfunction helper(props, moreProps) {\n\tvar width = moreProps.width;\n\tvar yScale = moreProps.chartConfig.yScale;\n\n\tvar _yScale$domain = yScale.domain(),\n\t _yScale$domain2 = _slicedToArray(_yScale$domain, 2),\n\t lowerYValue = _yScale$domain2[0],\n\t upperYValue = _yScale$domain2[1];\n\n\tvar price = props.price,\n\t stroke = props.stroke,\n\t strokeDasharray = props.strokeDasharray,\n\t strokeOpacity = props.strokeOpacity,\n\t strokeWidth = props.strokeWidth;\n\tvar orient = props.orient,\n\t at = props.at,\n\t rectWidth = props.rectWidth,\n\t rectHeight = props.rectHeight,\n displayFormat = props.displayFormat,\n text=props.text,\n\t dx = props.dx;\n\tvar fill = props.fill,\n\t opacity = props.opacity,\n\t fontFamily = props.fontFamily,\n\t fontSize = props.fontSize,\n\t textFill = props.textFill,\n\t arrowWidth = props.arrowWidth,\n\t lineOpacity = props.lineOpacity,\n\t lineStroke = props.lineStroke;\n\n\n\tvar x1 = 0,\n\t x2 = width;\n\tvar edgeAt = at === \"right\" ? width : 0;\n\n\tvar type = \"horizontal\";\n\n\tvar y = yScale(price);\n\tvar show = price <= upperYValue && price >= lowerYValue;\n\n //var coordinate = displayFormat(yScale.invert(y));\n var coordinate = text;\n\tvar hideLine = false;\n\n\tvar coordinateProps = {\n\t\tcoordinate: coordinate,\n\t\tshow: show,\n\t\ttype: type,\n\t\torient: orient,\n\t\tedgeAt: edgeAt,\n\t\thideLine: hideLine,\n\t\tlineOpacity: lineOpacity,\n\t\tlineStroke: lineStroke,\n\t\tlineStrokeDasharray: strokeDasharray,\n\t\tstroke: stroke,\n\t\tstrokeOpacity: strokeOpacity,\n\t\tstrokeWidth: strokeWidth,\n\t\tfill: (0, _utils.functor)(fill)(price),\n\t\ttextFill: (0, _utils.functor)(textFill)(price),\n\t\topacity: opacity, fontFamily: fontFamily, fontSize: fontSize,\n\t\trectWidth: rectWidth,\n\t\trectHeight: rectHeight,\n\t\tarrowWidth: arrowWidth,\n\t\tdx: dx,\n\t\tx1: x1,\n\t\tx2: x2,\n\t\ty1: y,\n\t\ty2: y\n\t};\n\treturn coordinateProps;\n}\n\nexports.default = PriceCoordinate;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n// import { map as d3Map } from \"d3-collection\";\n\nexports.discontinuousTimeScaleProviderBuilder = discontinuousTimeScaleProviderBuilder;\n\nvar _d3TimeFormat = require(\"d3-time-format\");\n\nvar _financeDiscontinuousScale = require(\"./financeDiscontinuousScale\");\n\nvar _financeDiscontinuousScale2 = _interopRequireDefault(_financeDiscontinuousScale);\n\nvar _utils = require(\"../utils\");\n\nvar _levels = require(\"./levels\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction evaluateLevel(d, date, i, formatters) {\n\treturn _levels.levelDefinition.map(function (eachLevel, idx) {\n\t\treturn {\n\t\t\tlevel: _levels.levelDefinition.length - idx - 1,\n\t\t\tformat: formatters[eachLevel(d, date, i)]\n\t\t};\n\t}).find(function (l) {\n\t\treturn !!l.format;\n\t});\n}\n\nvar discontinuousIndexCalculator = (0, _utils.slidingWindow)().windowSize(2).undefinedValue(function (d, idx, _ref) {\n\tvar initialIndex = _ref.initialIndex,\n\t formatters = _ref.formatters;\n\n\tvar i = initialIndex;\n\tvar row = {\n\t\tdate: d.getTime(),\n\t\tstartOf30Seconds: false,\n\t\tstartOfMinute: false,\n\t\tstartOf5Minutes: false,\n\t\tstartOf15Minutes: false,\n\t\tstartOf30Minutes: false,\n\t\tstartOfHour: false,\n\t\tstartOfEighthOfADay: false,\n\t\tstartOfQuarterDay: false,\n\t\tstartOfHalfDay: false,\n\t\tstartOfDay: true,\n\t\tstartOfWeek: false,\n\t\tstartOfMonth: false,\n\t\tstartOfQuarter: false,\n\t\tstartOfYear: false\n\t};\n\tvar level = evaluateLevel(row, d, i, formatters);\n\treturn _extends({}, row, { index: i }, level);\n});\n\nvar discontinuousIndexCalculatorLocalTime = discontinuousIndexCalculator.accumulator(function (_ref2, i, idx, _ref3) {\n\tvar _ref4 = _slicedToArray(_ref2, 2),\n\t prevDate = _ref4[0],\n\t nowDate = _ref4[1];\n\n\tvar initialIndex = _ref3.initialIndex,\n\t formatters = _ref3.formatters;\n\n\tvar startOf30Seconds = nowDate.getSeconds() % 30 === 0;\n\n\tvar startOfMinute = nowDate.getMinutes() !== prevDate.getMinutes();\n\tvar startOf5Minutes = startOfMinute && nowDate.getMinutes() % 5 <= prevDate.getMinutes() % 5;\n\tvar startOf15Minutes = startOfMinute && nowDate.getMinutes() % 15 <= prevDate.getMinutes() % 15;\n\tvar startOf30Minutes = startOfMinute && nowDate.getMinutes() % 30 <= prevDate.getMinutes() % 30;\n\n\tvar startOfHour = nowDate.getHours() !== prevDate.getHours();\n\n\tvar startOfEighthOfADay = startOfHour && nowDate.getHours() % 3 === 0;\n\tvar startOfQuarterDay = startOfHour && nowDate.getHours() % 6 === 0;\n\tvar startOfHalfDay = startOfHour && nowDate.getHours() % 12 === 0;\n\n\tvar startOfDay = nowDate.getDay() !== prevDate.getDay();\n\t// According to ISO calendar\n\t// Sunday = 0, Monday = 1, ... Saturday = 6\n\t// day of week of today < day of week of yesterday then today is start of week\n\tvar startOfWeek = nowDate.getDay() < prevDate.getDay();\n\t// month of today != month of yesterday then today is start of month\n\tvar startOfMonth = nowDate.getMonth() !== prevDate.getMonth();\n\t// if start of month and month % 3 === 0 then it is start of quarter\n\tvar startOfQuarter = startOfMonth && nowDate.getMonth() % 3 <= prevDate.getMonth() % 3;\n\t// year of today != year of yesterday then today is start of year\n\tvar startOfYear = nowDate.getFullYear() !== prevDate.getFullYear();\n\n\tvar row = {\n\t\tdate: nowDate.getTime(),\n\t\tstartOf30Seconds: startOf30Seconds,\n\t\tstartOfMinute: startOfMinute,\n\t\tstartOf5Minutes: startOf5Minutes,\n\t\tstartOf15Minutes: startOf15Minutes,\n\t\tstartOf30Minutes: startOf30Minutes,\n\t\tstartOfHour: startOfHour,\n\t\tstartOfEighthOfADay: startOfEighthOfADay,\n\t\tstartOfQuarterDay: startOfQuarterDay,\n\t\tstartOfHalfDay: startOfHalfDay,\n\t\tstartOfDay: startOfDay,\n\t\tstartOfWeek: startOfWeek,\n\t\tstartOfMonth: startOfMonth,\n\t\tstartOfQuarter: startOfQuarter,\n\t\tstartOfYear: startOfYear\n\t};\n\tvar level = evaluateLevel(row, nowDate, i, formatters);\n\tif (level == null) {\n\t\tconsole.log(row);\n\t}\n\treturn _extends({}, row, { index: i + initialIndex }, level);\n});\n\nfunction doStuff(realDateAccessor, inputDateAccessor, initialIndex, formatters) {\n\treturn function (data) {\n\t\tvar dateAccessor = realDateAccessor(inputDateAccessor);\n\t\tvar calculate = discontinuousIndexCalculatorLocalTime.source(dateAccessor).misc({ initialIndex: initialIndex, formatters: formatters });\n\n\t\tvar index = calculate(data).map(function (each) {\n\t\t\tvar format = each.format;\n\n\t\t\treturn {\n\t\t\t\t// ...each,\n\t\t\t\tindex: each.index,\n\t\t\t\tlevel: each.level,\n\t\t\t\tdate: new Date(each.date),\n\t\t\t\tformat: (0, _d3TimeFormat.timeFormat)(format)\n\t\t\t};\n\t\t});\n\t\t/*\n var map = d3Map();\n for (var i = 0; i < data.length - 1; i++) {\n \t\tvar nextDate = dateAccessor(data[i + 1]);\n \tvar nowDate = dateAccessor(data[i]);\n \tvar diff = nextDate - nowDate;\n \t\tif (map.has(diff)) {\n \t\tvar count = parseInt(map.get(diff), 10) + 1;\n \t\tmap.set(diff, count);\n \t} else {\n \t\tmap.set(diff, 1);\n \t}\n }\n \tvar entries = map.entries().sort((a, b) => a.value < b.value);\n \t// For Renko/p&f\n \tvar interval = entries[0].value === 1\n \t? Math.round((dateAccessor(last(data)) - dateAccessor(head(data))) / data.length)\n \t: parseInt(entries[0].key, 10); */\n\n\t\t// return { index, interval };\n\t\treturn { index: index };\n\t};\n}\n\nfunction discontinuousTimeScaleProviderBuilder() {\n\tvar initialIndex = 0,\n\t realDateAccessor = _utils.identity;\n\tvar inputDateAccessor = function inputDateAccessor(d) {\n\t\treturn d.date;\n\t},\n\t indexAccessor = function indexAccessor(d) {\n\t\treturn d.idx;\n\t},\n\t indexMutator = function indexMutator(d, idx) {\n\t\treturn _extends({}, d, { idx: idx });\n\t},\n\t withIndex = void 0;\n\n\tvar currentFormatters = _levels.defaultFormatters;\n\n\t// eslint-disable-next-line prefer-const\n\tvar discontinuousTimeScaleProvider = function discontinuousTimeScaleProvider(data) {\n\t\t/*\n console.warn(\"Are you sure you want to use a discontinuousTimeScale?\"\n \t+ \" Use this only if you have discontinuous data which\"\n \t+ \" needs to be displayed as continuous.\"\n \t+ \" If you have continuous data use a d3 scale like\"\n \t+ \" `d3.scaleTime`\"\n );\n */\n\n\t\tvar index = withIndex;\n\n\t\tif ((0, _utils.isNotDefined)(index)) {\n\t\t\tvar response = doStuff(realDateAccessor, inputDateAccessor, initialIndex, currentFormatters)(data);\n\n\t\t\tindex = response.index;\n\t\t}\n\t\t// console.log(interval, entries[0].key);\n\n\t\tvar inputIndex = index;\n\t\tvar xScale = (0, _financeDiscontinuousScale2.default)(inputIndex);\n\n\t\tvar mergedData = (0, _utils.zipper)().combine(indexMutator);\n\n\t\tvar finalData = mergedData(data, inputIndex);\n\n\t\treturn {\n\t\t\tdata: finalData,\n\t\t\txScale: xScale,\n\t\t\txAccessor: function xAccessor(d) {\n\t\t\t\treturn d && indexAccessor(d).index;\n\t\t\t},\n\t\t\tdisplayXAccessor: realDateAccessor(inputDateAccessor)\n\t\t};\n\t};\n\n\tdiscontinuousTimeScaleProvider.initialIndex = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn initialIndex;\n\t\t}\n\t\tinitialIndex = x;\n\t\treturn discontinuousTimeScaleProvider;\n\t};\n\tdiscontinuousTimeScaleProvider.inputDateAccessor = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn inputDateAccessor;\n\t\t}\n\t\tinputDateAccessor = x;\n\t\treturn discontinuousTimeScaleProvider;\n\t};\n\tdiscontinuousTimeScaleProvider.indexAccessor = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn indexAccessor;\n\t\t}\n\t\tindexAccessor = x;\n\t\treturn discontinuousTimeScaleProvider;\n\t};\n\tdiscontinuousTimeScaleProvider.indexMutator = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn indexMutator;\n\t\t}\n\t\tindexMutator = x;\n\t\treturn discontinuousTimeScaleProvider;\n\t};\n\tdiscontinuousTimeScaleProvider.withIndex = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn withIndex;\n\t\t}\n\t\twithIndex = x;\n\t\treturn discontinuousTimeScaleProvider;\n\t};\n\tdiscontinuousTimeScaleProvider.utc = function () {\n\t\trealDateAccessor = function realDateAccessor(dateAccessor) {\n\t\t\treturn function (d) {\n\t\t\t\tvar date = dateAccessor(d);\n\t\t\t\t// The getTimezoneOffset() method returns the time-zone offset from UTC, in minutes, for the current locale.\n\t\t\t\tvar offsetInMillis = date.getTimezoneOffset() * 60 * 1000;\n\t\t\t\treturn new Date(date.getTime() + offsetInMillis);\n\t\t\t};\n\t\t};\n\t\treturn discontinuousTimeScaleProvider;\n\t};\n\tdiscontinuousTimeScaleProvider.setLocale = function (locale) {\n\t\tvar formatters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\t\tif (locale) {\n\t\t\t(0, _d3TimeFormat.timeFormatDefaultLocale)(locale);\n\t\t}\n\t\tif (formatters) {\n\t\t\tcurrentFormatters = formatters;\n\t\t}\n\t\treturn discontinuousTimeScaleProvider;\n\t};\n\n\tdiscontinuousTimeScaleProvider.indexCalculator = function () {\n\t\treturn doStuff(realDateAccessor, inputDateAccessor, initialIndex, currentFormatters);\n\t};\n\n\treturn discontinuousTimeScaleProvider;\n}\n\n/* discontinuousTimeScaleProvider.utc = function(data,\n\t\tdateAccessor,\n\t\tindexAccessor,\n\t\tindexMutator) {\n\tvar utcDateAccessor = d => {\n\t\tvar date = dateAccessor(d);\n\t\t// The getTimezoneOffset() method returns the time-zone offset from UTC, in minutes, for the current locale.\n\t\tvar offsetInMillis = date.getTimezoneOffset() * 60 * 1000;\n\t\treturn new Date(date.getTime() + offsetInMillis);\n\t};\n\treturn discontinuousTimeScaleProvider(data, utcDateAccessor, indexAccessor, indexMutator);\n};*/\n\nexports.default = discontinuousTimeScaleProviderBuilder();\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _d3Format = require(\"d3-format\");\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MACDTooltip = function (_Component) {\n\t_inherits(MACDTooltip, _Component);\n\n\tfunction MACDTooltip(props) {\n\t\t_classCallCheck(this, MACDTooltip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (MACDTooltip.__proto__ || Object.getPrototypeOf(MACDTooltip)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(MACDTooltip, [{\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t onClick = _props.onClick,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t displayFormat = _props.displayFormat,\n\t\t\t className = _props.className;\n\t\t\tvar _props2 = this.props,\n\t\t\t yAccessor = _props2.yAccessor,\n\t\t\t options = _props2.options,\n\t\t\t appearance = _props2.appearance,\n\t\t\t labelFill = _props2.labelFill;\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\t\t\tvar macdValue = currentItem && yAccessor(currentItem);\n\n\t\t\tvar macd = macdValue && macdValue.macd && displayFormat(macdValue.macd) || \"n/a\";\n\t\t\tvar signal = macdValue && macdValue.signal && displayFormat(macdValue.signal) || \"n/a\";\n\t\t\tvar divergence = macdValue && macdValue.divergence && displayFormat(macdValue.divergence) || \"n/a\";\n\n\t\t\tvar originProp = this.props.origin;\n\n\t\t\tvar origin = (0, _utils.functor)(originProp);\n\n\t\t\tvar _origin = origin(width, height),\n\t\t\t _origin2 = _slicedToArray(_origin, 2),\n\t\t\t x = _origin2[0],\n\t\t\t y = _origin2[1];\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className, transform: \"translate(\" + x + \", \" + y + \")\", onClick: onClick },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 0, y: 0,\n\t\t\t\t\t\tfontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\"MACD (\"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: appearance.stroke.macd },\n\t\t\t\t\t\toptions.slow\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\", \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: appearance.stroke.macd },\n\t\t\t\t\t\toptions.fast\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\"): \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: appearance.stroke.macd },\n\t\t\t\t\t\tmacd\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\" Signal (\"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: appearance.stroke.signal },\n\t\t\t\t\t\toptions.signal\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\"): \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: appearance.stroke.signal },\n\t\t\t\t\t\tsignal\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\" Divergence: \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: appearance.fill.divergence },\n\t\t\t\t\t\tdivergence\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn MACDTooltip;\n}(_react.Component);\n\nMACDTooltip.propTypes = {\n\torigin: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]).isRequired,\n\tclassName: _propTypes2.default.string,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tlabelFill: _propTypes2.default.string,\n\n\tyAccessor: _propTypes2.default.func.isRequired,\n\toptions: _propTypes2.default.shape({\n\t\tslow: _propTypes2.default.number.isRequired,\n\t\tfast: _propTypes2.default.number.isRequired,\n\t\tsignal: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: {\n\t\t\tmacd: _propTypes2.default.string.isRequired,\n\t\t\tsignal: _propTypes2.default.string.isRequired\n\t\t}.isRequired,\n\t\tfill: _propTypes2.default.shape({\n\t\t\tdivergence: _propTypes2.default.string.isRequired\n\t\t}).isRequired\n\t}).isRequired,\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\tdisplayValuesFor: _propTypes2.default.func,\n\tonClick: _propTypes2.default.func\n};\n\nMACDTooltip.defaultProps = {\n\torigin: [0, 0],\n\tdisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\tclassName: \"react-stockcharts-tooltip\"\n};\n\nexports.default = MACDTooltip;\n// export default MACDTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Format = require(\"d3-format\");\n\nvar _d3TimeFormat = require(\"d3-time-format\");\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _utils = require(\"../utils\");\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar OHLCTooltip = function (_Component) {\n\t_inherits(OHLCTooltip, _Component);\n\n\tfunction OHLCTooltip(props) {\n\t\t_classCallCheck(this, OHLCTooltip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (OHLCTooltip.__proto__ || Object.getPrototypeOf(OHLCTooltip)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(OHLCTooltip, [{\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar _props = this.props,\n\t\t\t xDisplayFormat = _props.xDisplayFormat,\n\t\t\t accessor = _props.accessor,\n\t\t\t volumeFormat = _props.volumeFormat,\n\t\t\t ohlcFormat = _props.ohlcFormat,\n\t\t\t percentFormat = _props.percentFormat,\n\t\t\t displayTexts = _props.displayTexts;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\t\t\tvar displayXAccessor = moreProps.displayXAccessor;\n\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\n\t\t\tvar displayDate = void 0,\n\t\t\t open = void 0,\n\t\t\t high = void 0,\n\t\t\t low = void 0,\n\t\t\t close = void 0,\n\t\t\t volume = void 0,\n\t\t\t percent = void 0;\n\t\t\tdisplayDate = open = high = low = close = volume = percent = displayTexts.na;\n\n\t\t\tif ((0, _utils.isDefined)(currentItem) && (0, _utils.isDefined)(accessor(currentItem))) {\n\t\t\t\tvar item = accessor(currentItem);\n\t\t\t\tvolume = (0, _utils.isDefined)(item.volume) ? volumeFormat(item.volume) : displayTexts.na;\n\n\t\t\t\tdisplayDate = xDisplayFormat(displayXAccessor(item));\n\t\t\t\topen = ohlcFormat(item.open);\n\t\t\t\thigh = ohlcFormat(item.high);\n\t\t\t\tlow = ohlcFormat(item.low);\n\t\t\t\tclose = ohlcFormat(item.close);\n\t\t\t\tpercent = percentFormat((item.close - item.open) / item.open);\n\t\t\t}\n\n\t\t\tvar originProp = this.props.origin;\n\n\t\t\tvar origin = (0, _utils.functor)(originProp);\n\n\t\t\tvar _origin = origin(width, height),\n\t\t\t _origin2 = _slicedToArray(_origin, 2),\n\t\t\t x = _origin2[0],\n\t\t\t y = _origin2[1];\n\n\t\t\tvar itemsToDisplay = {\n\t\t\t\tdisplayDate: displayDate,\n\t\t\t\topen: open,\n\t\t\t\thigh: high,\n\t\t\t\tlow: low,\n\t\t\t\tclose: close,\n\t\t\t\tpercent: percent,\n\t\t\t\tvolume: volume,\n\t\t\t\tx: x,\n\t\t\t\ty: y\n\t\t\t};\n\t\t\treturn this.props.children(this.props, moreProps, itemsToDisplay);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn OHLCTooltip;\n}(_react.Component);\n\nOHLCTooltip.propTypes = {\n\tclassName: _propTypes2.default.string,\n\taccessor: _propTypes2.default.func,\n\txDisplayFormat: _propTypes2.default.func,\n\tchildren: _propTypes2.default.func,\n\tvolumeFormat: _propTypes2.default.func,\n\tpercentFormat: _propTypes2.default.func,\n\tohlcFormat: _propTypes2.default.func,\n\torigin: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]),\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tonClick: _propTypes2.default.func,\n\tdisplayValuesFor: _propTypes2.default.func,\n\ttextFill: _propTypes2.default.string,\n\tlabelFill: _propTypes2.default.string,\n\tdisplayTexts: _propTypes2.default.object\n};\n\nvar displayTextsDefault = {\n\td: \"Date: \",\n\to: \" O: \",\n\th: \" H: \",\n\tl: \" L: \",\n\tc: \" C: \",\n\tv: \" Vol: \",\n\tna: \"n/a\"\n};\n\nOHLCTooltip.defaultProps = {\n\taccessor: function accessor(d) {\n\t\treturn {\n\t\t\tdate: d.date,\n\t\t\topen: d.open,\n\t\t\thigh: d.high,\n\t\t\tlow: d.low,\n\t\t\tclose: d.close,\n\t\t\tvolume: d.volume\n\t\t};\n\t},\n\txDisplayFormat: (0, _d3TimeFormat.timeFormat)(\"%Y-%m-%d\"),\n\tvolumeFormat: (0, _d3Format.format)(\".4s\"),\n\tpercentFormat: (0, _d3Format.format)(\".2%\"),\n\tohlcFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\torigin: [0, 0],\n\tchildren: defaultDisplay,\n\tdisplayTexts: displayTextsDefault\n};\n\nfunction defaultDisplay(props, moreProps, itemsToDisplay) {\n\n\t/* eslint-disable */\n\tvar className = props.className,\n\t textFill = props.textFill,\n\t labelFill = props.labelFill,\n\t onClick = props.onClick,\n\t fontFamily = props.fontFamily,\n\t fontSize = props.fontSize,\n\t displayTexts = props.displayTexts;\n\t/* eslint-enable */\n\n\tvar displayDate = itemsToDisplay.displayDate,\n\t open = itemsToDisplay.open,\n\t high = itemsToDisplay.high,\n\t low = itemsToDisplay.low,\n\t close = itemsToDisplay.close,\n\t volume = itemsToDisplay.volume,\n\t x = itemsToDisplay.x,\n\t y = itemsToDisplay.y;\n\n\treturn _react2.default.createElement(\n\t\t\"g\",\n\t\t{\n\t\t\tclassName: \"react-stockcharts-tooltip-hover \" + className,\n\t\t\ttransform: \"translate(\" + x + \", \" + y + \")\",\n\t\t\tonClick: onClick\n\t\t},\n\t\t_react2.default.createElement(\n\t\t\t_ToolTipText2.default,\n\t\t\t{\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\tfontFamily: fontFamily,\n\t\t\t\tfontSize: fontSize\n\t\t\t},\n\t\t\t_react2.default.createElement(\n\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t{\n\t\t\t\t\tfill: labelFill,\n\t\t\t\t\tkey: \"label\",\n\t\t\t\t\tx: 0,\n\t\t\t\t\tdy: \"5\" },\n\t\t\t\tdisplayTexts.d\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t\"tspan\",\n\t\t\t\t{ key: \"value\", fill: textFill },\n\t\t\t\tdisplayDate\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t{ fill: labelFill, key: \"label_O\" },\n\t\t\t\tdisplayTexts.o\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t\"tspan\",\n\t\t\t\t{ key: \"value_O\", fill: textFill },\n\t\t\t\topen\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t{ fill: labelFill, key: \"label_H\" },\n\t\t\t\tdisplayTexts.h\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t\"tspan\",\n\t\t\t\t{ key: \"value_H\", fill: textFill },\n\t\t\t\thigh\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t{ fill: labelFill, key: \"label_L\" },\n\t\t\t\tdisplayTexts.l\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t\"tspan\",\n\t\t\t\t{ key: \"value_L\", fill: textFill },\n\t\t\t\tlow\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t{ fill: labelFill, key: \"label_C\" },\n\t\t\t\tdisplayTexts.c\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t\"tspan\",\n\t\t\t\t{ key: \"value_C\", fill: textFill },\n\t\t\t\tclose\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t{ fill: labelFill, key: \"label_Vol\" },\n\t\t\t\tdisplayTexts.v\n\t\t\t),\n\t\t\t_react2.default.createElement(\n\t\t\t\t\"tspan\",\n\t\t\t\t{ key: \"value_Vol\", fill: textFill },\n\t\t\t\tvolume\n\t\t\t)\n\t\t)\n\t);\n}\n\nexports.default = OHLCTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Format = require(\"d3-format\");\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SingleValueTooltip = function (_Component) {\n\t_inherits(SingleValueTooltip, _Component);\n\n\tfunction SingleValueTooltip(props) {\n\t\t_classCallCheck(this, SingleValueTooltip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (SingleValueTooltip.__proto__ || Object.getPrototypeOf(SingleValueTooltip)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(SingleValueTooltip, [{\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t onClick = _props.onClick,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t labelFill = _props.labelFill,\n\t\t\t valueFill = _props.valueFill,\n\t\t\t className = _props.className;\n\t\t\tvar _props2 = this.props,\n\t\t\t xDisplayFormat = _props2.xDisplayFormat,\n\t\t\t yDisplayFormat = _props2.yDisplayFormat,\n\t\t\t xLabel = _props2.xLabel,\n\t\t\t yLabel = _props2.yLabel,\n\t\t\t xAccessor = _props2.xAccessor,\n\t\t\t yAccessor = _props2.yAccessor;\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\n\t\t\tvar xDisplayValue = (0, _utils.isDefined)(currentItem) && (0, _utils.isDefined)(xAccessor(currentItem)) ? xDisplayFormat(xAccessor(currentItem)) : \"n/a\";\n\t\t\tvar yDisplayValue = (0, _utils.isDefined)(currentItem) && (0, _utils.isDefined)(yAccessor(currentItem)) ? yDisplayFormat(yAccessor(currentItem)) : \"n/a\";\n\n\t\t\tvar originProp = this.props.origin;\n\n\t\t\tvar origin = (0, _utils.functor)(originProp);\n\n\t\t\tvar _origin = origin(width, height),\n\t\t\t _origin2 = _slicedToArray(_origin, 2),\n\t\t\t x = _origin2[0],\n\t\t\t y = _origin2[1];\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className, transform: \"translate(\" + x + \", \" + y + \")\", onClick: onClick },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 0, y: 0,\n\t\t\t\t\t\tfontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t\txLabel ? _react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ x: 0, dy: \"5\", fill: labelFill },\n\t\t\t\t\t\txLabel + \": \"\n\t\t\t\t\t) : null,\n\t\t\t\t\txLabel ? _react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: valueFill },\n\t\t\t\t\t\txDisplayValue + \" \"\n\t\t\t\t\t) : null,\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\tyLabel + \": \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: valueFill },\n\t\t\t\t\t\tyDisplayValue\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn SingleValueTooltip;\n}(_react.Component);\n\nSingleValueTooltip.propTypes = {\n\txDisplayFormat: _propTypes2.default.func,\n\tyDisplayFormat: _propTypes2.default.func.isRequired,\n\txLabel: _propTypes2.default.string,\n\tyLabel: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]).isRequired,\n\tlabelFill: _propTypes2.default.string.isRequired,\n\tvalueFill: _propTypes2.default.string,\n\torigin: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]).isRequired,\n\tclassName: _propTypes2.default.string,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tonClick: _propTypes2.default.func,\n\tdisplayValuesFor: _propTypes2.default.func,\n\txAccessor: _propTypes2.default.func,\n\tyAccessor: _propTypes2.default.func\n};\n\nSingleValueTooltip.defaultProps = {\n\torigin: [0, 0],\n\tlabelFill: \"#4682B4\",\n\tvalueFill: \"#000000\",\n\tyDisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\txAccessor: _utils.noop,\n\tyAccessor: _utils.identity,\n\tclassName: \"react-stockcharts-tooltip\"\n};\n\nexports.default = SingleValueTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Format = require(\"d3-format\");\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SingleMAToolTip = function (_Component) {\n\t_inherits(SingleMAToolTip, _Component);\n\n\tfunction SingleMAToolTip(props) {\n\t\t_classCallCheck(this, SingleMAToolTip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (SingleMAToolTip.__proto__ || Object.getPrototypeOf(SingleMAToolTip)).call(this, props));\n\n\t\t_this.handleClick = _this.handleClick.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(SingleMAToolTip, [{\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(e) {\n\t\t\tvar _props = this.props,\n\t\t\t onClick = _props.onClick,\n\t\t\t forChart = _props.forChart,\n\t\t\t options = _props.options;\n\n\t\t\tonClick(_extends({ chartId: forChart }, options), e);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props2 = this.props,\n\t\t\t textFill = _props2.textFill,\n\t\t\t labelFill = _props2.labelFill;\n\n\t\t\tvar translate = \"translate(\" + this.props.origin[0] + \", \" + this.props.origin[1] + \")\";\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: translate },\n\t\t\t\t_react2.default.createElement(\"line\", { x1: 0, y1: 2, x2: 0, y2: 28, stroke: this.props.color, strokeWidth: \"4px\" }),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 5, y: 11,\n\t\t\t\t\t\tfontFamily: this.props.fontFamily, fontSize: this.props.fontSize },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\tthis.props.displayName\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ x: \"5\", dy: \"15\", fill: textFill },\n\t\t\t\t\t\tthis.props.value\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(\"rect\", { x: 0, y: 0, width: 55, height: 30,\n\t\t\t\t\tonClick: this.handleClick,\n\t\t\t\t\tfill: \"none\", stroke: \"none\" })\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn SingleMAToolTip;\n}(_react.Component);\n\nSingleMAToolTip.propTypes = {\n\torigin: _propTypes2.default.array.isRequired,\n\tcolor: _propTypes2.default.string.isRequired,\n\tdisplayName: _propTypes2.default.string.isRequired,\n\tvalue: _propTypes2.default.string.isRequired,\n\tonClick: _propTypes2.default.func,\n\tfontFamily: _propTypes2.default.string,\n\ttextFill: _propTypes2.default.string,\n\tlabelFill: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tforChart: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,\n\toptions: _propTypes2.default.object.isRequired\n};\n\nvar MovingAverageTooltip = function (_Component2) {\n\t_inherits(MovingAverageTooltip, _Component2);\n\n\tfunction MovingAverageTooltip(props) {\n\t\t_classCallCheck(this, MovingAverageTooltip);\n\n\t\tvar _this2 = _possibleConstructorReturn(this, (MovingAverageTooltip.__proto__ || Object.getPrototypeOf(MovingAverageTooltip)).call(this, props));\n\n\t\t_this2.renderSVG = _this2.renderSVG.bind(_this2);\n\t\treturn _this2;\n\t}\n\n\t_createClass(MovingAverageTooltip, [{\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar chartId = moreProps.chartId;\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\t\t\tvar _props3 = this.props,\n\t\t\t className = _props3.className,\n\t\t\t onClick = _props3.onClick,\n\t\t\t width = _props3.width,\n\t\t\t fontFamily = _props3.fontFamily,\n\t\t\t fontSize = _props3.fontSize,\n\t\t\t textFill = _props3.textFill,\n\t\t\t labelFill = _props3.labelFill;\n\t\t\tvar _props4 = this.props,\n\t\t\t originProp = _props4.origin,\n\t\t\t displayFormat = _props4.displayFormat,\n\t\t\t options = _props4.options;\n\t\t\tvar height = moreProps.chartConfig.height;\n\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\t\t\tvar config = chartConfig;\n\n\t\t\tvar origin = (0, _utils.functor)(originProp);\n\n\t\t\tvar _origin = origin(width, height),\n\t\t\t _origin2 = _slicedToArray(_origin, 2),\n\t\t\t x = _origin2[0],\n\t\t\t y = _origin2[1];\n\n\t\t\tvar _config$origin = _slicedToArray(config.origin, 2),\n\t\t\t ox = _config$origin[0],\n oy = _config$origin[1];\n \n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + (ox + x) + \", \" + (oy + y) + \")\", className: className },\n\t\t\t\toptions.map(function (each, idx) {\n var yValue = currentItem && each.yAccessor(currentItem);\n var tooltipLabel = \"\";\n if(each.label !== undefined)\n tooltipLabel = each.label;\n else\n\t\t\t\t\t tooltipLabel = each.type + \" (\" + each.windowSize + \")\";\n var yDisplayValue = yValue ? displayFormat(yValue) : \"n/a\";\n if(yValue !== undefined)\n\t\t\t\t\treturn _react2.default.createElement(SingleMAToolTip, {\n\t\t\t\t\t\tkey: idx,\n\t\t\t\t\t\torigin: [width * idx, 0],\n\t\t\t\t\t\tcolor: each.stroke,\n\t\t\t\t\t\tdisplayName: tooltipLabel,\n\t\t\t\t\t\tvalue: yDisplayValue,\n\t\t\t\t\t\toptions: each,\n\t\t\t\t\t\tforChart: chartId,\n\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\t\ttextFill: textFill,\n\t\t\t\t\t\tlabelFill: labelFill\n });\n return null;\n\t\t\t\t})\n );\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n });\n\t\t}\n\t}]);\n\n\treturn MovingAverageTooltip;\n}(_react.Component);\n\nMovingAverageTooltip.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\torigin: _propTypes2.default.array.isRequired,\n\tdisplayValuesFor: _propTypes2.default.func,\n\tonClick: _propTypes2.default.func,\n\ttextFill: _propTypes2.default.string,\n\tlabelFill: _propTypes2.default.string,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\twidth: _propTypes2.default.number,\n\toptions: _propTypes2.default.arrayOf(_propTypes2.default.shape({\n\t\tyAccessor: _propTypes2.default.func.isRequired,\n\t\ttype: _propTypes2.default.string.isRequired,\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\twindowSize: _propTypes2.default.number.isRequired,\n\t\techo: _propTypes2.default.any\n\t}))\n};\n\nMovingAverageTooltip.defaultProps = {\n\tclassName: \"react-stockcharts-tooltip react-stockcharts-moving-average-tooltip\",\n\tdisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\torigin: [0, 10],\n\twidth: 65\n};\n\nexports.default = MovingAverageTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Format = require(\"d3-format\");\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _utils = require(\"../utils\");\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BollingerBandTooltip = function (_Component) {\n\t_inherits(BollingerBandTooltip, _Component);\n\n\tfunction BollingerBandTooltip(props) {\n\t\t_classCallCheck(this, BollingerBandTooltip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (BollingerBandTooltip.__proto__ || Object.getPrototypeOf(BollingerBandTooltip)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(BollingerBandTooltip, [{\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t onClick = _props.onClick,\n\t\t\t displayFormat = _props.displayFormat,\n\t\t\t yAccessor = _props.yAccessor,\n\t\t\t options = _props.options,\n\t\t\t textFill = _props.textFill,\n\t\t\t labelFill = _props.labelFill;\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\n\t\t\tvar top = void 0,\n\t\t\t middle = void 0,\n\t\t\t bottom = void 0;\n\t\t\ttop = middle = bottom = \"n/a\";\n\n\t\t\tif ((0, _utils.isDefined)(currentItem) && (0, _utils.isDefined)(yAccessor(currentItem))) {\n\t\t\t\tvar item = yAccessor(currentItem);\n\t\t\t\ttop = displayFormat(item.top);\n\t\t\t\tmiddle = displayFormat(item.middle);\n\t\t\t\tbottom = displayFormat(item.bottom);\n\t\t\t}\n\n\t\t\tvar originProp = this.props.origin;\n\n\t\t\tvar origin = (0, _utils.functor)(originProp);\n\n\t\t\tvar _origin = origin(width, height),\n\t\t\t _origin2 = _slicedToArray(_origin, 2),\n\t\t\t x = _origin2[0],\n\t\t\t y = _origin2[1];\n\n\t\t\tvar sourcePath = options.sourcePath,\n\t\t\t windowSize = options.windowSize,\n\t\t\t multiplier = options.multiplier,\n\t\t\t movingAverageType = options.movingAverageType;\n\n\t\t\tvar tooltipLabel = \"BB(\" + sourcePath + \", \" + windowSize + \", \" + multiplier + \", \" + movingAverageType + \"): \";\n\t\t\tvar tooltipValue = top + \", \" + middle + \", \" + bottom;\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + x + \", \" + y + \")\",\n\t\t\t\t\tclassName: this.props.className, onClick: onClick },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 0, y: 0,\n\t\t\t\t\t\tfontFamily: this.props.fontFamily, fontSize: this.props.fontSize },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\ttooltipLabel\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: textFill },\n\t\t\t\t\t\ttooltipValue\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn BollingerBandTooltip;\n}(_react.Component);\n\nBollingerBandTooltip.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tdisplayValuesFor: _propTypes2.default.func,\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\torigin: _propTypes2.default.array.isRequired,\n\tonClick: _propTypes2.default.func,\n\toptions: _propTypes2.default.shape({\n\t\tsourcePath: _propTypes2.default.string.isRequired,\n\t\twindowSize: _propTypes2.default.number.isRequired,\n\t\tmultiplier: _propTypes2.default.number.isRequired,\n\t\tmovingAverageType: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\ttextFill: _propTypes2.default.string,\n\tlabelFill: _propTypes2.default.string,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number\n};\n\nBollingerBandTooltip.defaultProps = {\n\tclassName: \"react-stockcharts-tooltip react-stockcharts-bollingerband-tooltip\",\n\tdisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\torigin: [0, 10]\n};\n\nexports.default = BollingerBandTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _d3Format = require(\"d3-format\");\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _utils = require(\"../utils\");\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar RSITooltip = function (_Component) {\n\t_inherits(RSITooltip, _Component);\n\n\tfunction RSITooltip(props) {\n\t\t_classCallCheck(this, RSITooltip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (RSITooltip.__proto__ || Object.getPrototypeOf(RSITooltip)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(RSITooltip, [{\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t onClick = _props.onClick,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t yAccessor = _props.yAccessor,\n\t\t\t displayFormat = _props.displayFormat,\n\t\t\t className = _props.className;\n\t\t\tvar _props2 = this.props,\n\t\t\t options = _props2.options,\n\t\t\t labelFill = _props2.labelFill,\n\t\t\t textFill = _props2.textFill;\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\t\t\tvar rsi = (0, _utils.isDefined)(currentItem) && yAccessor(currentItem);\n\t\t\tvar value = rsi && displayFormat(rsi) || \"n/a\";\n\n\t\t\tvar originProp = this.props.origin;\n\n\t\t\tvar origin = (0, _utils.functor)(originProp);\n\n\t\t\tvar _origin = origin(width, height),\n\t\t\t _origin2 = _slicedToArray(_origin, 2),\n\t\t\t x = _origin2[0],\n\t\t\t y = _origin2[1];\n\n\t\t\tvar tooltipLabel = \"RSI (\" + options.windowSize + \"): \";\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className, transform: \"translate(\" + x + \", \" + y + \")\", onClick: onClick },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 0, y: 0,\n\t\t\t\t\t\tfontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\ttooltipLabel\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: textFill },\n\t\t\t\t\t\tvalue\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn RSITooltip;\n}(_react.Component);\n\nRSITooltip.propTypes = {\n\torigin: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]).isRequired,\n\toptions: _propTypes2.default.shape({\n\t\twindowSize: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\tclassName: _propTypes2.default.string,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tonClick: _propTypes2.default.func,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\tdisplayValuesFor: _propTypes2.default.func,\n\ttextFill: _propTypes2.default.string,\n\tlabelFill: _propTypes2.default.string\n};\n\nRSITooltip.defaultProps = {\n\tdisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\torigin: [0, 0],\n\tclassName: \"react-stockcharts-tooltip\"\n};\n\nexports.default = RSITooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _d3Format = require(\"d3-format\");\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _utils = require(\"../utils\");\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StochasticTooltip = function (_Component) {\n\t_inherits(StochasticTooltip, _Component);\n\n\tfunction StochasticTooltip(props) {\n\t\t_classCallCheck(this, StochasticTooltip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (StochasticTooltip.__proto__ || Object.getPrototypeOf(StochasticTooltip)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(StochasticTooltip, [{\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t onClick = _props.onClick,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t yAccessor = _props.yAccessor,\n\t\t\t displayFormat = _props.displayFormat,\n\t\t\t label = _props.label;\n\t\t\tvar _props2 = this.props,\n\t\t\t className = _props2.className,\n\t\t\t options = _props2.options,\n\t\t\t appearance = _props2.appearance,\n\t\t\t labelFill = _props2.labelFill;\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\t\t\tvar stroke = appearance.stroke;\n\n\t\t\tvar stochastic = currentItem && yAccessor(currentItem);\n\n\t\t\tvar K = stochastic && stochastic.K && displayFormat(stochastic.K) || \"n/a\";\n\t\t\tvar D = stochastic && stochastic.D && displayFormat(stochastic.D) || \"n/a\";\n\n\t\t\tvar originProp = this.props.origin;\n\n\t\t\tvar origin = (0, _utils.functor)(originProp);\n\n\t\t\tvar _origin = origin(width, height),\n\t\t\t _origin2 = _slicedToArray(_origin, 2),\n\t\t\t x = _origin2[0],\n\t\t\t y = _origin2[1];\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: className, transform: \"translate(\" + x + \", \" + y + \")\", onClick: onClick },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 0, y: 0, fontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\tlabel + \" %K(\"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: stroke.kLine },\n\t\t\t\t\t\toptions.windowSize + \", \" + options.kWindowSize\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\"): \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: stroke.kLine },\n\t\t\t\t\t\tK\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\" %D (\"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: stroke.dLine },\n\t\t\t\t\t\toptions.dWindowSize\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\t\"): \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: stroke.dLine },\n\t\t\t\t\t\tD\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn StochasticTooltip;\n}(_react.Component);\n\nStochasticTooltip.propTypes = {\n\torigin: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]).isRequired,\n\tclassName: _propTypes2.default.string,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\tlabelFill: _propTypes2.default.string,\n\n\tonClick: _propTypes2.default.func,\n\tyAccessor: _propTypes2.default.func.isRequired,\n\toptions: _propTypes2.default.shape({\n\t\twindowSize: _propTypes2.default.number.isRequired,\n\t\tkWindowSize: _propTypes2.default.number.isRequired,\n\t\tdWindowSize: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: {\n\t\t\tdLine: _propTypes2.default.string.isRequired,\n\t\t\tkLine: _propTypes2.default.string.isRequired\n\t\t}.isRequired\n\t}).isRequired,\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\tdisplayValuesFor: _propTypes2.default.func,\n\tlabel: _propTypes2.default.string.isRequired\n};\n\nStochasticTooltip.defaultProps = {\n\tdisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\torigin: [0, 0],\n\tclassName: \"react-stockcharts-tooltip\",\n\tlabel: \"STO\"\n};\n\nexports.default = StochasticTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericComponent = require(\"../GenericComponent1\");\n\nvar _GenericComponent2 = _interopRequireDefault(_GenericComponent);\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction mobilecheck() {\n var check = false;\n (function(a){if(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);\n return check;\n};\n\nvar HoverTooltip = function (_Component) {\n\t_inherits(HoverTooltip, _Component);\n\n\tfunction HoverTooltip(props) {\n\t\t_classCallCheck(this, HoverTooltip);\n \n\t\tvar _this = _possibleConstructorReturn(this, (HoverTooltip.__proto__ || Object.getPrototypeOf(HoverTooltip)).call(this, props));\n _this.handleHover = _this.handleHover.bind(_this);\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(HoverTooltip, [{\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n if(mobilecheck()){\n return;\n }\n\t\t\tvar pointer = helper(this.props, moreProps, ctx);\n\t\t\tvar height = moreProps.height;\n\n if ((0, _utils.isNotDefined)(pointer)) return null;\n if(this.props.hoveringInteractiveText === false)\n\t\t\t_drawOnCanvas(ctx, this.props, this.context, pointer, height, moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n console.log(\"fffffffff\");\n\t\t\tif (this.state.hover !== moreProps.hovering) {\n if(moreProps.hovering === true){\n //this.props.hovering(true);\n if(mobilecheck())\n this.props.handleSelectAsterisk(this.props);\n }\n\t\t\t}\n\t\t}\n\t},{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\n var hoverHandler = {\n\t\t\t\tonHover: this.handleHover,\n };\n \n\t\t\treturn _react2.default.createElement(_GenericComponent2.default, {\n\t\t\t\tsvgDraw: this.renderSVG,\n canvasDraw: this.drawOnCanvas,\n onHover: this.handleHover,\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\" /* , \"mouseleave\" */]\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar pointer = helper(this.props, moreProps);\n\n\t\t\tif ((0, _utils.isNotDefined)(pointer)) return null;\n\n\t\t\tvar _props = this.props,\n\t\t\t bgFill = _props.bgFill,\n\t\t\t bgOpacity = _props.bgOpacity,\n\t\t\t backgroundShapeSVG = _props.backgroundShapeSVG,\n\t\t\t tooltipSVG = _props.tooltipSVG;\n\t\t\tvar _props2 = this.props,\n\t\t\t bgheight = _props2.bgheight,\n\t\t\t bgwidth = _props2.bgwidth;\n\t\t\tvar height = moreProps.height;\n\t\t\tvar x = pointer.x,\n\t\t\t y = pointer.y,\n\t\t\t content = pointer.content,\n\t\t\t centerX = pointer.centerX,\n\t\t\t pointWidth = pointer.pointWidth,\n\t\t\t bgSize = pointer.bgSize;\n\n\n\t\t\tvar bgShape = (0, _utils.isDefined)(bgwidth) && (0, _utils.isDefined)(bgheight) ? { width: bgwidth, height: bgheight } : bgSize;\n \n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(\"rect\", { x: centerX - pointWidth / 2,\n\t\t\t\t\ty: 0,\n\t\t\t\t\twidth: pointWidth,\n\t\t\t\t\theight: height,\n\t\t\t\t\tfill: bgFill,\n\t\t\t\t\topacity: bgOpacity }),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\t{ className: \"react-stockcharts-tooltip-content\", transform: \"translate(\" + x + \", \" + y + \")\" },\n\t\t\t\t\tbackgroundShapeSVG(this.props, bgShape),\n\t\t\t\t\ttooltipSVG(this.props, content)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn HoverTooltip;\n}(_react.Component);\n\nHoverTooltip.propTypes = {\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\tyAccessor: _propTypes2.default.func,\n\ttooltipSVG: _propTypes2.default.func,\n\tbackgroundShapeSVG: _propTypes2.default.func,\n\tbgwidth: _propTypes2.default.number,\n\tbgheight: _propTypes2.default.number,\n\tbgFill: _propTypes2.default.string.isRequired,\n\tbgOpacity: _propTypes2.default.number.isRequired,\n\ttooltipContent: _propTypes2.default.func.isRequired,\n\torigin: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]).isRequired,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number\n};\n\nHoverTooltip.contextTypes = {\n\tmargin: _propTypes2.default.object.isRequired,\n\tratio: _propTypes2.default.number.isRequired\n};\n\nHoverTooltip.defaultProps = {\n\t// bgwidth: 150,\n\t// bgheight: 50,\n\ttooltipSVG: tooltipSVG,\n\ttooltipCanvas: tooltipCanvas,\n\torigin: origin,\n\tfill: \"#ffffff\",\n\tbgFill: \"#ffffff\",\n\tbgOpacity: 0.5,\n\tstroke: \"#cecece\",\n\tfontFill: \"#000000\",\n\topacity: 0.8,\n\tbackgroundShapeSVG: backgroundShapeSVG,\n\tbackgroundShapeCanvas: backgroundShapeCanvas,\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 12\n};\n\nvar PADDING = 5;\nvar X = 10;\nvar Y = 10;\n\n/* eslint-disable react/prop-types */\nfunction backgroundShapeSVG(_ref, _ref2) {\n\tvar fill = _ref.fill,\n\t stroke = _ref.stroke,\n\t opacity = _ref.opacity;\n\tvar height = _ref2.height,\n\t width = _ref2.width;\n\n\treturn _react2.default.createElement(\"rect\", {\n\t\theight: height,\n\t\twidth: width,\n\t\tfill: fill,\n\t\topacity: opacity,\n\t\tstroke: stroke });\n}\n\nfunction tooltipSVG(_ref3, content) {\n\tvar fontFamily = _ref3.fontFamily,\n\t fontSize = _ref3.fontSize,\n\t fontFill = _ref3.fontFill;\n\n\tvar tspans = [];\n\tvar startY = Y + fontSize * 0.9;\n\n\tfor (var i = 0; i < content.y.length; i++) {\n\t\tvar y = content.y[i];\n\t\tvar textY = startY + fontSize * (i + 1);\n\n\t\ttspans.push(_react2.default.createElement(\n\t\t\t\"tspan\",\n\t\t\t{ key: \"L-\" + i, x: X, y: textY, fill: y.stroke },\n\t\t\ty.label\n\t\t));\n\t\ttspans.push(_react2.default.createElement(\n\t\t\t\"tspan\",\n\t\t\t{ key: i },\n\t\t\t\": \"\n\t\t));\n\t\ttspans.push(_react2.default.createElement(\n\t\t\t\"tspan\",\n\t\t\t{ key: \"V-\" + i },\n\t\t\ty.value\n\t\t));\n\t}\n\treturn _react2.default.createElement(\n\t\t\"text\",\n\t\t{ fontFamily: fontFamily, fontSize: fontSize, fill: fontFill },\n\t\t_react2.default.createElement(\n\t\t\t\"tspan\",\n\t\t\t{ x: X, y: startY },\n\t\t\tcontent.x\n\t\t),\n\t\ttspans\n\t);\n}\n/* eslint-enable react/prop-types */\n\nfunction backgroundShapeCanvas(props, _ref4, ctx) {\n\tvar width = _ref4.width,\n\t height = _ref4.height;\n\tvar fill = props.fill,\n\t stroke = props.stroke,\n opacity = props.opacity;\n \n\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, opacity);\n\tctx.strokeStyle = stroke;\n\tctx.beginPath();\n\tctx.rect(0, 0, width, height);\n\tctx.fill();\n\tctx.stroke();\n}\n\nfunction tooltipCanvas(_ref5, content, ctx) {\n\tvar fontFamily = _ref5.fontFamily,\n\t fontSize = _ref5.fontSize,\n\t fontFill = _ref5.fontFill;\n\n\tvar startY = Y + fontSize * 0.9;\n\tctx.font = fontSize + \"px \" + fontFamily;\n ctx.fillStyle = fontFill;\n\tctx.textAlign = \"left\";\n\tctx.fillText(content.x, X, startY);\n\n\tfor (var i = 0; i < content.y.length; i++) {\n\t\tvar y = content.y[i];\n\t\tvar textY = startY + fontSize * (i + 1);\n\t\tctx.fillStyle = y.stroke || fontFill;\n\t\tctx.fillText(y.label, X, textY);\n\n\t\tctx.fillStyle = fontFill;\n\t\tctx.fillText(\": \" + y.value, X + ctx.measureText(y.label).width, textY);\n\t}\n}\n\nfunction _drawOnCanvas(ctx, props, context, pointer, height) {\n\tvar margin = context.margin,\n\t ratio = context.ratio;\n\tvar bgFill = props.bgFill,\n\t bgOpacity = props.bgOpacity;\n\tvar backgroundShapeCanvas = props.backgroundShapeCanvas,\n\t tooltipCanvas = props.tooltipCanvas;\n\n\n\tvar originX = 0.5 * ratio + margin.left;\n\tvar originY = 0.5 * ratio + margin.top;\n\n\tctx.save();\n\n\tctx.setTransform(1, 0, 0, 1, 0, 0);\n\tctx.scale(ratio, ratio);\n\n\tctx.translate(originX, originY);\n\n\tvar x = pointer.x,\n\t y = pointer.y,\n\t content = pointer.content,\n\t centerX = pointer.centerX,\n\t pointWidth = pointer.pointWidth,\n\t bgSize = pointer.bgSize;\n\n\tctx.fillStyle = (0, _utils.hexToRGBA)(bgFill, bgOpacity);\n\tctx.beginPath();\n\tctx.rect(centerX - pointWidth / 2, 0, pointWidth, height);\n\tctx.fill();\n\n\tctx.translate(x, y);\n\tbackgroundShapeCanvas(props, bgSize, ctx);\n\ttooltipCanvas(props, content, ctx);\n\n\tctx.restore();\n}\n\nfunction calculateTooltipSize(_ref6, content, ctx) {\n\tvar fontFamily = _ref6.fontFamily,\n\t fontSize = _ref6.fontSize,\n\t fontFill = _ref6.fontFill;\n\n\tif ((0, _utils.isNotDefined)(ctx)) {\n\t\tvar canvas = document.createElement(\"canvas\");\n\t\tctx = canvas.getContext(\"2d\");\n\t}\n\n\tctx.font = fontSize + \"px \" + fontFamily;\n\tctx.fillStyle = fontFill;\n\tctx.textAlign = \"left\";\n\n\tvar measureText = function measureText(str) {\n\t\treturn {\n\t\t\twidth: ctx.measureText(str).width,\n\t\t\theight: fontSize\n\t\t};\n\t};\n var removeIndex = []\n\n content.y.map((_ref7, index) => {\n if(_ref7 === undefined)\n {\n removeIndex.push(index);\n //content.y.splice(index, 1);\n }\n })\n for(var i = 0;i < removeIndex.length;i ++){\n content.y.splice(removeIndex[i] - i, 1);\n }\n\tvar _content$y$map$reduce = content.y.map(function (_ref7) {\n\t\tvar label = _ref7.label,\n value = _ref7.value; \n\t\t return measureText(label + \": \" + value);\n\t})\n\t// Sum all y and x sizes (begin with x label size)\n\t.reduce(function (res, size) {\n\t\treturn sumSizes(res, size);\n\t}, measureText(String(content.x))),\n\t width = _content$y$map$reduce.width,\n\t height = _content$y$map$reduce.height;\n\n\treturn {\n\t\twidth: width + 2 * X,\n\t\theight: height + 2 * Y\n\t};\n}\n\nfunction sumSizes() {\n\tfor (var _len = arguments.length, sizes = Array(_len), _key = 0; _key < _len; _key++) {\n\t\tsizes[_key] = arguments[_key];\n\t}\n\n\treturn {\n\t\twidth: Math.max.apply(Math, _toConsumableArray(sizes.map(function (size) {\n\t\t\treturn size.width;\n\t\t}))),\n\t\theight: (0, _d3Array.sum)(sizes, function (d) {\n\t\t\treturn d.height;\n\t\t})\n\t};\n}\n\nfunction normalizeX(x, bgSize, pointWidth, width) {\n\t// return x - bgSize.width - pointWidth / 2 - PADDING * 2 < 0\n\treturn x < width / 2 ? x + pointWidth / 2 + PADDING : x - bgSize.width - pointWidth / 2 - PADDING;\n}\n\nfunction normalizeY(y, bgSize) {\n\treturn y - bgSize.height <= 0 ? y + PADDING : y - bgSize.height - PADDING;\n}\n\nfunction origin(props, moreProps, bgSize, pointWidth) {\n\tvar chartId = props.chartId,\n\t yAccessor = props.yAccessor;\n\tvar mouseXY = moreProps.mouseXY,\n\t xAccessor = moreProps.xAccessor,\n\t currentItem = moreProps.currentItem,\n\t xScale = moreProps.xScale,\n\t chartConfig = moreProps.chartConfig,\n\t width = moreProps.width;\n\n\tvar y = (0, _utils.last)(mouseXY);\n\n\tvar xValue = xAccessor(currentItem);\n\tvar x = Math.round(xScale(xValue));\n\n\tif ((0, _utils.isDefined)(chartId) && (0, _utils.isDefined)(yAccessor) && (0, _utils.isDefined)(chartConfig) && (0, _utils.isDefined)(chartConfig.findIndex)) {\n\t\tvar yValue = yAccessor(currentItem);\n\t\tvar chartIndex = chartConfig.findIndex(function (x) {\n\t\t\treturn x.id === chartId;\n\t\t});\n\n\t\ty = Math.round(chartConfig[chartIndex].yScale(yValue));\n\t}\n\n\tx = normalizeX(x, bgSize, pointWidth, width);\n\ty = normalizeY(y, bgSize);\n\n\treturn [x, y];\n}\n\nfunction helper(props, moreProps, ctx) {\n\tvar show = moreProps.show,\n\t xScale = moreProps.xScale,\n\t currentItem = moreProps.currentItem,\n\t plotData = moreProps.plotData;\n\tvar origin = props.origin,\n tooltipContent = props.tooltipContent,\n tooltipContentForTMTI = props.tooltipContentForTMTI,\n tooltipContentForMACD = props.tooltipContentForMACD,\n tooltipContentForStochastic = props.tooltipContentForStochastic,\n tooltipContentForForceIndex = props.tooltipContentForForceIndex,\n tooltipContentForElderray = props.tooltipContentForElderray,\n tooltipContentForRsiAtr = props.tooltipContentForRsiAtr,\n indicator2 = props.indicator2;\n\tvar xAccessor = moreProps.xAccessor,\n\t displayXAccessor = moreProps.displayXAccessor;\n\n\n\tif (!show || (0, _utils.isNotDefined)(currentItem)) return;\n\n\tvar xValue = xAccessor(currentItem);\n\n if (!show || (0, _utils.isNotDefined)(xValue)) return;\n var content;\n if(moreProps.mouseXY[1] > 500)\n {\n switch(indicator2){\n case 'macd':\n content = tooltipContentForMACD({ currentItem: currentItem, xAccessor: displayXAccessor });\n break;\n case 'tmti':\n content = tooltipContentForTMTI({ currentItem: currentItem, xAccessor: displayXAccessor });\n break;\n case 'rsiatr':\n content = tooltipContentForRsiAtr({ currentItem: currentItem, xAccessor: displayXAccessor });\n break;\n case 'stochastic':\n content = tooltipContentForStochastic({ currentItem: currentItem, xAccessor: displayXAccessor });\n break;\n case 'forceindex':\n content = tooltipContentForForceIndex({ currentItem: currentItem, xAccessor: displayXAccessor });\n break;\n case 'elderray':\n content = tooltipContentForElderray({ currentItem: currentItem, xAccessor: displayXAccessor });\n break;\n } \n }\n else\n content = tooltipContent({ currentItem: currentItem, xAccessor: displayXAccessor });\n\tvar centerX = xScale(xValue);\n\tvar pointWidth = Math.abs(xScale(xAccessor((0, _utils.last)(plotData))) - xScale(xAccessor((0, _utils.first)(plotData)))) / (plotData.length - 1);\n\n\tvar bgSize = calculateTooltipSize(props, content, ctx);\n \n\tvar _origin = origin(props, moreProps, bgSize, pointWidth),\n\t _origin2 = _slicedToArray(_origin, 2),\n\t x = _origin2[0],\n y = _origin2[1];\n \n\treturn { x: x, y: y, content: content, centerX: centerX, pointWidth: pointWidth, bgSize: bgSize };\n}\n\nexports.default = HoverTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Format = require(\"d3-format\");\n\nvar _displayValuesFor = require(\"./displayValuesFor\");\n\nvar _displayValuesFor2 = _interopRequireDefault(_displayValuesFor);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _ToolTipText = require(\"./ToolTipText\");\n\nvar _ToolTipText2 = _interopRequireDefault(_ToolTipText);\n\nvar _ToolTipTSpanLabel = require(\"./ToolTipTSpanLabel\");\n\nvar _ToolTipTSpanLabel2 = _interopRequireDefault(_ToolTipTSpanLabel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar VALID_LAYOUTS = [\"horizontal\", \"horizontalRows\", \"horizontalInline\", \"vertical\", \"verticalRows\"];\n\nvar SingleTooltip = function (_Component) {\n\t_inherits(SingleTooltip, _Component);\n\n\tfunction SingleTooltip(props) {\n\t\t_classCallCheck(this, SingleTooltip);\n\n\t\tvar _this = _possibleConstructorReturn(this, (SingleTooltip.__proto__ || Object.getPrototypeOf(SingleTooltip)).call(this, props));\n\n\t\t_this.handleClick = _this.handleClick.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(SingleTooltip, [{\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(e) {\n\t\t\tvar _props = this.props,\n\t\t\t onClick = _props.onClick,\n\t\t\t forChart = _props.forChart,\n\t\t\t options = _props.options;\n\n\t\t\tonClick(_extends({ chartId: forChart }, options), e);\n\t\t}\n\n\t\t/**\n * Renders the value next to the label.\n */\n\n\t}, {\n\t\tkey: \"renderValueNextToLabel\",\n\t\tvalue: function renderValueNextToLabel() {\n\t\t\tvar _props2 = this.props,\n\t\t\t origin = _props2.origin,\n\t\t\t yLabel = _props2.yLabel,\n\t\t\t yValue = _props2.yValue,\n\t\t\t labelFill = _props2.labelFill,\n\t\t\t valueFill = _props2.valueFill,\n\t\t\t withShape = _props2.withShape,\n\t\t\t fontSize = _props2.fontSize,\n\t\t\t fontFamily = _props2.fontFamily;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + origin[0] + \", \" + origin[1] + \")\", onClick: this.handleClick },\n\t\t\t\twithShape ? _react2.default.createElement(\"rect\", { x: \"0\", y: \"-6\", width: \"6\", height: \"6\", fill: valueFill }) : null,\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: withShape ? 8 : 0, y: 0, fontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\tyLabel,\n\t\t\t\t\t\t\": \"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ fill: valueFill },\n\t\t\t\t\t\tyValue\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t/**\n * Renders the value beneath the label.\n */\n\n\t}, {\n\t\tkey: \"renderValueBeneathToLabel\",\n\t\tvalue: function renderValueBeneathToLabel() {\n\t\t\tvar _props3 = this.props,\n\t\t\t origin = _props3.origin,\n\t\t\t yLabel = _props3.yLabel,\n\t\t\t yValue = _props3.yValue,\n\t\t\t labelFill = _props3.labelFill,\n\t\t\t valueFill = _props3.valueFill,\n\t\t\t withShape = _props3.withShape,\n\t\t\t fontSize = _props3.fontSize,\n\t\t\t fontFamily = _props3.fontFamily;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + origin[0] + \", \" + origin[1] + \")\", onClick: this.handleClick },\n\t\t\t\twithShape ? _react2.default.createElement(\"line\", { x1: 0, y1: 2, x2: 0, y2: 28, stroke: valueFill, strokeWidth: \"4px\" }) : null,\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 5, y: 11, fontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\t\tyLabel\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"tspan\",\n\t\t\t\t\t\t{ x: \"5\", dy: \"15\", fill: valueFill },\n\t\t\t\t\t\tyValue\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t/**\n * Renders the value next to the label.\n * The parent component must have a \"text\"-element.\n */\n\n\t}, {\n\t\tkey: \"renderInline\",\n\t\tvalue: function renderInline() {\n\t\t\tvar _props4 = this.props,\n\t\t\t yLabel = _props4.yLabel,\n\t\t\t yValue = _props4.yValue,\n\t\t\t labelFill = _props4.labelFill,\n\t\t\t valueFill = _props4.valueFill,\n\t\t\t fontSize = _props4.fontSize,\n\t\t\t fontFamily = _props4.fontFamily;\n\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"tspan\",\n\t\t\t\t{ onClick: this.handleClick, fontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t_ToolTipTSpanLabel2.default,\n\t\t\t\t\t{ fill: labelFill },\n\t\t\t\t\tyLabel,\n\t\t\t\t\t\":\\xA0\"\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"tspan\",\n\t\t\t\t\t{ fill: valueFill },\n\t\t\t\t\tyValue,\n\t\t\t\t\t\"\\xA0\\xA0\"\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar layout = this.props.layout;\n\n\t\t\tvar comp = null;\n\n\t\t\tswitch (layout) {\n\t\t\t\tcase \"horizontal\":\n\t\t\t\t\tcomp = this.renderValueNextToLabel();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"horizontalRows\":\n\t\t\t\t\tcomp = this.renderValueBeneathToLabel();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"horizontalInline\":\n\t\t\t\t\tcomp = this.renderInline();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"vertical\":\n\t\t\t\t\tcomp = this.renderValueNextToLabel();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"verticalRows\":\n\t\t\t\t\tcomp = this.renderValueBeneathToLabel();\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tcomp = this.renderValueNextToLabel();\n\t\t\t}\n\n\t\t\treturn comp;\n\t\t}\n\t}]);\n\n\treturn SingleTooltip;\n}(_react.Component);\n\nSingleTooltip.propTypes = {\n\torigin: _propTypes2.default.array.isRequired,\n\tyLabel: _propTypes2.default.string.isRequired,\n\tyValue: _propTypes2.default.string.isRequired,\n\tonClick: _propTypes2.default.func,\n\tfontFamily: _propTypes2.default.string,\n\tlabelFill: _propTypes2.default.string.isRequired,\n\tvalueFill: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number,\n\twithShape: _propTypes2.default.bool,\n\tforChart: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,\n\toptions: _propTypes2.default.object.isRequired,\n\tlayout: _propTypes2.default.oneOf(VALID_LAYOUTS).isRequired\n};\n\nSingleTooltip.defaultProps = {\n\tlabelFill: \"#4682B4\",\n\tvalueFill: \"#000000\",\n\twithShape: false\n};\n\nvar GroupTooltip = function (_Component2) {\n\t_inherits(GroupTooltip, _Component2);\n\n\tfunction GroupTooltip(props) {\n\t\t_classCallCheck(this, GroupTooltip);\n\n\t\tvar _this2 = _possibleConstructorReturn(this, (GroupTooltip.__proto__ || Object.getPrototypeOf(GroupTooltip)).call(this, props));\n\n\t\t_this2.renderSVG = _this2.renderSVG.bind(_this2);\n\t\treturn _this2;\n\t}\n\n\t_createClass(GroupTooltip, [{\n\t\tkey: \"getPosition\",\n\t\tvalue: function getPosition(moreProps) {\n\t\t\tvar position = this.props.position;\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t height = _moreProps$chartConfi.height,\n\t\t\t width = _moreProps$chartConfi.width;\n\n\n\t\t\tvar dx = 20;\n\t\t\tvar dy = 40;\n\t\t\tvar textAnchor = null;\n\t\t\tvar xyPos = null;\n\n\t\t\tif (position !== undefined) {\n\t\t\t\tswitch (position) {\n\t\t\t\t\tcase \"topRight\":\n\t\t\t\t\t\txyPos = [width - dx, null];\n\t\t\t\t\t\ttextAnchor = \"end\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"bottomLeft\":\n\t\t\t\t\t\txyPos = [null, height - dy];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"bottomRight\":\n\t\t\t\t\t\txyPos = [width - dx, height - dy];\n\t\t\t\t\t\ttextAnchor = \"end\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\txyPos = [null, null];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\txyPos = [null, null];\n\t\t\t}\n\n\t\t\treturn { xyPos: xyPos, textAnchor: textAnchor };\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar displayValuesFor = this.props.displayValuesFor;\n\t\t\tvar chartId = moreProps.chartId;\n\t\t\tvar _props5 = this.props,\n\t\t\t className = _props5.className,\n\t\t\t onClick = _props5.onClick,\n\t\t\t width = _props5.width,\n\t\t\t verticalSize = _props5.verticalSize,\n\t\t\t fontFamily = _props5.fontFamily,\n\t\t\t fontSize = _props5.fontSize,\n\t\t\t layout = _props5.layout;\n\t\t\tvar _props6 = this.props,\n\t\t\t origin = _props6.origin,\n\t\t\t displayFormat = _props6.displayFormat,\n\t\t\t options = _props6.options;\n\n\t\t\tvar currentItem = displayValuesFor(this.props, moreProps);\n\n\t\t\tvar _getPosition = this.getPosition(moreProps),\n\t\t\t xyPos = _getPosition.xyPos,\n\t\t\t textAnchor = _getPosition.textAnchor;\n\n\t\t\tvar xPos = xyPos != null && xyPos[0] != null ? xyPos[0] : origin[0];\n\t\t\tvar yPos = xyPos != null && xyPos[1] != null ? xyPos[1] : origin[1];\n\n\t\t\tvar singleTooltip = options.map(function (each, idx) {\n\n\t\t\t\tvar yValue = currentItem && each.yAccessor(currentItem);\n\t\t\t\tvar yDisplayValue = yValue ? displayFormat(yValue) : \"n/a\";\n\n\t\t\t\tvar orig = function orig() {\n\t\t\t\t\tif (layout === \"horizontal\" || layout === \"horizontalRows\") {\n\t\t\t\t\t\treturn [width * idx, 0];\n\t\t\t\t\t}\n\t\t\t\t\tif (layout === \"vertical\") {\n\t\t\t\t\t\treturn [0, verticalSize * idx];\n\t\t\t\t\t}\n\t\t\t\t\tif (layout === \"verticalRows\") {\n\t\t\t\t\t\treturn [0, verticalSize * 2.3 * idx];\n\t\t\t\t\t}\n\t\t\t\t\treturn [0, 0];\n\t\t\t\t};\n\n\t\t\t\treturn _react2.default.createElement(SingleTooltip, {\n\t\t\t\t\tkey: idx,\n\t\t\t\t\tlayout: layout,\n\t\t\t\t\torigin: orig(),\n\t\t\t\t\tyLabel: each.yLabel,\n\t\t\t\t\tyValue: yDisplayValue,\n\t\t\t\t\toptions: each,\n\t\t\t\t\tforChart: chartId,\n\t\t\t\t\tonClick: onClick,\n\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\tlabelFill: each.labelFill,\n\t\t\t\t\tvalueFill: each.valueFill,\n\t\t\t\t\twithShape: each.withShape\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + xPos + \", \" + yPos + \")\", className: className, textAnchor: textAnchor },\n\t\t\t\tlayout === \"horizontalInline\" ? _react2.default.createElement(\n\t\t\t\t\t_ToolTipText2.default,\n\t\t\t\t\t{ x: 0, y: 0, fontFamily: fontFamily, fontSize: fontSize },\n\t\t\t\t\tsingleTooltip\n\t\t\t\t) : singleTooltip\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tdrawOn: [\"mousemove\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn GroupTooltip;\n}(_react.Component);\n\nGroupTooltip.propTypes = {\n\tclassName: _propTypes2.default.string,\n\tlayout: _propTypes2.default.oneOf(VALID_LAYOUTS).isRequired,\n\tposition: _propTypes2.default.oneOf([\"topRight\", \"bottomLeft\", \"bottomRight\"]),\n\tdisplayFormat: _propTypes2.default.func.isRequired,\n\torigin: _propTypes2.default.array.isRequired,\n\tdisplayValuesFor: _propTypes2.default.func,\n\tonClick: _propTypes2.default.func,\n\tfontFamily: _propTypes2.default.string,\n\tfontSize: _propTypes2.default.number,\n\twidth: _propTypes2.default.number, // \"width\" only be used, if layout is \"horizontal\" or \"horizontalRows\".\n\tverticalSize: _propTypes2.default.number, // \"verticalSize\" only be used, if layout is \"vertical\", \"verticalRows\".\n\toptions: _propTypes2.default.arrayOf(_propTypes2.default.shape({\n\t\tyLabel: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]).isRequired,\n\t\tyAccessor: _propTypes2.default.func.isRequired,\n\t\tlabelFill: _propTypes2.default.string,\n\t\tvalueFill: _propTypes2.default.string,\n\t\twithShape: _propTypes2.default.bool // \"withShape\" is ignored, if layout is \"horizontalInline\" or \"vertical\".\n\t}))\n};\n\nGroupTooltip.defaultProps = {\n\tclassName: \"react-stockcharts-tooltip react-stockcharts-group-tooltip\",\n\tlayout: \"horizontal\",\n\tdisplayFormat: (0, _d3Format.format)(\".2f\"),\n\tdisplayValuesFor: _displayValuesFor2.default,\n\torigin: [0, 0],\n\twidth: 60,\n\tverticalSize: 13\n};\n\nexports.default = GroupTooltip;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.ema;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.ema)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.ema = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\", \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"EMA\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.WMA;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar weight = windowSize * (windowSize + 1) / 2;\n\n\t\tvar waverage = (0, _utils.slidingWindow)().windowSize(windowSize).sourcePath(sourcePath).accumulator(function (values) {\n\t\t\tvar total = (0, _d3Array.sum)(values, function (v, i) {\n\t\t\t\treturn (i + 1) * v;\n\t\t\t});\n\t\t\treturn total / weight;\n\t\t});\n\n\t\treturn waverage(data);\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.WMA, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\n TRIMA (Triangular Moving Average).\n\n The Triangular Moving Average can be used like any other Moving Average, to obtain a smoother representation of the underlying data.\n It is important to note that the Triangular Moving Average is typically much smoother than other moving averages.\n\n Triangular moving averages give greater weight to prices at the centre of the chosen period andi it is calculated as double smoothed SMA (simple moving average).\n\n Examples:\n For TimeSerie={a,b,c,d,e,f...} ('a' is the older price)\n\n 1st value for TMA 4-Period is: ((1*a)+(2*b)+(2*c)+(1*d)) / 6\n 2nd value for TMA 4-Period is: ((1*b)+(2*c)+(2*d)+(1*e)) / 6\n\n 1st value for TMA 5-Period is: ((1*a)+(2*b)+(3*c)+(2*d)+(1*e)) / 9\n 2nd value for TMA 5-Period is: ((1*b)+(2*c)+(3*d)+(2*e)+(1*f)) / 9\n\n Using algebra, it can be demonstrated that the TMA is equivalent to\n doing a SMA of a SMA. The following explain the rules:\n\n (1) When the period is even, TMA(x,period)=SMA(SMA(x,period/2),(period/2)+1)\n (2) When the period is odd, TMA(x,period)=SMA(SMA(x,(period+1)/2),(period+1)/2)\n\n In other word:\n (1) A period of 4 becomes TMA(x,4) = SMA( SMA( x, 2), 3 )\n (2) A period of 5 becomes TMA(x,5) = SMA( SMA( x, 3), 3 )\n\n The SMA of a SMA is the algorithm generally found in books.\n*/\n\nexports.default = function () {\n\tvar options = _defaultOptionsForComputation.TMA;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar n = Math.floor(windowSize / 2);\n\t\tvar weight = windowSize % 2 === 0 ? n * (n + 1) : (n + 1) * (n + 1);\n\n\t\tvar triaverage = (0, _utils.slidingWindow)().windowSize(windowSize).sourcePath(sourcePath).accumulator(function (values) {\n\t\t\tvar total = (0, _d3Array.sum)(values, function (v, i) {\n\t\t\t\treturn i < n ? (i + 1) * v : (windowSize - i) * v;\n\t\t\t});\n\t\t\treturn total / weight;\n\t\t});\n\n\t\treturn triaverage(data);\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.TMA, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\nhttps://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/bollingerBands.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2015 Scott Logic Ltd.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexports.default = function () {\n\tvar options = _defaultOptionsForComputation.BollingerBand;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t multiplier = _options.multiplier,\n\t\t movingAverageType = _options.movingAverageType,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar source = (0, _utils.path)(sourcePath);\n\t\tvar meanAlgorithm = movingAverageType === \"ema\" ? (0, _ema2.default)().options({ windowSize: windowSize, sourcePath: sourcePath }) : (0, _utils.slidingWindow)().windowSize(windowSize).accumulator(function (values) {\n\t\t\treturn (0, _d3Array.mean)(values);\n\t\t}).sourcePath(sourcePath);\n\n\t\tvar bollingerBandAlgorithm = (0, _utils.slidingWindow)().windowSize(windowSize).accumulator(function (values) {\n\t\t\tvar avg = (0, _utils.last)(values).mean;\n\t\t\tvar stdDev = (0, _d3Array.deviation)(values, function (each) {\n\t\t\t\treturn source(each.datum);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\ttop: avg + multiplier * stdDev,\n\t\t\t\tmiddle: avg,\n\t\t\t\tbottom: avg - multiplier * stdDev\n\t\t\t};\n\t\t});\n\n\t\tvar zip = (0, _utils.zipper)().combine(function (datum, mean) {\n\t\t\treturn { datum: datum, mean: mean };\n\t\t});\n\n\t\tvar tuples = zip(data, meanAlgorithm(data));\n\t\treturn bollingerBandAlgorithm(tuples);\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.BollingerBand, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _ema = require(\"./ema\");\n\nvar _ema2 = _interopRequireDefault(_ema);\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = function () {\n\n\tvar source = _utils.identity;\n\n\tfunction calculator(data) {\n\t\tvar algorithm = (0, _utils.mappedSlidingWindow)().windowSize(2).undefinedValue(function (_ref) {\n\t\t\tvar open = _ref.open,\n\t\t\t high = _ref.high,\n\t\t\t low = _ref.low,\n\t\t\t close = _ref.close;\n\n\t\t\tclose = (open + high + low + close) / 4;\n\t\t\treturn { open: open, high: high, low: low, close: close };\n\t\t}).accumulator(function (_ref2) {\n\t\t\tvar _ref3 = _slicedToArray(_ref2, 2),\n\t\t\t prev = _ref3[0],\n\t\t\t now = _ref3[1];\n\n\t\t\t// console.log(prev, now);\n\t\t\tvar date = now.date,\n\t\t\t volume = now.volume;\n\n\t\t\tvar close = (now.open + now.high + now.low + now.close) / 4;\n\t\t\tvar open = (prev.open + prev.close) / 2;\n\t\t\tvar high = Math.max(open, now.high, close);\n\t\t\tvar low = Math.min(open, now.low, close);\n\t\t\treturn { date: date, open: open, high: high, low: low, close: close, volume: volume };\n\t\t});\n\n\t\treturn algorithm(data);\n\t}\n\tcalculator.source = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn source;\n\t\t}\n\t\tsource = x;\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.Kagi;\n\tvar dateAccessor = function dateAccessor(d) {\n\t\treturn d.date;\n\t};\n\tvar dateMutator = function dateMutator(d, date) {\n\t\td.date = date;\n\t};\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t reversalType = _options.reversalType,\n\t\t windowSize = _options.windowSize,\n\t\t reversal = _options.reversal,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar source = (0, _utils.path)(sourcePath);\n\t\tvar reversalThreshold = void 0;\n\n\t\tif (reversalType === \"ATR\") {\n\t\t\t// calculateATR(rawData, period);\n\t\t\tvar atrAlgorithm = (0, _atr2.default)().options({ windowSize: windowSize });\n\n\t\t\tvar atrCalculator = (0, _utils.merge)().algorithm(atrAlgorithm).merge(function (d, c) {\n\t\t\t\td[\"atr\" + windowSize] = c;\n\t\t\t});\n\n\t\t\tatrCalculator(data);\n\t\t\treversalThreshold = function reversalThreshold(d) {\n\t\t\t\treturn d[\"atr\" + windowSize];\n\t\t\t};\n\t\t} else {\n\t\t\treversalThreshold = (0, _utils.functor)(reversal);\n\t\t}\n\n\t\tvar kagiData = [];\n\n\t\tvar prevPeak = void 0,\n\t\t prevTrough = void 0,\n\t\t direction = void 0;\n\t\tvar line = {};\n\n\t\tdata.forEach(function (d) {\n\t\t\tif ((0, _utils.isNotDefined)(line.from)) {\n\t\t\t\tdateMutator(line, dateAccessor(d));\n\t\t\t\tline.from = dateAccessor(d);\n\n\t\t\t\tif (!line.open) line.open = d.open;\n\t\t\t\tline.high = d.high;\n\t\t\t\tline.low = d.low;\n\t\t\t\tif (!line.close) line.close = source(d);\n\t\t\t\tline.startOfYear = d.startOfYear;\n\t\t\t\tline.startOfQuarter = d.startOfQuarter;\n\t\t\t\tline.startOfMonth = d.startOfMonth;\n\t\t\t\tline.startOfWeek = d.startOfWeek;\n\t\t\t}\n\n\t\t\tif (!line.startOfYear) {\n\t\t\t\tline.startOfYear = d.startOfYear;\n\t\t\t\tif (line.startOfYear) {\n\t\t\t\t\tline.date = d.date;\n\t\t\t\t\t// line.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!line.startOfQuarter) {\n\t\t\t\tline.startOfQuarter = d.startOfQuarter;\n\t\t\t\tif (line.startOfQuarter && !line.startOfYear) {\n\t\t\t\t\tline.date = d.date;\n\t\t\t\t\t// line.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!line.startOfMonth) {\n\t\t\t\tline.startOfMonth = d.startOfMonth;\n\t\t\t\tif (line.startOfMonth && !line.startOfQuarter) {\n\t\t\t\t\tline.date = d.date;\n\t\t\t\t\t// line.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!line.startOfWeek) {\n\t\t\t\tline.startOfWeek = d.startOfWeek;\n\t\t\t\tif (line.startOfWeek && !line.startOfMonth) {\n\t\t\t\t\tline.date = d.date;\n\t\t\t\t\t// line.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\t\t\tline.volume = (line.volume || 0) + d.volume;\n\t\t\tline.high = Math.max(line.high, d.high);\n\t\t\tline.low = Math.min(line.low, d.low);\n\t\t\tline.to = dateAccessor(d);\n\n\t\t\tvar priceMovement = source(d) - line.close;\n\n\t\t\t// console.log(source(d), priceMovement)\n\t\t\tif (line.close >= line.open /* going up */ && priceMovement > 0 /* and moving in same direction */ || line.close < line.open /* going down */ && priceMovement < 0 /* and moving in same direction */) {\n\t\t\t\tline.close = source(d);\n\t\t\t\tif (prevTrough && line.close < prevTrough) {\n\t\t\t\t\t// going below the prevTrough, so change from yang to yin\n\t\t\t\t\t// A yin line forms when a Kagi line breaks below the prior trough.\n\t\t\t\t\tline.changePoint = prevTrough;\n\t\t\t\t\tif (line.startAs !== \"yin\") {\n\t\t\t\t\t\tline.changeTo = \"yin\";\n\t\t\t\t\t\t// line.startAs = \"yang\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (prevPeak && line.close > prevPeak) {\n\t\t\t\t\t// going above the prevPeak, so change from yin to yang\n\t\t\t\t\t// A yang line forms when a Kagi line breaks above the prior peak\n\t\t\t\t\tline.changePoint = prevPeak;\n\t\t\t\t\tif (line.startAs !== \"yang\") {\n\t\t\t\t\t\tline.changeTo = \"yang\";\n\t\t\t\t\t\t// line.startAs = \"yin\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (line.close >= line.open /* going up */\n\t\t\t&& priceMovement < 0 /* and moving in other direction */\n\t\t\t&& Math.abs(priceMovement) > reversalThreshold(d) /* and the movement is big enough for reversal */ || line.close < line.open /* going down */\n\t\t\t&& priceMovement > 0 /* and moving in other direction */\n\t\t\t&& Math.abs(priceMovement) > reversalThreshold(d) /* and the movement is big enough for reversal */) {\n\t\t\t\t// reverse direction\n\t\t\t\tvar nextLineOpen = line.close;\n\n\t\t\t\tdirection = (line.close - line.open) / Math.abs(line.close - line.open);\n\n\t\t\t\tvar nextChangePoint = void 0,\n\t\t\t\t nextChangeTo = void 0;\n\t\t\t\tif (direction < 0 /* if direction so far has been -ve*/) {\n\t\t\t\t\t\t// compare with line.close becomes prevTrough\n\t\t\t\t\t\tif ((0, _utils.isNotDefined)(prevPeak)) prevPeak = line.open;\n\t\t\t\t\t\tprevTrough = line.close;\n\t\t\t\t\t\tif (source(d) > prevPeak) {\n\t\t\t\t\t\t\tnextChangePoint = prevPeak;\n\t\t\t\t\t\t\tnextChangeTo = \"yang\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\tif ((0, _utils.isNotDefined)(prevTrough)) prevTrough = line.open;\n\t\t\t\t\tprevPeak = line.close;\n\t\t\t\t\tif (source(d) < prevTrough) {\n\t\t\t\t\t\tnextChangePoint = prevTrough;\n\t\t\t\t\t\tnextChangeTo = \"yin\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ((0, _utils.isNotDefined)(line.startAs)) {\n\t\t\t\t\tline.startAs = direction > 0 ? \"yang\" : \"yin\";\n\t\t\t\t}\n\n\t\t\t\tvar startAs = line.changeTo || line.startAs;\n\t\t\t\tline.added = true;\n\t\t\t\tkagiData.push(line);\n\t\t\t\tdirection = -1 * direction; // direction is reversed\n\n\t\t\t\tline = _extends({}, line);\n\t\t\t\tline.open = nextLineOpen;\n\t\t\t\tline.close = source(d);\n\t\t\t\tline.startAs = startAs;\n\t\t\t\tline.changePoint = nextChangePoint;\n\t\t\t\tline.changeTo = nextChangeTo;\n\t\t\t\tline.added = false;\n\t\t\t\tline.from = undefined;\n\t\t\t\tline.volume = 0;\n\t\t\t} else {\n\t\t\t\t// console.log(\"MOVING IN REV DIR BUT..\", line.open, line.close, source(d));\n\t\t\t}\n\t\t\tline.current = source(d);\n\t\t\tvar dir = line.close - line.open;\n\t\t\tdir = dir === 0 ? 1 : dir / Math.abs(dir);\n\t\t\tline.reverseAt = dir > 0 ? line.close - reversalThreshold(d) : line.open - reversalThreshold(d);\n\t\t});\n\t\tif (!line.added) kagiData.push(line);\n\n\t\treturn kagiData;\n\t}\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.Kagi, x);\n\t\treturn calculator;\n\t};\n\tcalculator.dateMutator = function (x) {\n\t\tif (!arguments.length) return dateMutator;\n\t\tdateMutator = x;\n\t\treturn calculator;\n\t};\n\tcalculator.dateAccessor = function (x) {\n\t\tif (!arguments.length) return dateAccessor;\n\t\tdateAccessor = x;\n\t\treturn calculator;\n\t};\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _atr = require(\"./atr\");\n\nvar _atr2 = _interopRequireDefault(_atr);\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\tvar options = _defaultOptionsForComputation.PointAndFigure;\n\tvar dateAccessor = function dateAccessor(d) {\n\t\treturn d.date;\n\t};\n\tvar dateMutator = function dateMutator(d, date) {\n\t\td.date = date;\n\t};\n\n\tfunction calculator(rawData) {\n\t\tvar _options = options,\n\t\t reversal = _options.reversal,\n\t\t boxSize = _options.boxSize,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar source = sourcePath === \"high/low\" ? function (d) {\n\t\t\treturn { high: d.high, low: d.low };\n\t\t} : function (d) {\n\t\t\treturn { high: d.close, low: d.close };\n\t\t};\n\n\t\tvar pricingMethod = source;\n\t\tvar columnData = [];\n\n\t\tvar column = {\n\t\t\tboxes: [],\n\t\t\topen: rawData[0].open\n\t\t},\n\t\t box = createBox(rawData[0], dateAccessor, dateMutator);\n\n\t\tcolumnData.push(column);\n\n\t\trawData.forEach(function (d) {\n\t\t\tcolumn.volume = (column.volume || 0) + d.volume;\n\n\t\t\tif (!box.startOfYear) {\n\t\t\t\tbox.startOfYear = d.startOfYear;\n\t\t\t\tif (box.startOfYear) {\n\t\t\t\t\tdateMutator(box, dateAccessor(d));\n\t\t\t\t\t// box.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!box.startOfYear && !box.startOfQuarter) {\n\t\t\t\tbox.startOfQuarter = d.startOfQuarter;\n\t\t\t\tif (box.startOfQuarter && !box.startOfYear) {\n\t\t\t\t\tdateMutator(box, dateAccessor(d));\n\t\t\t\t\t// box.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!box.startOfQuarter && !box.startOfMonth) {\n\t\t\t\tbox.startOfMonth = d.startOfMonth;\n\t\t\t\tif (box.startOfMonth && !box.startOfQuarter) {\n\t\t\t\t\tdateMutator(box, dateAccessor(d));\n\t\t\t\t\t// box.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!box.startOfMonth && !box.startOfWeek) {\n\t\t\t\tbox.startOfWeek = d.startOfWeek;\n\t\t\t\tif (box.startOfWeek && !box.startOfMonth) {\n\t\t\t\t\tdateMutator(box, dateAccessor(d));\n\t\t\t\t\t// box.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (columnData.length === 1 && column.boxes.length === 0) {\n\t\t\t\tvar upwardMovement = Math.max(pricingMethod(d).high - column.open, 0); // upward movement\n\t\t\t\tvar downwardMovement = Math.abs(Math.min(column.open - pricingMethod(d).low, 0)); // downward movement\n\t\t\t\tcolumn.direction = upwardMovement > downwardMovement ? 1 : -1;\n\t\t\t\tif (boxSize * reversal < upwardMovement || boxSize * reversal < downwardMovement) {\n\t\t\t\t\t// enough movement to trigger a reversal\n\t\t\t\t\tbox.toDate = dateAccessor(d);\n\t\t\t\t\tbox.open = column.open;\n\t\t\t\t\tvar noOfBoxes = column.direction > 0 ? Math.floor(upwardMovement / boxSize) : Math.floor(downwardMovement / boxSize);\n\t\t\t\t\tfor (var i = 0; i < noOfBoxes; i++) {\n\t\t\t\t\t\tbox.close = box.open + column.direction * boxSize;\n\t\t\t\t\t\tvar prevBoxClose = box.close;\n\t\t\t\t\t\tcolumn.boxes.push(box);\n\t\t\t\t\t\tbox = createBox(box, dateAccessor, dateMutator);\n\t\t\t\t\t\t// box = cloneMe(box);\n\t\t\t\t\t\tbox.open = prevBoxClose;\n\t\t\t\t\t}\n\t\t\t\t\tbox.fromDate = dateAccessor(d);\n\t\t\t\t\tbox.date = dateAccessor(d);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// one or more boxes already formed in the current column\n\t\t\t\tvar _upwardMovement = Math.max(pricingMethod(d).high - box.open, 0); // upward movement\n\t\t\t\tvar _downwardMovement = Math.abs(Math.min(pricingMethod(d).low - box.open, 0)); // downward movement\n\n\t\t\t\tif (column.direction > 0 && _upwardMovement > boxSize || /* rising column AND box can be formed */\n\t\t\t\tcolumn.direction < 0 && _downwardMovement > boxSize /* falling column AND box can be formed */) {\n\t\t\t\t\t\t// form another box\n\t\t\t\t\t\tbox.close = box.open + column.direction * boxSize;\n\t\t\t\t\t\tbox.toDate = dateAccessor(d);\n\t\t\t\t\t\tvar _prevBoxClose = box.close;\n\t\t\t\t\t\tcolumn.boxes.push(box);\n\t\t\t\t\t\tbox = createBox(d, dateAccessor, dateMutator);\n\t\t\t\t\t\tbox.open = _prevBoxClose;\n\t\t\t\t\t\tbox.fromDate = dateAccessor(d);\n\t\t\t\t\t\tdateMutator(box, dateAccessor(d));\n\t\t\t\t\t} else if (column.direction > 0 && _downwardMovement > boxSize * reversal || /* rising column and there is downward movement to trigger a reversal */\n\t\t\t\tcolumn.direction < 0 && _upwardMovement > boxSize * reversal /* falling column and there is downward movement to trigger a reversal */) {\n\t\t\t\t\t\t// reversal\n\n\t\t\t\t\t\tbox.open = box.open + -1 * column.direction * boxSize;\n\t\t\t\t\t\tbox.toDate = dateAccessor(d);\n\t\t\t\t\t\t// box.displayDate = d.displayDate;\n\t\t\t\t\t\tdateMutator(box, dateAccessor(d));\n\t\t\t\t\t\t// box.startOfYear = d.startOfYear;\n\t\t\t\t\t\t// box.startOfQuarter = d.startOfQuarter;\n\t\t\t\t\t\t// box.startOfMonth = d.startOfMonth;\n\t\t\t\t\t\t// box.startOfWeek = d.startOfWeek;\n\t\t\t\t\t\t// console.table(column.boxes);\n\t\t\t\t\t\t// var idx = index + 1;\n\t\t\t\t\t\tcolumn = {\n\t\t\t\t\t\t\tboxes: [],\n\t\t\t\t\t\t\tvolume: 0,\n\t\t\t\t\t\t\tdirection: -1 * column.direction\n\t\t\t\t\t\t};\n\t\t\t\t\t\tvar _noOfBoxes = column.direction > 0 ? Math.floor(_upwardMovement / boxSize) : Math.floor(_downwardMovement / boxSize);\n\t\t\t\t\t\tfor (var _i = 0; _i < _noOfBoxes; _i++) {\n\t\t\t\t\t\t\tbox.close = box.open + column.direction * boxSize;\n\t\t\t\t\t\t\tvar _prevBoxClose2 = box.close;\n\t\t\t\t\t\t\tcolumn.boxes.push(box);\n\t\t\t\t\t\t\tbox = createBox(d, dateAccessor, dateMutator);\n\t\t\t\t\t\t\tbox.open = _prevBoxClose2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcolumnData.push(column);\n\t\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tupdateColumns(columnData, dateAccessor, dateMutator);\n\n\t\treturn columnData;\n\t}\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.PointAndFigure, x);\n\t\treturn calculator;\n\t};\n\tcalculator.dateMutator = function (x) {\n\t\tif (!arguments.length) return dateMutator;\n\t\tdateMutator = x;\n\t\treturn calculator;\n\t};\n\tcalculator.dateAccessor = function (x) {\n\t\tif (!arguments.length) return dateAccessor;\n\t\tdateAccessor = x;\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nfunction createBox(d, dateAccessor, dateMutator) {\n\tvar box = {\n\t\topen: d.open,\n\t\tfromDate: dateAccessor(d),\n\t\ttoDate: dateAccessor(d),\n\t\tstartOfYear: d.startOfYear,\n\t\tstartOfQuarter: d.startOfQuarter,\n\t\tstartOfMonth: d.startOfMonth,\n\t\tstartOfWeek: d.startOfWeek\n\t};\n\tdateMutator(box, dateAccessor(d));\n\treturn box;\n}\n\nfunction updateColumns(columnData, dateAccessor, dateMutator) {\n\tcolumnData.forEach(function (d) {\n\t\t// var lastBox = d.boxes[d.boxes.length - 1];\n\n\t\td.startOfYear = false;\n\t\td.startOfQuarter = false;\n\t\td.startOfMonth = false;\n\t\td.startOfWeek = false;\n\n\t\td.boxes.forEach(function (eachBox) {\n\t\t\tif ((0, _utils.isNotDefined)(d.open)) d.open = eachBox.open;\n\t\t\td.close = eachBox.close;\n\t\t\td.high = Math.max(d.open, d.close);\n\t\t\td.low = Math.min(d.open, d.close);\n\n\t\t\tif ((0, _utils.isNotDefined)(d.fromDate)) d.fromDate = eachBox.fromDate;\n\t\t\tif ((0, _utils.isNotDefined)(d.date)) d.date = eachBox.date;\n\t\t\td.toDate = eachBox.toDate;\n\n\t\t\tif (eachBox.startOfYear) {\n\t\t\t\td.startOfYear = d.startOfYear || eachBox.startOfYear;\n\t\t\t\td.startOfQuarter = eachBox.startOfQuarter;\n\t\t\t\td.startOfMonth = eachBox.startOfMonth;\n\t\t\t\td.startOfWeek = eachBox.startOfWeek;\n\n\t\t\t\tdateMutator(d, dateAccessor(eachBox));\n\t\t\t}\n\t\t\tif (d.startOfQuarter !== true && eachBox.startOfQuarter) {\n\t\t\t\td.startOfQuarter = eachBox.startOfQuarter;\n\t\t\t\td.startOfMonth = eachBox.startOfMonth;\n\t\t\t\td.startOfWeek = eachBox.startOfWeek;\n\t\t\t\t// d.displayDate = eachBox.displayDate;\n\t\t\t\tdateMutator(d, dateAccessor(eachBox));\n\t\t\t}\n\t\t\tif (d.startOfMonth !== true && eachBox.startOfMonth) {\n\t\t\t\td.startOfMonth = eachBox.startOfMonth;\n\t\t\t\td.startOfWeek = eachBox.startOfWeek;\n\t\t\t\t// d.displayDate = eachBox.displayDate;\n\t\t\t\tdateMutator(d, dateAccessor(eachBox));\n\t\t\t}\n\t\t\tif (d.startOfWeek !== true && eachBox.startOfWeek) {\n\t\t\t\td.startOfWeek = eachBox.startOfWeek;\n\t\t\t\t// d.displayDate = eachBox.displayDate;\n\t\t\t\tdateMutator(d, dateAccessor(eachBox));\n\t\t\t}\n\t\t});\n\t});\n\n\t// console.table(columnData);\n\t// console.table(rawData);\n\treturn columnData;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\tvar options = _defaultOptionsForComputation.Renko;\n\n\tvar dateAccessor = function dateAccessor(d) {\n\t\treturn d.date;\n\t};\n\tvar dateMutator = function dateMutator(d, date) {\n\t\td.date = date;\n\t};\n\n\tfunction calculator(rawData) {\n\t\tvar _options = options,\n\t\t reversalType = _options.reversalType,\n\t\t fixedBrickSize = _options.fixedBrickSize,\n\t\t sourcePath = _options.sourcePath,\n\t\t windowSize = _options.windowSize;\n\n\n\t\tvar source = sourcePath === \"high/low\" ? function (d) {\n\t\t\treturn { high: d.high, low: d.low };\n\t\t} : function (d) {\n\t\t\treturn { high: d.close, low: d.close };\n\t\t};\n\n\t\tvar pricingMethod = source;\n\t\tvar brickSize = void 0;\n\n\t\tif (reversalType === \"ATR\") {\n\t\t\t// calculateATR(rawData, period);\n\t\t\tvar atrAlgorithm = (0, _atr2.default)().options({ windowSize: windowSize });\n\n\t\t\tvar atrCalculator = (0, _utils.merge)().algorithm(atrAlgorithm).merge(function (d, c) {\n\t\t\t\td[\"atr\" + windowSize] = c;\n\t\t\t});\n\n\t\t\tatrCalculator(rawData);\n\t\t\tbrickSize = function brickSize(d) {\n\t\t\t\treturn d[\"atr\" + windowSize];\n\t\t\t};\n\t\t} else {\n\t\t\tbrickSize = (0, _utils.functor)(fixedBrickSize);\n\t\t}\n\n\t\tvar renkoData = [];\n\n\t\tvar index = 0,\n\t\t prevBrickClose = rawData[index].open,\n\t\t prevBrickOpen = rawData[index].open;\n\t\tvar brick = {},\n\t\t direction = 0;\n\n\t\trawData.forEach(function (d, idx) {\n\t\t\tif ((0, _utils.isNotDefined)(brick.from)) {\n\t\t\t\tbrick.high = d.high;\n\t\t\t\tbrick.low = d.low;\n\t\t\t\tbrick.startOfYear = d.startOfYear;\n\t\t\t\tbrick.startOfQuarter = d.startOfQuarter;\n\t\t\t\tbrick.startOfMonth = d.startOfMonth;\n\t\t\t\tbrick.startOfWeek = d.startOfWeek;\n\n\t\t\t\tbrick.from = idx;\n\t\t\t\tbrick.fromDate = dateAccessor(d);\n\t\t\t\t// indexMutator(brick, index++);\n\t\t\t\tdateMutator(brick, dateAccessor(d));\n\t\t\t}\n\t\t\tbrick.volume = (brick.volume || 0) + d.volume;\n\n\t\t\tvar prevCloseToHigh = prevBrickClose - pricingMethod(d).high,\n\t\t\t prevCloseToLow = prevBrickClose - pricingMethod(d).low,\n\t\t\t prevOpenToHigh = prevBrickOpen - pricingMethod(d).high,\n\t\t\t prevOpenToLow = prevBrickOpen - pricingMethod(d).low,\n\t\t\t priceMovement = Math.min(Math.abs(prevCloseToHigh), Math.abs(prevCloseToLow), Math.abs(prevOpenToHigh), Math.abs(prevOpenToLow));\n\n\t\t\tbrick.high = Math.max(brick.high, d.high);\n\t\t\tbrick.low = Math.min(brick.low, d.low);\n\n\t\t\tif (!brick.startOfYear) {\n\t\t\t\tbrick.startOfYear = d.startOfYear;\n\t\t\t\tif (brick.startOfYear) {\n\t\t\t\t\tdateMutator(brick, dateAccessor(d));\n\t\t\t\t\t// brick.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!brick.startOfQuarter) {\n\t\t\t\tbrick.startOfQuarter = d.startOfQuarter;\n\t\t\t\tif (brick.startOfQuarter && !brick.startOfYear) {\n\t\t\t\t\tdateMutator(brick, dateAccessor(d));\n\t\t\t\t\t// brick.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!brick.startOfMonth) {\n\t\t\t\tbrick.startOfMonth = d.startOfMonth;\n\t\t\t\tif (brick.startOfMonth && !brick.startOfQuarter) {\n\t\t\t\t\tdateMutator(brick, dateAccessor(d));\n\t\t\t\t\t// brick.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!brick.startOfWeek) {\n\t\t\t\tbrick.startOfWeek = d.startOfWeek;\n\t\t\t\tif (brick.startOfWeek && !brick.startOfMonth) {\n\t\t\t\t\tdateMutator(brick, dateAccessor(d));\n\t\t\t\t\t// brick.displayDate = d.displayDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// d.brick = JSON.stringify(brick);\n\t\t\tif (brickSize(d)) {\n\t\t\t\tvar noOfBricks = Math.floor(priceMovement / brickSize(d));\n\n\t\t\t\tbrick.open = Math.abs(prevCloseToHigh) < Math.abs(prevOpenToHigh) || Math.abs(prevCloseToLow) < Math.abs(prevOpenToLow) ? prevBrickClose : prevBrickOpen;\n\n\t\t\t\tif (noOfBricks >= 1) {\n\t\t\t\t\tvar j = 0;\n\t\t\t\t\tfor (j = 0; j < noOfBricks; j++) {\n\t\t\t\t\t\tbrick.close = brick.open < pricingMethod(d).high ?\n\t\t\t\t\t\t// if brick open is less than current price it means it is green/hollow brick\n\t\t\t\t\t\tbrick.open + brickSize(d) : brick.open - brickSize(d);\n\t\t\t\t\t\tdirection = brick.close > brick.open ? 1 : -1;\n\t\t\t\t\t\tbrick.direction = direction;\n\t\t\t\t\t\tbrick.to = idx;\n\t\t\t\t\t\tbrick.toDate = dateAccessor(d);\n\t\t\t\t\t\t// brick.diff = brick.open - brick.close;\n\t\t\t\t\t\t// brick.atr = d.atr;\n\t\t\t\t\t\tbrick.fullyFormed = true;\n\t\t\t\t\t\trenkoData.push(brick);\n\n\t\t\t\t\t\tprevBrickClose = brick.close;\n\t\t\t\t\t\tprevBrickOpen = brick.open;\n\n\t\t\t\t\t\tvar newBrick = {\n\t\t\t\t\t\t\thigh: brick.high,\n\t\t\t\t\t\t\tlow: brick.low,\n\t\t\t\t\t\t\topen: brick.close,\n\t\t\t\t\t\t\tstartOfYear: false,\n\t\t\t\t\t\t\tstartOfMonth: false,\n\t\t\t\t\t\t\tstartOfQuarter: false,\n\t\t\t\t\t\t\tstartOfWeek: false\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbrick = newBrick;\n\t\t\t\t\t\tbrick.from = idx;\n\t\t\t\t\t\tbrick.fromDate = dateAccessor(d);\n\t\t\t\t\t\t// indexMutator(brick, index + j);\n\t\t\t\t\t\tdateMutator(brick, dateAccessor(d));\n\t\t\t\t\t\tbrick.volume = (brick.volume || 0) + d.volume;\n\t\t\t\t\t}\n\t\t\t\t\tindex = index + j - 1;\n\t\t\t\t\tbrick = {};\n\t\t\t\t} else {\n\t\t\t\t\tif (idx === rawData.length - 1) {\n\t\t\t\t\t\tbrick.close = direction > 0 ? pricingMethod(d).high : pricingMethod(d).low;\n\t\t\t\t\t\tbrick.to = idx;\n\t\t\t\t\t\tbrick.toDate = dateAccessor(d);\n\t\t\t\t\t\tdateMutator(brick, dateAccessor(d));\n\t\t\t\t\t\tbrick.fullyFormed = false;\n\t\t\t\t\t\trenkoData.push(brick);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn renkoData;\n\t}\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.Renko, x);\n\t\treturn calculator;\n\t};\n\n\tcalculator.dateMutator = function (x) {\n\t\tif (!arguments.length) return dateMutator;\n\t\tdateMutator = x;\n\t\treturn calculator;\n\t};\n\tcalculator.dateAccessor = function (x) {\n\t\tif (!arguments.length) return dateAccessor;\n\t\tdateAccessor = x;\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _atr = require(\"./atr\");\n\nvar _atr2 = _interopRequireDefault(_atr);\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\nhttps://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/macd.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2015 Scott Logic Ltd.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexports.default = function () {\n\tvar options = _defaultOptionsForComputation.MACD;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t fast = _options.fast,\n\t\t slow = _options.slow,\n\t\t signal = _options.signal,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar fastEMA = (0, _ema2.default)().options({ windowSize: fast, sourcePath: sourcePath });\n\n\t\tvar slowEMA = (0, _ema2.default)().options({ windowSize: slow, sourcePath: sourcePath });\n\n\t\tvar signalEMA = (0, _ema2.default)().options({ windowSize: signal, sourcePath: undefined });\n\n\t\tvar macdCalculator = (0, _utils.zipper)().combine(function (fastEMA, slowEMA) {\n\t\t\treturn (0, _utils.isDefined)(fastEMA) && (0, _utils.isDefined)(slowEMA) ? fastEMA - slowEMA : undefined;\n\t\t});\n\n\t\tvar macdArray = macdCalculator(fastEMA(data), slowEMA(data));\n\n\t\tvar undefinedArray = new Array(slow);\n\t\tvar signalArray = undefinedArray.concat(signalEMA(macdArray.slice(slow)));\n\n\t\tvar zip = (0, _utils.zipper)().combine(function (macd, signal) {\n\t\t\treturn {\n\t\t\t\tmacd: macd,\n\t\t\t\tsignal: signal,\n\t\t\t\tdivergence: (0, _utils.isDefined)(macd) && (0, _utils.isDefined)(signal) ? macd - signal : undefined\n\t\t\t};\n\t\t});\n\n\t\tvar macd = zip(macdArray, signalArray);\n\n\t\treturn macd;\n\t}\n\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t slow = _options2.slow,\n\t\t signal = _options2.signal;\n\n\t\treturn slow + signal - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.MACD, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _ema = require(\"./ema\");\n\nvar _ema2 = _interopRequireDefault(_ema);\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\nhttps://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/relativeStrengthIndex.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2015 Scott Logic Ltd.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.RSI;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar source = (0, _utils.path)(sourcePath);\n\t\tvar prevAvgGain = void 0,\n\t\t prevAvgLoss = void 0;\n\t\tvar rsiAlgorithm = (0, _utils.slidingWindow)().windowSize(windowSize).accumulator(function (values) {\n\n\t\t\tvar avgGain = (0, _utils.isDefined)(prevAvgGain) ? (prevAvgGain * (windowSize - 1) + (0, _utils.last)(values).gain) / windowSize : (0, _d3Array.mean)(values, function (each) {\n\t\t\t\treturn each.gain;\n\t\t\t});\n\n\t\t\tvar avgLoss = (0, _utils.isDefined)(prevAvgLoss) ? (prevAvgLoss * (windowSize - 1) + (0, _utils.last)(values).loss) / windowSize : (0, _d3Array.mean)(values, function (each) {\n\t\t\t\treturn each.loss;\n\t\t\t});\n\n\t\t\tvar relativeStrength = avgGain / avgLoss;\n\t\t\tvar rsi = 100 - 100 / (1 + relativeStrength);\n\n\t\t\tprevAvgGain = avgGain;\n\t\t\tprevAvgLoss = avgLoss;\n\n\t\t\treturn rsi;\n\t\t});\n\n\t\tvar gainsAndLossesCalculator = (0, _utils.slidingWindow)().windowSize(2).undefinedValue(function () {\n\t\t\treturn [0, 0];\n\t\t}).accumulator(function (tuple) {\n\t\t\tvar prev = tuple[0];\n\t\t\tvar now = tuple[1];\n\t\t\tvar change = source(now) - source(prev);\n\t\t\treturn {\n\t\t\t\tgain: Math.max(change, 0),\n\t\t\t\tloss: Math.abs(Math.min(change, 0))\n\t\t\t};\n\t\t});\n\n\t\tvar gainsAndLosses = gainsAndLossesCalculator(data);\n\n\t\tvar rsiData = rsiAlgorithm(gainsAndLosses);\n\n\t\treturn rsiData;\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.RSI, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\nhttps://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/stochasticOscillator.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2015 Scott Logic Ltd.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.FullStochasticOscillator;\n\n\tvar source = function source(d) {\n\t\treturn { open: d.open, high: d.high, low: d.low, close: d.close };\n\t};\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t kWindowSize = _options.kWindowSize,\n\t\t dWindowSize = _options.dWindowSize;\n\n\n\t\tvar high = function high(d) {\n\t\t\treturn source(d).high;\n\t\t},\n\t\t low = function low(d) {\n\t\t\treturn source(d).low;\n\t\t},\n\t\t close = function close(d) {\n\t\t\treturn source(d).close;\n\t\t};\n\n\t\tvar kWindow = (0, _utils.slidingWindow)().windowSize(windowSize).accumulator(function (values) {\n\n\t\t\tvar highestHigh = (0, _d3Array.max)(values, high);\n\t\t\tvar lowestLow = (0, _d3Array.min)(values, low);\n\n\t\t\tvar currentClose = close((0, _utils.last)(values));\n\t\t\tvar k = (currentClose - lowestLow) / (highestHigh - lowestLow) * 100;\n\n\t\t\treturn k;\n\t\t});\n\n\t\tvar kSmoothed = (0, _utils.slidingWindow)().skipInitial(windowSize - 1).windowSize(kWindowSize).accumulator(function (values) {\n\t\t\treturn (0, _d3Array.mean)(values);\n\t\t});\n\n\t\tvar dWindow = (0, _utils.slidingWindow)().skipInitial(windowSize - 1 + kWindowSize - 1).windowSize(dWindowSize).accumulator(function (values) {\n\t\t\treturn (0, _d3Array.mean)(values);\n\t\t});\n\n\t\tvar stoAlgorithm = (0, _utils.zipper)().combine(function (K, D) {\n\t\t\treturn { K: K, D: D };\n\t\t});\n\n\t\tvar kData = kSmoothed(kWindow(data));\n\t\tvar dData = dWindow(kData);\n\n\t\tvar indicatorData = stoAlgorithm(kData, dData);\n\n\t\treturn indicatorData;\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize,\n\t\t kWindowSize = _options2.kWindowSize,\n\t\t dWindowSize = _options2.dWindowSize;\n\n\t\treturn windowSize + kWindowSize + dWindowSize;\n\t};\n\tcalculator.source = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn source;\n\t\t}\n\t\tsource = x;\n\t\treturn calculator;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.FullStochasticOscillator, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\n\tvar underlyingAlgorithm = (0, _forceIndex2.default)();\n\tvar merge = (0, _utils.zipper)().combine(function (force, smoothed) {\n\t\treturn { force: force, smoothed: smoothed };\n\t});\n\n\tvar options = _defaultOptionsForComputation.SmoothedForceIndex;\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t smoothingType = _options.smoothingType,\n\t\t smoothingWindow = _options.smoothingWindow;\n\t\tvar _options2 = options,\n\t\t sourcePath = _options2.sourcePath,\n\t\t volumePath = _options2.volumePath;\n\n\n\t\tvar algo = underlyingAlgorithm.options({ sourcePath: sourcePath, volumePath: volumePath });\n\n\t\tvar force = algo(data);\n\n\t\tvar ma = smoothingType === \"ema\" ? (0, _ema2.default)() : (0, _sma2.default)();\n\t\tvar forceMA = ma.options({\n\t\t\twindowSize: smoothingWindow,\n\t\t\tsourcePath: undefined\n\t\t});\n\n\t\tvar smoothed = forceMA(force);\n\t\treturn merge(force, smoothed);\n\t}\n\n\tcalculator.undefinedLength = function () {\n\t\tvar _options3 = options,\n\t\t smoothingWindow = _options3.smoothingWindow;\n\n\t\treturn underlyingAlgorithm.undefinedLength() + smoothingWindow - 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.SmoothedForceIndex, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _forceIndex = require(\"./forceIndex\");\n\nvar _forceIndex2 = _interopRequireDefault(_forceIndex);\n\nvar _ema = require(\"./ema\");\n\nvar _ema2 = _interopRequireDefault(_ema);\n\nvar _sma = require(\"./sma\");\n\nvar _sma2 = _interopRequireDefault(_sma);\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\nhttps://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/elderRay.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2015 Scott Logic Ltd.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.ElderRay;\n\tvar ohlc = function ohlc(d) {\n\t\treturn { open: d.open, high: d.high, low: d.low, close: d.close };\n\t};\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t windowSize = _options.windowSize,\n\t\t sourcePath = _options.sourcePath,\n\t\t movingAverageType = _options.movingAverageType;\n\n\n\t\tvar meanAlgorithm = movingAverageType === \"ema\" ? (0, _ema2.default)().options({ windowSize: windowSize, sourcePath: sourcePath }) : (0, _utils.slidingWindow)().windowSize(windowSize).accumulator(function (values) {\n\t\t\treturn (0, _d3Array.mean)(values);\n\t\t}).sourcePath(sourcePath);\n\n\t\tvar zip = (0, _utils.zipper)().combine(function (datum, mean) {\n\t\t\tvar bullPower = (0, _utils.isDefined)(mean) ? ohlc(datum).high - mean : undefined;\n\t\t\tvar bearPower = (0, _utils.isDefined)(mean) ? ohlc(datum).low - mean : undefined;\n\t\t\treturn { bullPower: bullPower, bearPower: bearPower };\n\t\t});\n\n\t\tvar newData = zip(data, meanAlgorithm(data));\n\t\treturn newData;\n\t}\n\tcalculator.undefinedLength = function () {\n\t\tvar _options2 = options,\n\t\t windowSize = _options2.windowSize;\n\n\t\treturn windowSize - 1;\n\t};\n\tcalculator.ohlc = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn ohlc;\n\t\t}\n\t\tohlc = x;\n\t\treturn calculator;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.ElderRay, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _d3Array = require(\"d3-array\");\n\nvar _ema = require(\"./ema\");\n\nvar _ema2 = _interopRequireDefault(_ema);\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = function () {\n\n\tvar options = _defaultOptionsForComputation.SAR;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t accelerationFactor = _options.accelerationFactor,\n\t\t maxAccelerationFactor = _options.maxAccelerationFactor;\n\n\n\t\tvar algorithm = (0, _utils.mappedSlidingWindow)().windowSize(2).undefinedValue(function (_ref) {\n\t\t\tvar high = _ref.high,\n\t\t\t low = _ref.low;\n\n\t\t\treturn {\n\t\t\t\trisingSar: low,\n\t\t\t\trisingEp: high,\n\t\t\t\tfallingSar: high,\n\t\t\t\tfallingEp: low,\n\t\t\t\taf: accelerationFactor\n\t\t\t};\n\t\t}).accumulator(function (_ref2) {\n\t\t\tvar _ref3 = _slicedToArray(_ref2, 2),\n\t\t\t prev = _ref3[0],\n\t\t\t now = _ref3[1];\n\n\t\t\tvar _calc = calc(prev, now),\n\t\t\t risingSar = _calc.risingSar,\n\t\t\t fallingSar = _calc.fallingSar,\n\t\t\t risingEp = _calc.risingEp,\n\t\t\t fallingEp = _calc.fallingEp;\n\n\t\t\tif ((0, _utils.isNotDefined)(prev.use) && risingSar > now.low && fallingSar < now.high) {\n\t\t\t\treturn {\n\t\t\t\t\trisingSar: risingSar,\n\t\t\t\t\tfallingSar: fallingSar,\n\t\t\t\t\trisingEp: risingEp,\n\t\t\t\t\tfallingEp: fallingEp\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar use = (0, _utils.isDefined)(prev.use) ? prev.use === \"rising\" ? risingSar > now.low ? \"falling\" : \"rising\" : fallingSar < now.high ? \"rising\" : \"falling\" : risingSar > now.low ? \"falling\" : \"rising\";\n\n\t\t\tvar current = prev.use === use ? {\n\t\t\t\taf: Math.min(maxAccelerationFactor, prev.af + accelerationFactor),\n\t\t\t\tfallingEp: fallingEp,\n\t\t\t\trisingEp: risingEp,\n\t\t\t\tfallingSar: fallingSar,\n\t\t\t\trisingSar: risingSar\n\t\t\t} : {\n\t\t\t\taf: accelerationFactor,\n\t\t\t\tfallingEp: now.low,\n\t\t\t\trisingEp: now.high,\n\t\t\t\tfallingSar: Math.max(prev.risingEp, now.high),\n\t\t\t\trisingSar: Math.min(prev.fallingEp, now.low)\n\t\t\t};\n\n\t\t\tvar date = now.date,\n\t\t\t high = now.high,\n\t\t\t low = now.low;\n\n\t\t\treturn _extends({\n\t\t\t\tdate: date,\n\t\t\t\thigh: high,\n\t\t\t\tlow: low\n\t\t\t}, current, {\n\t\t\t\tuse: use,\n\t\t\t\tsar: use === \"falling\" ? current.fallingSar : current.risingSar\n\t\t\t});\n\t\t});\n\n\t\tvar calculatedData = algorithm(data).map(function (d) {\n\t\t\treturn d.sar;\n\t\t});\n\t\t// console.log(calculatedData);\n\n\t\treturn calculatedData;\n\t}\n\tcalculator.undefinedLength = function () {\n\t\treturn 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.SAR, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n\nfunction calc(prev, now) {\n\tvar risingSar = prev.risingSar + prev.af * (prev.risingEp - prev.risingSar);\n\n\tvar fallingSar = prev.fallingSar - prev.af * (prev.fallingSar - prev.fallingEp);\n\n\tvar risingEp = Math.max(prev.risingEp, now.high);\n\tvar fallingEp = Math.min(prev.fallingEp, now.low);\n\n\treturn {\n\t\trisingSar: risingSar,\n\t\tfallingSar: fallingSar,\n\t\trisingEp: risingEp,\n\t\tfallingEp: fallingEp\n\t};\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = function () {\n\tvar options = _defaultOptionsForComputation.Change;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t basePath = _options.basePath,\n\t\t mainKeys = _options.mainKeys,\n\t\t compareKeys = _options.compareKeys;\n\n\t\tvar base = (0, _utils.path)(basePath);\n\n\t\tvar first = (0, _utils.head)(data);\n\t\tvar b = base(first);\n\n\t\t// eslint-disable-next-line prefer-const\n\t\tvar firsts = {};\n\n\t\tvar compareData = data.map(function (d) {\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\tvar result = {};\n\n\t\t\tmainKeys.forEach(function (key) {\n\t\t\t\tif (_typeof(d[key]) === \"object\") {\n\t\t\t\t\tresult[key] = {};\n\t\t\t\t\tObject.keys(d[key]).forEach(function (subkey) {\n\t\t\t\t\t\tresult[key][subkey] = (d[key][subkey] - b) / b;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tresult[key] = (d[key] - b) / b;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tcompareKeys.forEach(function (key) {\n\t\t\t\tif ((0, _utils.isDefined)(d[key]) && (0, _utils.isNotDefined)(firsts[key])) {\n\t\t\t\t\tfirsts[key] = d[key];\n\t\t\t\t}\n\t\t\t\tif ((0, _utils.isDefined)(d[key]) && (0, _utils.isDefined)(firsts[key])) {\n\t\t\t\t\tresult[key] = (d[key] - firsts[key]) / firsts[key];\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t});\n\t\t// console.log(compareData[20]);\n\t\treturn compareData;\n\t}\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.Change, x);\n\t\treturn calculator;\n\t};\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = function () {\n\tvar options = _defaultOptionsForComputation.Change;\n\n\tfunction calculator(data) {\n\t\tvar _options = options,\n\t\t sourcePath = _options.sourcePath;\n\n\n\t\tvar algo = (0, _utils.slidingWindow)().windowSize(2).sourcePath(sourcePath).accumulator(function (_ref) {\n\t\t\tvar _ref2 = _slicedToArray(_ref, 2),\n\t\t\t prev = _ref2[0],\n\t\t\t curr = _ref2[1];\n\n\t\t\tvar absoluteChange = curr - prev;\n\t\t\tvar percentChange = absoluteChange * 100 / prev;\n\t\t\treturn { absoluteChange: absoluteChange, percentChange: percentChange };\n\t\t});\n\n\t\tvar newData = algo(data);\n\n\t\treturn newData;\n\t}\n\tcalculator.undefinedLength = function () {\n\t\treturn 1;\n\t};\n\tcalculator.options = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn options;\n\t\t}\n\t\toptions = _extends({}, _defaultOptionsForComputation.Change, x);\n\t\treturn calculator;\n\t};\n\n\treturn calculator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForComputation = require(\"./defaultOptionsForComputation\");\n","\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.sma;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.sma)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.sma = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"SMA\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.wma;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.wma)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.wma = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"WMA\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.tma;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.tma)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.tma = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"TMA\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE);\n\n\tvar underlyingAlgorithm = (0, _calculator.bollingerband)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.bollingerBand = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nvar _calculator = require(\"../calculator\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"BollingerBand\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.ha;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.heikinAshi)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\treturn _extends({}, datum, indicator);\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t// rebind(indicator, underlyingAlgorithm, \"windowSize\", \"source\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\");\n\n\treturn indicator;\n};\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"HeikinAshi\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE);\n\n\tvar underlyingAlgorithm = (0, _calculator.kagi)();\n\n\tvar indicator = underlyingAlgorithm;\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"dateAccessor\", \"dateMutator\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"Kagi\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE);\n\n\tvar underlyingAlgorithm = (0, _calculator.pointAndFigure)();\n\n\tvar indicator = underlyingAlgorithm;\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"dateAccessor\", \"dateMutator\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t// rebind(indicator, mergedAlgorithm, \"merge\"/*, \"skipUndefined\"*/);\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"PointAndFigure\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE);\n\n\tvar underlyingAlgorithm = (0, _calculator.renko)();\n\n\tvar indicator = underlyingAlgorithm;\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"dateAccessor\", \"dateMutator\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"Renko\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).fill(_defaultOptionsForAppearance.MACD.fill).stroke(_defaultOptionsForAppearance.MACD.stroke).accessor(function (d) {\n\t\treturn d.macd;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.macd)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.macd = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\", \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nvar _defaultOptionsForAppearance = require(\"./defaultOptionsForAppearance\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"MACD\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.rsi;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.rsi)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.rsi = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\", \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"RSI\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE);\n\n\tvar underlyingAlgorithm = (0, _calculator.atr)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.atr = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"ATR\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE);\n\n\tvar underlyingAlgorithm = (0, _calculator.sto)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.sto = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\", \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"STO\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.forceIndex;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.forceIndex)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.forceIndex = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"ForceIndex\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.sar;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.sar)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.sar = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"undefinedLength\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"SMA\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.elderRay;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.elderRay)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.elderRay = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"ElderRay\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE);\n\n\tvar underlyingAlgorithm = (0, _calculator.change)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.absoluteChange = indicator.absoluteChange;\n\t\tdatum.percentChange = indicator.percentChange;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"Change\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = function () {\n\n\tvar macdSource = void 0,\n\t emaSource = void 0;\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE)\n\t// .stroke(d => stroke[d.elderImpulse])\n\t.stroke(_defaultOptionsForAppearance.ElderImpulse.stroke).fill(undefined);\n\n\tvar underlyingAlgorithm = (0, _utils.slidingWindow)().windowSize(2).undefinedValue(\"neutral\").accumulator(function (_ref) {\n\t\tvar _ref2 = _slicedToArray(_ref, 2),\n\t\t prev = _ref2[0],\n\t\t curr = _ref2[1];\n\n\t\tif ((0, _utils.isNotDefined)(macdSource)) throw new Error(\"macdSource not defined for \" + ALGORITHM_TYPE + \" calculator\");\n\t\tif ((0, _utils.isNotDefined)(emaSource)) throw new Error(\"emaSource not defined for \" + ALGORITHM_TYPE + \" calculator\");\n\n\t\tif ((0, _utils.isDefined)(macdSource(prev)) && (0, _utils.isDefined)(emaSource(prev))) {\n\t\t\tvar prevMACDDivergence = macdSource(prev).divergence;\n\t\t\tvar currMACDDivergence = macdSource(curr).divergence;\n\n\t\t\tvar prevEMA = emaSource(prev);\n\t\t\tvar currEMA = emaSource(curr);\n\n\t\t\tif (currMACDDivergence >= prevMACDDivergence && currEMA >= prevEMA) return \"up\";\n\n\t\t\tif (currMACDDivergence <= prevMACDDivergence && currEMA <= prevEMA) return \"down\";\n\t\t}\n\t\treturn \"neutral\";\n\t});\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.elderImpulse = indicator;\n\t});\n\n\t// eslint-disable-next-line prefer-const\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tvar newData = options.merge ? mergedAlgorithm(data) : underlyingAlgorithm(data);\n\n\t\treturn newData;\n\t};\n\tindicator.macdSource = function (x) {\n\t\tif (!arguments.length) return macdSource;\n\t\tmacdSource = x;\n\t\treturn indicator;\n\t};\n\tindicator.emaSource = function (x) {\n\t\tif (!arguments.length) return emaSource;\n\t\temaSource = x;\n\t\treturn indicator;\n\t};\n\t(0, _utils.rebind)(indicator, base, \"id\", \"echo\", \"type\", \"stroke\");\n\t// rebind(indicator, underlyingAlgorithm, \"windowSize\", \"movingAverageType\", \"multiplier\", \"source\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\", \"skipUndefined\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _defaultOptionsForAppearance = require(\"./defaultOptionsForAppearance\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"ElderImpulse\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nexports.default = function () {\n\n\tvar base = (0, _baseIndicator2.default)().type(ALGORITHM_TYPE).accessor(function (d) {\n\t\treturn d.compare;\n\t});\n\n\tvar underlyingAlgorithm = (0, _calculator.compare)();\n\n\tvar mergedAlgorithm = (0, _utils.merge)().algorithm(underlyingAlgorithm).merge(function (datum, indicator) {\n\t\tdatum.compare = indicator;\n\t});\n\n\tvar indicator = function indicator(data) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { merge: true };\n\n\t\tif (options.merge) {\n\t\t\tif (!base.accessor()) throw new Error(\"Set an accessor to \" + ALGORITHM_TYPE + \" before calculating\");\n\t\t\treturn mergedAlgorithm(data);\n\t\t}\n\t\treturn underlyingAlgorithm(data);\n\t};\n\n\t(0, _utils.rebind)(indicator, base, \"id\", \"accessor\", \"stroke\", \"fill\", \"echo\", \"type\");\n\t(0, _utils.rebind)(indicator, underlyingAlgorithm, \"options\");\n\t(0, _utils.rebind)(indicator, mergedAlgorithm, \"merge\");\n\n\treturn indicator;\n};\n\nvar _utils = require(\"../utils\");\n\nvar _calculator = require(\"../calculator\");\n\nvar _baseIndicator = require(\"./baseIndicator\");\n\nvar _baseIndicator2 = _interopRequireDefault(_baseIndicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ALGORITHM_TYPE = \"Compare\";\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TypeChooser = function (_Component) {\n\t_inherits(TypeChooser, _Component);\n\n\tfunction TypeChooser(props) {\n\t\t_classCallCheck(this, TypeChooser);\n\n\t\tvar _this = _possibleConstructorReturn(this, (TypeChooser.__proto__ || Object.getPrototypeOf(TypeChooser)).call(this, props));\n\n\t\t_this.state = {\n\t\t\ttype: _this.props.type\n\t\t};\n\t\t_this.handleTypeChange = _this.handleTypeChange.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(TypeChooser, [{\n\t\tkey: \"handleTypeChange\",\n\t\tvalue: function handleTypeChange(e) {\n\t\t\t// console.log(e.target.value);\n\t\t\tthis.setState({\n\t\t\t\ttype: e.target.value\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"div\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"label\",\n\t\t\t\t\tnull,\n\t\t\t\t\t\"Type: \"\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"select\",\n\t\t\t\t\t{ name: \"type\", id: \"type\", onChange: this.handleTypeChange, value: this.state.type },\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"option\",\n\t\t\t\t\t\t{ value: \"svg\" },\n\t\t\t\t\t\t\"svg\"\n\t\t\t\t\t),\n\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\"option\",\n\t\t\t\t\t\t{ value: \"hybrid\" },\n\t\t\t\t\t\t\"canvas + svg\"\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\"div\",\n\t\t\t\t\t{ style: this.props.style },\n\t\t\t\t\tthis.props.children(this.state.type)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn TypeChooser;\n}(_react.Component);\n\nTypeChooser.propTypes = {\n\ttype: _propTypes2.default.oneOf([\"svg\", \"hybrid\"]),\n\tchildren: _propTypes2.default.func.isRequired,\n\tstyle: _propTypes2.default.object.isRequired\n};\n\nTypeChooser.defaultProps = {\n\ttype: \"hybrid\",\n\tstyle: {}\n};\n\nexports.default = TypeChooser;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _saveSvgAsPng = require(\"save-svg-as-png\");\n\nvar _saveSvgAsPng2 = _interopRequireDefault(_saveSvgAsPng);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dx = 0;\nvar dy = 0;\n\nvar SaveChartAsImage = {\n\tsave: function save(doc, container, background, cb) {\n\t\t_saveSvgAsPng2.default.svgAsDataUri(container.getElementsByTagName(\"svg\")[0], {}, function (uri) {\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\tvar image = new Image();\n\t\t\timage.onload = function () {\n\n\t\t\t\t// eslint-disable-next-line prefer-const\n\t\t\t\tvar canvas = doc.createElement(\"canvas\");\n\t\t\t\tcanvas.width = image.width;\n\t\t\t\tcanvas.height = image.height;\n\n\t\t\t\t// eslint-disable-next-line prefer-const\n\t\t\t\tvar context = canvas.getContext(\"2d\");\n\n\t\t\t\tif ((0, _utils.isDefined)(background)) {\n\t\t\t\t\tcontext.fillStyle = background;\n\t\t\t\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\t\t\t\t}\n\t\t\t\tvar canvasList = container.getElementsByTagName(\"canvas\");\n\t\t\t\tfor (var i = 0; i < canvasList.length; i++) {\n\t\t\t\t\tvar each = canvasList[i];\n\t\t\t\t\tif ((0, _utils.isDefined)(each)) {\n\t\t\t\t\t\tvar parent = each.parentNode.parentNode.getBoundingClientRect();\n\t\t\t\t\t\tvar rect = each.getBoundingClientRect();\n\t\t\t\t\t\tcontext.drawImage(each, rect.left - parent.left + dx, rect.top - parent.top + dy);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontext.drawImage(image, dx, dy);\n\t\t\t\tcb(canvas.toDataURL(\"image/png\"));\n\t\t\t};\n\t\t\timage.src = uri;\n\t\t});\n\t},\n\tsaveWithWhiteBG: function saveWithWhiteBG(doc, container, cb) {\n\t\treturn this.saveWithBG(doc, container, \"white\", cb);\n\t},\n\tsaveWithDarkBG: function saveWithDarkBG(doc, container, cb) {\n\t\treturn this.saveWithBG(doc, container, \"#303030\", cb);\n\t},\n\tsaveWithBG: function saveWithBG(doc, container, background, cb) {\n\t\treturn this.save(doc, container, background, cb);\n\t},\n\tsaveChartAsImage: function saveChartAsImage(container) {\n\t\tthis.saveWithWhiteBG(document, container, function (src) {\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\ta.setAttribute(\"href\", src);\n\t\t\ta.setAttribute(\"download\", \"Chart.png\");\n\n\t\t\tdocument.body.appendChild(a);\n\t\t\ta.addEventListener(\"click\", function () /* e */{\n\t\t\t\ta.parentNode.removeChild(a);\n\t\t\t});\n\n\t\t\ta.click();\n\t\t});\n\t}\n};\n\nexports.default = SaveChartAsImage;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = fitWidth;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n// import ReactDOM from \"react-dom\";\n\nfunction getDisplayName(Series) {\n\tvar name = Series.displayName || Series.name || \"Series\";\n\treturn name;\n}\n\nfunction fitWidth(WrappedComponent) {\n\tvar withRef = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\tvar minWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;\n\n\tvar ResponsiveComponent = function (_Component) {\n\t\t_inherits(ResponsiveComponent, _Component);\n\n\t\tfunction ResponsiveComponent(props) {\n\t\t\t_classCallCheck(this, ResponsiveComponent);\n\n\t\t\tvar _this = _possibleConstructorReturn(this, (ResponsiveComponent.__proto__ || Object.getPrototypeOf(ResponsiveComponent)).call(this, props));\n\n\t\t\t_this.handleWindowResize = _this.handleWindowResize.bind(_this);\n\t\t\t_this.getWrappedInstance = _this.getWrappedInstance.bind(_this);\n\t\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t\t_this.setTestCanvas = _this.setTestCanvas.bind(_this);\n\t\t\t_this.state = {};\n\t\t\treturn _this;\n\t\t}\n\n\t\t_createClass(ResponsiveComponent, [{\n\t\t\tkey: \"saveNode\",\n\t\t\tvalue: function saveNode(node) {\n\t\t\t\tthis.node = node;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"setTestCanvas\",\n\t\t\tvalue: function setTestCanvas(node) {\n\t\t\t\tthis.testCanvas = node;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"getRatio\",\n\t\t\tvalue: function getRatio() {\n\t\t\t\tif ((0, _utils.isDefined)(this.testCanvas)) {\n\t\t\t\t\tvar context = this.testCanvas.getContext(\"2d\");\n\n\t\t\t\t\tvar devicePixelRatio = window.devicePixelRatio || 1;\n\t\t\t\t\tvar backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n\n\t\t\t\t\tvar ratio = devicePixelRatio / backingStoreRatio;\n\t\t\t\t\t// console.log(\"ratio = \", ratio);\n\t\t\t\t\treturn ratio;\n\t\t\t\t}\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"componentDidMount\",\n\t\t\tvalue: function componentDidMount() {\n\t\t\t\twindow.addEventListener(\"resize\", this.handleWindowResize);\n\t\t\t\tthis.handleWindowResize();\n\t\t\t\t/* eslint-disable react/no-did-mount-set-state */\n\t\t\t\tthis.setState({\n\t\t\t\t\tratio: this.getRatio()\n\t\t\t\t});\n\t\t\t\t/* eslint-enable react/no-did-mount-set-state */\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"componentWillUnmount\",\n\t\t\tvalue: function componentWillUnmount() {\n\t\t\t\twindow.removeEventListener(\"resize\", this.handleWindowResize);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"handleWindowResize\",\n\t\t\tvalue: function handleWindowResize() {\n\t\t\t\tvar _this2 = this;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\twidth: 0\n\t\t\t\t}, function () {\n\t\t\t\t\tvar el = _this2.node;\n\n\t\t\t\t\tvar _window$getComputedSt = window.getComputedStyle(el.parentNode),\n\t\t\t\t\t width = _window$getComputedSt.width,\n\t\t\t\t\t paddingLeft = _window$getComputedSt.paddingLeft,\n\t\t\t\t\t paddingRight = _window$getComputedSt.paddingRight;\n\n\t\t\t\t\tvar w = parseFloat(width) - (parseFloat(paddingLeft) + parseFloat(paddingRight));\n\n\t\t\t\t\t_this2.setState({\n\t\t\t\t\t\twidth: Math.round(Math.max(w, minWidth))\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"getWrappedInstance\",\n\t\t\tvalue: function getWrappedInstance() {\n\t\t\t\treturn this.node;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"render\",\n\t\t\tvalue: function render() {\n\t\t\t\tvar ref = withRef ? { ref: this.saveNode } : {};\n\n\t\t\t\tif (this.state.width) {\n\t\t\t\t\treturn _react2.default.createElement(WrappedComponent, _extends({ width: this.state.width, ratio: this.state.ratio }, this.props, ref));\n\t\t\t\t} else {\n\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t\"div\",\n\t\t\t\t\t\tref,\n\t\t\t\t\t\t_react2.default.createElement(\"canvas\", { ref: this.setTestCanvas })\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}]);\n\n\t\treturn ResponsiveComponent;\n\t}(_react.Component);\n\n\tResponsiveComponent.displayName = \"fitWidth(\" + getDisplayName(WrappedComponent) + \")\";\n\n\treturn ResponsiveComponent;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = fitDimensions;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction getDisplayName(Series) {\n\tvar name = Series.displayName || Series.name || \"Series\";\n\treturn name;\n}\n\nfunction fitDimensions(WrappedComponent) {\n\tvar props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\tvar _props$minWidth = props.minWidth,\n\t minWidth = _props$minWidth === undefined ? 100 : _props$minWidth,\n\t _props$minHeight = props.minHeight,\n\t minHeight = _props$minHeight === undefined ? 100 : _props$minHeight,\n\t ratio = props.ratio,\n\t width = props.width,\n\t height = props.height;\n\n\n\tfunction getDimensions(el) {\n\t\tvar w = el.parentNode.clientWidth;\n\t\tvar h = el.parentNode.clientHeight;\n\n\t\treturn {\n\t\t\twidth: (0, _utils.isDefined)(width) ? width : Math.max(w, minWidth),\n\t\t\theight: (0, _utils.isDefined)(height) ? height : Math.max(h, minHeight)\n\t\t};\n\t}\n\n\tvar ResponsiveComponent = function (_Component) {\n\t\t_inherits(ResponsiveComponent, _Component);\n\n\t\tfunction ResponsiveComponent(props) {\n\t\t\t_classCallCheck(this, ResponsiveComponent);\n\n\t\t\tvar _this = _possibleConstructorReturn(this, (ResponsiveComponent.__proto__ || Object.getPrototypeOf(ResponsiveComponent)).call(this, props));\n\n\t\t\t_this.handleWindowResize = _this.handleWindowResize.bind(_this);\n\t\t\t_this.getWrappedInstance = _this.getWrappedInstance.bind(_this);\n\t\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t\t_this.setTestCanvas = _this.setTestCanvas.bind(_this);\n\t\t\t_this.state = {};\n\t\t\treturn _this;\n\t\t}\n\n\t\t_createClass(ResponsiveComponent, [{\n\t\t\tkey: \"saveNode\",\n\t\t\tvalue: function saveNode(node) {\n\t\t\t\tthis.node = node;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"setTestCanvas\",\n\t\t\tvalue: function setTestCanvas(node) {\n\t\t\t\tthis.testCanvas = node;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"getRatio\",\n\t\t\tvalue: function getRatio() {\n\t\t\t\tif ((0, _utils.isDefined)(this.testCanvas)) {\n\t\t\t\t\tvar context = this.testCanvas.getContext(\"2d\");\n\n\t\t\t\t\tvar devicePixelRatio = window.devicePixelRatio || 1;\n\t\t\t\t\tvar backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n\n\t\t\t\t\tvar _ratio = devicePixelRatio / backingStoreRatio;\n\t\t\t\t\t// console.log(\"ratio = \", ratio);\n\t\t\t\t\treturn _ratio;\n\t\t\t\t}\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"componentDidMount\",\n\t\t\tvalue: function componentDidMount() {\n\t\t\t\twindow.addEventListener(\"resize\", this.handleWindowResize);\n\t\t\t\tvar dimensions = getDimensions(this.node);\n\n\t\t\t\t/* eslint-disable react/no-did-mount-set-state */\n\t\t\t\tthis.setState(_extends({}, dimensions, {\n\t\t\t\t\tratio: (0, _utils.isDefined)(ratio) ? ratio : this.getRatio()\n\t\t\t\t}));\n\t\t\t\t/* eslint-enable react/no-did-mount-set-state */\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"componentWillUnmount\",\n\t\t\tvalue: function componentWillUnmount() {\n\t\t\t\twindow.removeEventListener(\"resize\", this.handleWindowResize);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"handleWindowResize\",\n\t\t\tvalue: function handleWindowResize() {\n\t\t\t\tvar node = _reactDom2.default.findDOMNode(this.node); // eslint-disable-line react/no-find-dom-node\n\t\t\t\tthis.setState(getDimensions(node));\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"getWrappedInstance\",\n\t\t\tvalue: function getWrappedInstance() {\n\t\t\t\treturn this.node;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: \"render\",\n\t\t\tvalue: function render() {\n\t\t\t\tvar ref = { ref: this.saveNode };\n\n\t\t\t\tif (this.state.width) {\n\t\t\t\t\treturn _react2.default.createElement(WrappedComponent, _extends({\n\t\t\t\t\t\theight: this.state.height,\n\t\t\t\t\t\twidth: this.state.width,\n\t\t\t\t\t\tratio: this.state.ratio\n\t\t\t\t\t}, this.props, ref));\n\t\t\t\t} else {\n\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t\"div\",\n\t\t\t\t\t\tref,\n\t\t\t\t\t\t_react2.default.createElement(\"canvas\", { ref: this.setTestCanvas })\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}]);\n\n\t\treturn ResponsiveComponent;\n\t}(_react.Component);\n\n\tResponsiveComponent.displayName = \"fitDimensions(\" + getDisplayName(WrappedComponent) + \")\";\n\n\treturn ResponsiveComponent;\n}\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _EachTrendLine = require(\"./wrapper/EachTrendLine\");\n\nvar _EachTrendLine2 = _interopRequireDefault(_EachTrendLine);\n\nvar _StraightLine = require(\"./components/StraightLine\");\n\nvar _StraightLine2 = _interopRequireDefault(_StraightLine);\n\nvar _MouseLocationIndicator = require(\"./components/MouseLocationIndicator\");\n\nvar _MouseLocationIndicator2 = _interopRequireDefault(_MouseLocationIndicator);\n\nvar _HoverTextNearMouse = require(\"./components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TrendLine = function (_Component) {\n\t_inherits(TrendLine, _Component);\n\n\tfunction TrendLine(props) {\n\t\t_classCallCheck(this, TrendLine);\n\n\t\tvar _this = _possibleConstructorReturn(this, (TrendLine.__proto__ || Object.getPrototypeOf(TrendLine)).call(this, props));\n\n\t\t_this.handleStart = _this.handleStart.bind(_this);\n\t\t_this.handleEnd = _this.handleEnd.bind(_this);\n\t\t_this.handleDrawLine = _this.handleDrawLine.bind(_this);\n\t\t_this.handleDragLine = _this.handleDragLine.bind(_this);\n\t\t_this.handleDragLineComplete = _this.handleDragLineComplete.bind(_this);\n\n\t\t_this.terminate = _utils2.terminate.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\n\t\t_this.getSelectionState = (0, _utils2.isHoverForInteractiveType)(\"trends\").bind(_this);\n\n\t\t_this.state = {};\n\t\t_this.nodes = [];\n\t\treturn _this;\n\t}\n\n\t_createClass(TrendLine, [{\n\t\tkey: \"handleDragLine\",\n\t\tvalue: function handleDragLine(index, newXYValue) {\n\t\t\tthis.setState({\n\t\t\t\toverride: _extends({\n\t\t\t\t\tindex: index\n\t\t\t\t}, newXYValue)\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragLineComplete\",\n\t\tvalue: function handleDragLineComplete(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar override = this.state.override;\n\n\t\t\tif ((0, _utils.isDefined)(override)) {\n\t\t\t\tvar trends = this.props.trends;\n\n\t\t\t\tvar newTrends = trends.map(function (each, idx) {\n\t\t\t\t\treturn idx === override.index ? _extends({}, each, {\n\t\t\t\t\t\tstart: [override.x1Value, override.y1Value],\n\t\t\t\t\t\tend: [override.x2Value, override.y2Value],\n\t\t\t\t\t\tselected: true\n\t\t\t\t\t}) : _extends({}, each, {\n\t\t\t\t\t\tselected: false\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tthis.setState({\n\t\t\t\t\toverride: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this2.props.onComplete(newTrends, moreProps);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrawLine\",\n\t\tvalue: function handleDrawLine(xyValue) {\n\t\t\tvar current = this.state.current;\n\n\t\t\tif ((0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.start)) {\n\t\t\t\tthis.mouseMoved = true;\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstart: current.start,\n\t\t\t\t\t\tend: xyValue\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleStart\",\n\t\tvalue: function handleStart(xyValue, moreProps, e) {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isNotDefined)(current) || (0, _utils.isNotDefined)(current.start)) {\n\t\t\t\tthis.mouseMoved = false;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstart: xyValue,\n\t\t\t\t\t\tend: null\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t_this3.props.onStart(moreProps, e);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleEnd\",\n\t\tvalue: function handleEnd(xyValue, moreProps, e) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar current = this.state.current;\n\t\t\tvar _props = this.props,\n\t\t\t trends = _props.trends,\n\t\t\t appearance = _props.appearance,\n\t\t\t type = _props.type;\n\n\n\t\t\tif (this.mouseMoved && (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.start)) {\n\t\t\t\tvar newTrends = [].concat(_toConsumableArray(trends.map(function (d) {\n\t\t\t\t\treturn _extends({}, d, { selected: false });\n\t\t\t\t})), [{\n\t\t\t\t\tstart: current.start,\n\t\t\t\t\tend: xyValue,\n\t\t\t\t\tselected: true,\n\t\t\t\t\tappearance: appearance,\n\t\t\t\t\ttype: type\n\t\t\t\t}]);\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: null,\n\t\t\t\t\ttrends: newTrends\n\t\t\t\t}, function () {\n\t\t\t\t\t_this4.props.onComplete(newTrends, moreProps, e);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar appearance = this.props.appearance;\n\t\t\tvar _props2 = this.props,\n\t\t\t enabled = _props2.enabled,\n\t\t\t snap = _props2.snap,\n\t\t\t shouldDisableSnap = _props2.shouldDisableSnap,\n\t\t\t snapTo = _props2.snapTo,\n\t\t\t type = _props2.type;\n\t\t\tvar _props3 = this.props,\n\t\t\t currentPositionRadius = _props3.currentPositionRadius,\n\t\t\t currentPositionStroke = _props3.currentPositionStroke;\n\t\t\tvar _props4 = this.props,\n\t\t\t currentPositionstrokeOpacity = _props4.currentPositionstrokeOpacity,\n\t\t\t currentPositionStrokeWidth = _props4.currentPositionStrokeWidth;\n\t\t\tvar _props5 = this.props,\n\t\t\t hoverText = _props5.hoverText,\n\t\t\t trends = _props5.trends;\n\t\t\tvar _state = this.state,\n\t\t\t current = _state.current,\n\t\t\t override = _state.override;\n\n\n\t\t\tvar tempLine = (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.end) ? _react2.default.createElement(_StraightLine2.default, { type: type,\n\t\t\t\tnoHover: true,\n\t\t\t\tx1Value: current.start[0],\n\t\t\t\ty1Value: current.start[1],\n\t\t\t\tx2Value: current.end[0],\n\t\t\t\ty2Value: current.end[1],\n\t\t\t\tstroke: appearance.stroke,\n\t\t\t\tstrokeWidth: appearance.strokeWidth,\n\t\t\t\tstrokeOpacity: appearance.strokeOpacity }) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\ttrends.map(function (each, idx) {\n\t\t\t\t\tvar eachAppearance = (0, _utils.isDefined)(each.appearance) ? _extends({}, appearance, each.appearance) : appearance;\n\n\t\t\t\t\tvar hoverTextWithDefault = _extends({}, TrendLine.defaultProps.hoverText, hoverText);\n\n\t\t\t\t\treturn _react2.default.createElement(_EachTrendLine2.default, { key: idx,\n\t\t\t\t\t\tref: _this5.saveNodeType(idx),\n\t\t\t\t\t\tindex: idx,\n\t\t\t\t\t\ttype: each.type,\n\t\t\t\t\t\tselected: each.selected,\n\t\t\t\t\t\tx1Value: (0, _utils2.getValueFromOverride)(override, idx, \"x1Value\", each.start[0]),\n\t\t\t\t\t\ty1Value: (0, _utils2.getValueFromOverride)(override, idx, \"y1Value\", each.start[1]),\n\t\t\t\t\t\tx2Value: (0, _utils2.getValueFromOverride)(override, idx, \"x2Value\", each.end[0]),\n\t\t\t\t\t\ty2Value: (0, _utils2.getValueFromOverride)(override, idx, \"y2Value\", each.end[1]),\n\t\t\t\t\t\tstroke: eachAppearance.stroke,\n\t\t\t\t\t\tstrokeWidth: eachAppearance.strokeWidth,\n\t\t\t\t\t\tstrokeOpacity: eachAppearance.strokeOpacity,\n\t\t\t\t\t\tstrokeDasharray: eachAppearance.strokeDasharray,\n\t\t\t\t\t\tedgeStroke: eachAppearance.edgeStroke,\n\t\t\t\t\t\tedgeFill: eachAppearance.edgeFill,\n\t\t\t\t\t\tedgeStrokeWidth: eachAppearance.edgeStrokeWidth,\n\t\t\t\t\t\tr: eachAppearance.r,\n\t\t\t\t\t\thoverText: hoverTextWithDefault,\n\t\t\t\t\t\tonDrag: _this5.handleDragLine,\n\t\t\t\t\t\tonDragComplete: _this5.handleDragLineComplete,\n\t\t\t\t\t\tedgeInteractiveCursor: \"react-stockcharts-move-cursor\",\n\t\t\t\t\t\tlineInteractiveCursor: \"react-stockcharts-move-cursor\"\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\ttempLine,\n\t\t\t\t_react2.default.createElement(_MouseLocationIndicator2.default, {\n\t\t\t\t\tenabled: enabled,\n\t\t\t\t\tsnap: snap,\n\t\t\t\t\tshouldDisableSnap: shouldDisableSnap,\n\t\t\t\t\tsnapTo: snapTo,\n\t\t\t\t\tr: currentPositionRadius,\n\t\t\t\t\tstroke: currentPositionStroke,\n\t\t\t\t\tstrokeOpacity: currentPositionstrokeOpacity,\n\t\t\t\t\tstrokeWidth: currentPositionStrokeWidth,\n\t\t\t\t\tonMouseDown: this.handleStart,\n\t\t\t\t\tonClick: this.handleEnd,\n\t\t\t\t\tonMouseMove: this.handleDrawLine\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn TrendLine;\n}(_react.Component);\n\nTrendLine.propTypes = {\n\tsnap: _propTypes2.default.bool.isRequired,\n\tenabled: _propTypes2.default.bool.isRequired,\n\tsnapTo: _propTypes2.default.func,\n\tshouldDisableSnap: _propTypes2.default.func.isRequired,\n\n\tonStart: _propTypes2.default.func.isRequired,\n\tonComplete: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func,\n\n\tcurrentPositionStroke: _propTypes2.default.string,\n\tcurrentPositionStrokeWidth: _propTypes2.default.number,\n\tcurrentPositionstrokeOpacity: _propTypes2.default.number,\n\tcurrentPositionRadius: _propTypes2.default.number,\n\ttype: _propTypes2.default.oneOf([\"XLINE\", // extends from -Infinity to +Infinity\n\t\"RAY\", // extends to +/-Infinity in one direction\n\t\"LINE\"] // extends between the set bounds\n\t),\n\thoverText: _propTypes2.default.object.isRequired,\n\n\ttrends: _propTypes2.default.array.isRequired,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes),\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired\n\t}).isRequired\n};\n\nTrendLine.defaultProps = {\n\ttype: \"XLINE\",\n\n\tonStart: _utils.noop,\n\tonComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\n\tcurrentPositionStroke: \"#000000\",\n\tcurrentPositionstrokeOpacity: 1,\n\tcurrentPositionStrokeWidth: 3,\n\tcurrentPositionRadius: 0,\n\n\tshouldDisableSnap: function shouldDisableSnap(e) {\n\t\treturn e.button === 2 || e.shiftKey;\n\t},\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: \"auto\",\n\t\tbgWidth: \"auto\",\n\t\ttext: \"Click to select object\",\n\t\tselectedText: \"\"\n\t}),\n\ttrends: [],\n\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tstrokeOpacity: 1,\n\t\tstrokeWidth: 1,\n\t\tstrokeDasharray: \"Solid\",\n\t\tedgeStrokeWidth: 1,\n\t\tedgeFill: \"#FFFFFF\",\n\t\tedgeStroke: \"#000000\",\n\t\tr: 6\n\t}\n};\n\nexports.default = TrendLine;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Scale = require(\"d3-scale\");\n\nvar _PureComponent2 = require(\"./utils/PureComponent\");\n\nvar _PureComponent3 = _interopRequireDefault(_PureComponent2);\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Chart = function (_PureComponent) {\n\t_inherits(Chart, _PureComponent);\n\n\tfunction Chart(props, context) {\n\t\t_classCallCheck(this, Chart);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Chart.__proto__ || Object.getPrototypeOf(Chart)).call(this, props, context));\n\n\t\t_this.yScale = _this.yScale.bind(_this);\n\t\t_this.listener = _this.listener.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(Chart, [{\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tvar id = this.props.id;\n\t\t\tvar subscribe = this.context.subscribe;\n\n\t\t\tsubscribe(\"chart_\" + id, {\n\t\t\t\tlistener: this.listener\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\tvar id = this.props.id;\n\t\t\tvar unsubscribe = this.context.unsubscribe;\n\n\t\t\tunsubscribe(\"chart_\" + id);\n\t\t}\n\t}, {\n\t\tkey: \"listener\",\n\t\tvalue: function listener(type, moreProps, state, e) {\n\t\t\tvar _props = this.props,\n\t\t\t id = _props.id,\n\t\t\t onContextMenu = _props.onContextMenu;\n\n\n\t\t\tif (type === \"contextmenu\") {\n\t\t\t\tvar currentCharts = moreProps.currentCharts;\n\n\t\t\t\tif (currentCharts.indexOf(id) > -1) {\n\t\t\t\t\tonContextMenu(moreProps, e);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"yScale\",\n\t\tvalue: function yScale() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar chartConfig = (0, _utils.find)(this.context.chartConfig, function (each) {\n\t\t\t\treturn each.id === _this2.props.id;\n\t\t\t});\n\t\t\treturn chartConfig.yScale.copy();\n\t\t}\n\t}, {\n\t\tkey: \"getChildContext\",\n\t\tvalue: function getChildContext() {\n\t\t\tvar chartId = this.props.id;\n\n\t\t\tvar chartConfig = (0, _utils.find)(this.context.chartConfig, function (each) {\n\t\t\t\treturn each.id === chartId;\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tchartId: chartId,\n\t\t\t\tchartConfig: chartConfig\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this3 = this;\n \n\t\t\tvar _find = (0, _utils.find)(this.context.chartConfig, function (each) {\n\t\t\t\treturn each.id === _this3.props.id;\n\t\t\t}),\n\t\t\t origin = _find.origin;\n\n\t\t\tvar _origin = _slicedToArray(origin, 2),\n\t\t\t x = _origin[0],\n y = _origin[1];\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + x + \", \" + y + \")\"},\n\t\t\t\tthis.props.children\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Chart;\n}(_PureComponent3.default);\n\nChart.propTypes = {\n\theight: _propTypes2.default.number,\n\torigin: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]),\n\tid: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,\n\tyExtents: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]),\n\tyExtentsCalculator: function yExtentsCalculator(props, propName, componentName) {\n\t\tif ((0, _utils.isNotDefined)(props.yExtents) && typeof props.yExtentsCalculator !== \"function\") return new Error(\"yExtents or yExtentsCalculator must\" + (\" be present on \" + componentName + \". Validation failed.\"));\n\t},\n\tonContextMenu: _propTypes2.default.func,\n\tyScale: _propTypes2.default.func,\n\n\tflipYScale: _propTypes2.default.bool,\n\tpadding: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({\n\t\ttop: _propTypes2.default.number,\n bottom: _propTypes2.default.number,\n\t})]),\n\tchildren: _propTypes2.default.node\n};\n\nChart.defaultProps = {\n\tid: 0,\n\torigin: [0, 0],\n\tpadding: 0,\n\tyScale: (0, _d3Scale.scaleLinear)(),\n\tflipYScale: false,\n\tyPan: true,\n\tyPanEnabled: false,\n\tonContextMenu: _utils.noop\n};\n\nChart.contextTypes = {\n\tchartConfig: _propTypes2.default.array,\n\tsubscribe: _propTypes2.default.func.isRequired,\n\tunsubscribe: _propTypes2.default.func.isRequired\n};\n\nChart.childContextTypes = {\n\tchartConfig: _propTypes2.default.object.isRequired,\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired\n};\n\nexports.default = Chart;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _EachFibRetracement = require(\"./wrapper/EachFibRetracement\");\n\nvar _EachFibRetracement2 = _interopRequireDefault(_EachFibRetracement);\n\nvar _MouseLocationIndicator = require(\"./components/MouseLocationIndicator\");\n\nvar _MouseLocationIndicator2 = _interopRequireDefault(_MouseLocationIndicator);\n\nvar _HoverTextNearMouse = require(\"./components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FibonacciRetracement = function (_Component) {\n\t_inherits(FibonacciRetracement, _Component);\n\n\tfunction FibonacciRetracement(props) {\n\t\t_classCallCheck(this, FibonacciRetracement);\n\n\t\tvar _this = _possibleConstructorReturn(this, (FibonacciRetracement.__proto__ || Object.getPrototypeOf(FibonacciRetracement)).call(this, props));\n\n\t\t_this.handleStart = _this.handleStart.bind(_this);\n\t\t_this.handleEnd = _this.handleEnd.bind(_this);\n\t\t_this.handleDrawRetracement = _this.handleDrawRetracement.bind(_this);\n\n\t\t_this.handleEdge1Drag = _this.handleEdge1Drag.bind(_this);\n\t\t_this.handleEdge2Drag = _this.handleEdge2Drag.bind(_this);\n\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\t\t_this.handleDragComplete = _this.handleDragComplete.bind(_this);\n\n\t\t_this.terminate = _utils2.terminate.bind(_this);\n\t\t_this.getSelectionState = (0, _utils2.isHoverForInteractiveType)(\"retracements\").bind(_this);\n\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = [];\n\n\t\t_this.state = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(FibonacciRetracement, [{\n\t\tkey: \"handleDrawRetracement\",\n\t\tvalue: function handleDrawRetracement(xyValue) {\n\t\t\tvar current = this.state.current;\n\n\t\t\tif ((0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.x1)) {\n\t\t\t\tthis.mouseMoved = true;\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: _extends({}, current, {\n\t\t\t\t\t\tx2: xyValue[0],\n\t\t\t\t\t\ty2: xyValue[1]\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag(index, xy) {\n\t\t\tthis.setState({\n\t\t\t\toverride: _extends({\n\t\t\t\t\tindex: index\n\t\t\t\t}, xy)\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge1Drag\",\n\t\tvalue: function handleEdge1Drag(echo, newXYValue, origXYValue) {\n\t\t\tvar retracements = this.props.retracements;\n\t\t\tvar index = echo.index;\n\n\n\t\t\tvar dx = origXYValue.x1Value - newXYValue.x1Value;\n\n\t\t\tthis.setState({\n\t\t\t\toverride: {\n\t\t\t\t\tindex: index,\n\t\t\t\t\tx1: retracements[index].x1 - dx,\n\t\t\t\t\ty1: retracements[index].y1,\n\t\t\t\t\tx2: retracements[index].x2,\n\t\t\t\t\ty2: retracements[index].y2\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge2Drag\",\n\t\tvalue: function handleEdge2Drag(echo, newXYValue, origXYValue) {\n\t\t\tvar retracements = this.props.retracements;\n\t\t\tvar index = echo.index;\n\n\n\t\t\tvar dx = origXYValue.x2Value - newXYValue.x2Value;\n\n\t\t\tthis.setState({\n\t\t\t\toverride: {\n\t\t\t\t\tindex: index,\n\t\t\t\t\tx1: retracements[index].x1,\n\t\t\t\t\ty1: retracements[index].y1,\n\t\t\t\t\tx2: retracements[index].x2 - dx,\n\t\t\t\t\ty2: retracements[index].y2\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragComplete\",\n\t\tvalue: function handleDragComplete(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar retracements = this.props.retracements;\n\t\t\tvar override = this.state.override;\n\n\t\t\tif ((0, _utils.isDefined)(override)) {\n\t\t\t\tvar index = override.index,\n\t\t\t\t rest = _objectWithoutProperties(override, [\"index\"]);\n\n\t\t\t\tvar newRetracements = retracements.map(function (each, idx) {\n\t\t\t\t\treturn idx === index ? _extends({}, each, rest, { selected: true }) : each;\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\toverride: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this2.props.onComplete(newRetracements, moreProps);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleStart\",\n\t\tvalue: function handleStart(xyValue, moreProps) {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar current = this.state.current;\n\n\t\t\tif ((0, _utils.isNotDefined)(current) || (0, _utils.isNotDefined)(current.x1)) {\n\t\t\t\tthis.mouseMoved = false;\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tx1: xyValue[0],\n\t\t\t\t\t\ty1: xyValue[1],\n\t\t\t\t\t\tx2: null,\n\t\t\t\t\t\ty2: null\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t_this3.props.onStart(moreProps);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleEnd\",\n\t\tvalue: function handleEnd(xyValue, moreProps, e) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar _props = this.props,\n\t\t\t retracements = _props.retracements,\n\t\t\t appearance = _props.appearance,\n\t\t\t type = _props.type;\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif (this.mouseMoved && (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.x1)) {\n\t\t\t\tvar newRetracements = retracements.concat(_extends({}, current, {\n\t\t\t\t\tx2: xyValue[0],\n\t\t\t\t\ty2: xyValue[1],\n\t\t\t\t\tselected: true,\n\t\t\t\t\tappearance: appearance,\n\t\t\t\t\ttype: type\n\t\t\t\t}));\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this4.props.onComplete(newRetracements, moreProps, e);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar _state = this.state,\n\t\t\t current = _state.current,\n\t\t\t override = _state.override;\n\t\t\tvar retracements = this.props.retracements;\n\t\t\tvar _props2 = this.props,\n\t\t\t appearance = _props2.appearance,\n\t\t\t type = _props2.type;\n\t\t\tvar _props3 = this.props,\n\t\t\t currentPositionStroke = _props3.currentPositionStroke,\n\t\t\t currentPositionOpacity = _props3.currentPositionOpacity,\n\t\t\t currentPositionStrokeWidth = _props3.currentPositionStrokeWidth,\n\t\t\t currentPositionRadius = _props3.currentPositionRadius;\n\t\t\tvar _props4 = this.props,\n\t\t\t enabled = _props4.enabled,\n\t\t\t hoverText = _props4.hoverText;\n\n\t\t\tvar overrideIndex = (0, _utils.isDefined)(override) ? override.index : null;\n\t\t\tvar hoverTextWidthDefault = _extends({}, FibonacciRetracement.defaultProps.hoverText, hoverText);\n\n\t\t\tvar currentRetracement = (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.x2) ? _react2.default.createElement(_EachFibRetracement2.default, _extends({\n\t\t\t\tinteractive: false,\n\t\t\t\ttype: type,\n\t\t\t\tappearance: appearance,\n\t\t\t\thoverText: hoverTextWidthDefault\n\t\t\t}, current)) : null;\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tretracements.map(function (each, idx) {\n\t\t\t\t\tvar eachAppearance = (0, _utils.isDefined)(each.appearance) ? _extends({}, appearance, each.appearance) : appearance;\n\n\t\t\t\t\tvar eachHoverText = (0, _utils.isDefined)(each.hoverText) ? _extends({}, hoverTextWidthDefault, each.hoverText) : hoverTextWidthDefault;\n\n\t\t\t\t\treturn _react2.default.createElement(_EachFibRetracement2.default, _extends({\n\t\t\t\t\t\tkey: idx,\n\t\t\t\t\t\tref: _this5.saveNodeType(idx),\n\t\t\t\t\t\tindex: idx,\n\t\t\t\t\t\ttype: each.type,\n\t\t\t\t\t\tselected: each.selected\n\t\t\t\t\t}, idx === overrideIndex ? override : each, {\n\t\t\t\t\t\thoverText: eachHoverText,\n\t\t\t\t\t\tappearance: eachAppearance,\n\t\t\t\t\t\tonDrag: _this5.handleDrag,\n\t\t\t\t\t\tonDragComplete: _this5.handleDragComplete\n\t\t\t\t\t}));\n\t\t\t\t}),\n\t\t\t\tcurrentRetracement,\n\t\t\t\t_react2.default.createElement(_MouseLocationIndicator2.default, {\n\t\t\t\t\tenabled: enabled,\n\t\t\t\t\tsnap: false,\n\t\t\t\t\tr: currentPositionRadius,\n\t\t\t\t\tstroke: currentPositionStroke,\n\t\t\t\t\topacity: currentPositionOpacity,\n\t\t\t\t\tstrokeWidth: currentPositionStrokeWidth,\n\t\t\t\t\tonMouseDown: this.handleStart,\n\t\t\t\t\tonClick: this.handleEnd,\n\t\t\t\t\tonMouseMove: this.handleDrawRetracement\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn FibonacciRetracement;\n}(_react.Component);\n\n// onClick={this.handleClick}\n\nFibonacciRetracement.propTypes = {\n\tenabled: _propTypes2.default.bool.isRequired,\n\twidth: _propTypes2.default.number,\n\n\tonStart: _propTypes2.default.func,\n\tonComplete: _propTypes2.default.func,\n\tonSelect: _propTypes2.default.func,\n\n\ttype: _propTypes2.default.oneOf([\"EXTEND\", // extends from -Infinity to +Infinity\n\t\"RAY\", // extends to +/-Infinity in one direction\n\t\"BOUND\" // extends between the set bounds\n\t]).isRequired,\n\thoverText: _propTypes2.default.object.isRequired,\n\n\tcurrentPositionStroke: _propTypes2.default.string,\n\tcurrentPositionStrokeWidth: _propTypes2.default.number,\n\tcurrentPositionOpacity: _propTypes2.default.number,\n\tcurrentPositionRadius: _propTypes2.default.number,\n\n\tretracements: _propTypes2.default.array.isRequired,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tfontFamily: _propTypes2.default.string.isRequired,\n\t\tfontSize: _propTypes2.default.number.isRequired,\n\t\tfontFill: _propTypes2.default.string.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tnsEdgeFill: _propTypes2.default.string.isRequired,\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tr: _propTypes2.default.number.isRequired\n\t}).isRequired\n};\n\nFibonacciRetracement.defaultProps = {\n\tenabled: true,\n\ttype: \"RAY\",\n\tretracements: [],\n\n\tonStart: _utils.noop,\n\tonComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: \"auto\",\n\t\tbgWidth: \"auto\",\n\t\ttext: \"Click to select object\",\n\t\tselectedText: \"\"\n\t}),\n\tcurrentPositionStroke: \"#000000\",\n\tcurrentPositionOpacity: 1,\n\tcurrentPositionStrokeWidth: 3,\n\tcurrentPositionRadius: 4,\n\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tstrokeWidth: 1,\n\t\tstrokeOpacity: 1,\n\t\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\t\tfontSize: 11,\n\t\tfontFill: \"#000000\",\n\t\tedgeStroke: \"#000000\",\n\t\tedgeFill: \"#FFFFFF\",\n\t\tnsEdgeFill: \"#000000\",\n\t\tedgeStrokeWidth: 1,\n\t\tr: 5\n\t}\n};\n\nexports.default = FibonacciRetracement;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../../utils\");\n\nvar _ChartDataUtil = require(\"../../utils/ChartDataUtil\");\n\nvar _utils2 = require(\"../utils\");\n\nvar _EachTrendLine = require(\"./EachTrendLine\");\n\nvar _StraightLine = require(\"../components/StraightLine\");\n\nvar _StraightLine2 = _interopRequireDefault(_StraightLine);\n\nvar _ClickableCircle = require(\"../components/ClickableCircle\");\n\nvar _ClickableCircle2 = _interopRequireDefault(_ClickableCircle);\n\nvar _HoverTextNearMouse = require(\"../components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nvar _Text = require(\"../components/Text\");\n\nvar _Text2 = _interopRequireDefault(_Text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EachFibRetracement = function (_Component) {\n\t_inherits(EachFibRetracement, _Component);\n\n\tfunction EachFibRetracement(props) {\n\t\t_classCallCheck(this, EachFibRetracement);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EachFibRetracement.__proto__ || Object.getPrototypeOf(EachFibRetracement)).call(this, props));\n\n\t\t_this.handleEdge1Drag = _this.handleEdge1Drag.bind(_this);\n\t\t_this.handleEdge2Drag = _this.handleEdge2Drag.bind(_this);\n\n\t\t_this.handleLineNSResizeTop = _this.handleLineNSResizeTop.bind(_this);\n\t\t_this.handleLineNSResizeBottom = _this.handleLineNSResizeBottom.bind(_this);\n\t\t_this.handleLineMove = _this.handleLineMove.bind(_this);\n\n\t\t_this.handleLineDragStart = _this.handleLineDragStart.bind(_this);\n\n\t\t_this.handleHover = _this.handleHover.bind(_this);\n\n\t\t_this.isHover = _utils2.isHover.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = {};\n\n\t\t_this.state = {\n\t\t\thover: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EachFibRetracement, [{\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n\t\t\tif (this.state.hover !== moreProps.hovering) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thover: moreProps.hovering\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleLineDragStart\",\n\t\tvalue: function handleLineDragStart() {\n\t\t\tvar _props = this.props,\n\t\t\t x1 = _props.x1,\n\t\t\t y1 = _props.y1,\n\t\t\t x2 = _props.x2,\n\t\t\t y2 = _props.y2;\n\n\n\t\t\tthis.dragStart = {\n\t\t\t\tx1: x1, y1: y1, x2: x2, y2: y2\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handleLineMove\",\n\t\tvalue: function handleLineMove(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t index = _props2.index,\n\t\t\t onDrag = _props2.onDrag;\n\t\t\tvar _dragStart = this.dragStart,\n\t\t\t x1Value = _dragStart.x1,\n\t\t\t y1Value = _dragStart.y1,\n\t\t\t x2Value = _dragStart.x2,\n\t\t\t y2Value = _dragStart.y2;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t fullData = moreProps.fullData;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY;\n\n\n\t\t\tvar x1 = xScale(x1Value);\n\t\t\tvar y1 = yScale(y1Value);\n\t\t\tvar x2 = xScale(x2Value);\n\t\t\tvar y2 = yScale(y2Value);\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\t\t\tvar newX2Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x2 - dx, y2 - dy], fullData);\n\t\t\tvar newY2Value = yScale.invert(y2 - dy);\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1: newX1Value,\n\t\t\t\ty1: newY1Value,\n\t\t\t\tx2: newX2Value,\n\t\t\t\ty2: newY2Value\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleLineNSResizeTop\",\n\t\tvalue: function handleLineNSResizeTop(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t index = _props3.index,\n\t\t\t onDrag = _props3.onDrag;\n\t\t\tvar _props4 = this.props,\n\t\t\t x1 = _props4.x1,\n\t\t\t x2 = _props4.x2,\n\t\t\t y2 = _props4.y2;\n\n\t\t\tvar _getNewXY = (0, _EachTrendLine.getNewXY)(moreProps),\n\t\t\t _getNewXY2 = _slicedToArray(_getNewXY, 2),\n\t\t\t y1 = _getNewXY2[1];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleLineNSResizeBottom\",\n\t\tvalue: function handleLineNSResizeBottom(moreProps) {\n\t\t\tvar _props5 = this.props,\n\t\t\t index = _props5.index,\n\t\t\t onDrag = _props5.onDrag;\n\t\t\tvar _props6 = this.props,\n\t\t\t x1 = _props6.x1,\n\t\t\t y1 = _props6.y1,\n\t\t\t x2 = _props6.x2;\n\n\t\t\tvar _getNewXY3 = (0, _EachTrendLine.getNewXY)(moreProps),\n\t\t\t _getNewXY4 = _slicedToArray(_getNewXY3, 2),\n\t\t\t y2 = _getNewXY4[1];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge1Drag\",\n\t\tvalue: function handleEdge1Drag(moreProps) {\n\t\t\tvar _props7 = this.props,\n\t\t\t index = _props7.index,\n\t\t\t onDrag = _props7.onDrag;\n\t\t\tvar _props8 = this.props,\n\t\t\t y1 = _props8.y1,\n\t\t\t x2 = _props8.x2,\n\t\t\t y2 = _props8.y2;\n\n\t\t\tvar _getNewXY5 = (0, _EachTrendLine.getNewXY)(moreProps),\n\t\t\t _getNewXY6 = _slicedToArray(_getNewXY5, 1),\n\t\t\t x1 = _getNewXY6[0];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge2Drag\",\n\t\tvalue: function handleEdge2Drag(moreProps) {\n\t\t\tvar _props9 = this.props,\n\t\t\t index = _props9.index,\n\t\t\t onDrag = _props9.onDrag;\n\t\t\tvar _props10 = this.props,\n\t\t\t x1 = _props10.x1,\n\t\t\t y1 = _props10.y1,\n\t\t\t y2 = _props10.y2;\n\n\t\t\tvar _getNewXY7 = (0, _EachTrendLine.getNewXY)(moreProps),\n\t\t\t _getNewXY8 = _slicedToArray(_getNewXY7, 1),\n\t\t\t x2 = _getNewXY8[0];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar _props11 = this.props,\n\t\t\t x1 = _props11.x1,\n\t\t\t x2 = _props11.x2,\n\t\t\t y1 = _props11.y1,\n\t\t\t y2 = _props11.y2;\n\t\t\tvar _props12 = this.props,\n\t\t\t interactive = _props12.interactive,\n\t\t\t yDisplayFormat = _props12.yDisplayFormat,\n\t\t\t type = _props12.type,\n\t\t\t appearance = _props12.appearance;\n\t\t\tvar stroke = appearance.stroke,\n\t\t\t strokeWidth = appearance.strokeWidth,\n\t\t\t strokeOpacity = appearance.strokeOpacity;\n\t\t\tvar fontFamily = appearance.fontFamily,\n\t\t\t fontSize = appearance.fontSize,\n\t\t\t fontFill = appearance.fontFill;\n\t\t\tvar edgeStroke = appearance.edgeStroke,\n\t\t\t edgeFill = appearance.edgeFill,\n\t\t\t nsEdgeFill = appearance.nsEdgeFill,\n\t\t\t edgeStrokeWidth = appearance.edgeStrokeWidth,\n\t\t\t r = appearance.r;\n\t\t\tvar _props13 = this.props,\n\t\t\t hoverText = _props13.hoverText,\n\t\t\t selected = _props13.selected;\n\t\t\tvar hover = this.state.hover;\n\t\t\tvar onDragComplete = this.props.onDragComplete;\n\n\t\t\tvar lines = helper({ x1: x1, x2: x2, y1: y1, y2: y2 });\n\n\t\t\tvar hoverTextEnabled = hoverText.enable,\n\t\t\t hoverTextSelected = hoverText.selectedText,\n\t\t\t hoverTextUnselected = hoverText.text,\n\t\t\t restHoverTextProps = _objectWithoutProperties(hoverText, [\"enable\", \"selectedText\", \"text\"]);\n\n\t\t\tvar lineType = type === \"EXTEND\" ? \"XLINE\" : type === \"BOUND\" ? \"LINE\" : type;\n\t\t\tvar dir = (0, _utils.head)(lines).y1 > (0, _utils.last)(lines).y1 ? 3 : -1.3;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tlines.map(function (line, j) {\n\t\t\t\t\tvar text = yDisplayFormat(line.y) + \" (\" + line.percent.toFixed(2) + \"%)\";\n\n\t\t\t\t\tvar xyProvider = function xyProvider(_ref) {\n\t\t\t\t\t\tvar xScale = _ref.xScale,\n\t\t\t\t\t\t chartConfig = _ref.chartConfig;\n\t\t\t\t\t\tvar yScale = chartConfig.yScale;\n\n\t\t\t\t\t\tvar _generateLine = (0, _StraightLine.generateLine)({\n\t\t\t\t\t\t\ttype: lineType,\n\t\t\t\t\t\t\tstart: [line.x1, line.y],\n\t\t\t\t\t\t\tend: [line.x2, line.y],\n\t\t\t\t\t\t\txScale: xScale,\n\t\t\t\t\t\t\tyScale: yScale\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t x1 = _generateLine.x1,\n\t\t\t\t\t\t y1 = _generateLine.y1,\n\t\t\t\t\t\t x2 = _generateLine.x2;\n\n\t\t\t\t\t\tvar x = xScale(Math.min(x1, x2)) + 10;\n\t\t\t\t\t\tvar y = yScale(y1) + dir * 4;\n\t\t\t\t\t\treturn [x, y];\n\t\t\t\t\t};\n\n\t\t\t\t\tvar firstOrLast = j === 0 || j === lines.length - 1;\n\n\t\t\t\t\tvar interactiveCursorClass = firstOrLast ? \"react-stockcharts-ns-resize-cursor\" : \"react-stockcharts-move-cursor\";\n\n\t\t\t\t\tvar interactiveEdgeCursorClass = firstOrLast ? \"react-stockcharts-ns-resize-cursor\" : \"react-stockcharts-ew-resize-cursor\";\n\n\t\t\t\t\tvar dragHandler = j === 0 ? _this2.handleLineNSResizeTop : j === lines.length - 1 ? _this2.handleLineNSResizeBottom : _this2.handleLineMove;\n\n\t\t\t\t\tvar edge1DragHandler = j === 0 ? _this2.handleLineNSResizeTop : j === lines.length - 1 ? _this2.handleLineNSResizeBottom : _this2.handleEdge1Drag;\n\t\t\t\t\tvar edge2DragHandler = j === 0 ? _this2.handleLineNSResizeTop : j === lines.length - 1 ? _this2.handleLineNSResizeBottom : _this2.handleEdge2Drag;\n\n\t\t\t\t\tvar hoverHandler = interactive ? { onHover: _this2.handleHover, onUnHover: _this2.handleHover } : {};\n\t\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\t\"g\",\n\t\t\t\t\t\t{ key: j },\n\t\t\t\t\t\t_react2.default.createElement(_StraightLine2.default, _extends({\n\t\t\t\t\t\t\tref: _this2.saveNodeType(\"line_\" + j),\n\t\t\t\t\t\t\tselected: selected || hover\n\n\t\t\t\t\t\t}, hoverHandler, {\n\n\t\t\t\t\t\t\ttype: lineType,\n\t\t\t\t\t\t\tx1Value: line.x1,\n\t\t\t\t\t\t\ty1Value: line.y,\n\t\t\t\t\t\t\tx2Value: line.x2,\n\t\t\t\t\t\t\ty2Value: line.y,\n\t\t\t\t\t\t\tstroke: stroke,\n\t\t\t\t\t\t\tstrokeWidth: hover || selected ? strokeWidth + 1 : strokeWidth,\n\t\t\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\n\t\t\t\t\t\t\tonDragStart: _this2.handleLineDragStart,\n\t\t\t\t\t\t\tonDrag: dragHandler,\n\t\t\t\t\t\t\tonDragComplete: onDragComplete\n\t\t\t\t\t\t})),\n\t\t\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t\t\t_Text2.default,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tselected: selected\n\t\t\t\t\t\t\t\t/* eslint-disable */\n\t\t\t\t\t\t\t\t, xyProvider: xyProvider\n\t\t\t\t\t\t\t\t/* eslint-enable */\n\t\t\t\t\t\t\t\t, fontFamily: fontFamily,\n\t\t\t\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\t\t\t\tfill: fontFill },\n\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t),\n\t\t\t\t\t\t_react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\t\t\t\tref: _this2.saveNodeType(\"edge1\"),\n\t\t\t\t\t\t\tshow: selected || hover,\n\t\t\t\t\t\t\tcx: line.x1,\n\t\t\t\t\t\t\tcy: line.y,\n\t\t\t\t\t\t\tr: r,\n\t\t\t\t\t\t\tfill: firstOrLast ? nsEdgeFill : edgeFill,\n\t\t\t\t\t\t\tstroke: edgeStroke,\n\t\t\t\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\t\t\t\tinteractiveCursorClass: interactiveEdgeCursorClass,\n\t\t\t\t\t\t\tonDrag: edge1DragHandler,\n\t\t\t\t\t\t\tonDragComplete: onDragComplete }),\n\t\t\t\t\t\t_react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\t\t\t\tref: _this2.saveNodeType(\"edge2\"),\n\t\t\t\t\t\t\tshow: selected || hover,\n\t\t\t\t\t\t\tcx: line.x2,\n\t\t\t\t\t\t\tcy: line.y,\n\t\t\t\t\t\t\tr: r,\n\t\t\t\t\t\t\tfill: firstOrLast ? nsEdgeFill : edgeFill,\n\t\t\t\t\t\t\tstroke: edgeStroke,\n\t\t\t\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\t\t\t\tinteractiveCursorClass: interactiveEdgeCursorClass,\n\t\t\t\t\t\t\tonDrag: edge2DragHandler,\n\t\t\t\t\t\t\tonDragComplete: onDragComplete })\n\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(_HoverTextNearMouse2.default, _extends({\n\t\t\t\t\tshow: hoverTextEnabled && hover\n\t\t\t\t}, restHoverTextProps, {\n\t\t\t\t\ttext: selected ? hoverTextSelected : hoverTextUnselected\n\t\t\t\t}))\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EachFibRetracement;\n}(_react.Component);\n\nfunction helper(_ref2) {\n\tvar x1 = _ref2.x1,\n\t y1 = _ref2.y1,\n\t x2 = _ref2.x2,\n\t y2 = _ref2.y2;\n\n\tvar dy = y2 - y1;\n\tvar retracements = [100, 61.8, 50, 38.2, 23.6, 0].map(function (each) {\n\t\treturn {\n\t\t\tpercent: each,\n\t\t\tx1: x1,\n\t\t\tx2: x2,\n\t\t\ty: y2 - each / 100 * dy\n\t\t};\n\t});\n\n\treturn retracements;\n}\n\nEachFibRetracement.propTypes = {\n\tx1: _propTypes2.default.any.isRequired,\n\tx2: _propTypes2.default.any.isRequired,\n\ty1: _propTypes2.default.number.isRequired,\n\ty2: _propTypes2.default.number.isRequired,\n\n\tyDisplayFormat: _propTypes2.default.func.isRequired,\n\ttype: _propTypes2.default.string.isRequired,\n\tselected: _propTypes2.default.bool.isRequired,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tfontFamily: _propTypes2.default.string.isRequired,\n\t\tfontSize: _propTypes2.default.number.isRequired,\n\t\tfontFill: _propTypes2.default.string.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tnsEdgeFill: _propTypes2.default.string.isRequired,\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tr: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\n\tinteractive: _propTypes2.default.bool.isRequired,\n\thoverText: _propTypes2.default.object.isRequired,\n\n\tindex: _propTypes2.default.number,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired\n};\n\nEachFibRetracement.defaultProps = {\n\tyDisplayFormat: function yDisplayFormat(d) {\n\t\treturn d.toFixed(2);\n\t},\n\tinteractive: true,\n\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tstrokeWidth: 1,\n\t\tstrokeOpacity: 1,\n\t\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\t\tfontSize: 10,\n\t\tfontFill: \"#000000\",\n\t\tedgeStroke: \"#000000\",\n\t\tedgeFill: \"#FFFFFF\",\n\t\tnsEdgeFill: \"#000000\",\n\t\tedgeStrokeWidth: 1,\n\t\tr: 5\n\t},\n\tselected: false,\n\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\thoverText: {\n\t\tenable: false\n\t}\n};\n\nexports.default = EachFibRetracement;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Text = function (_Component) {\n\t_inherits(Text, _Component);\n\n\tfunction Text(props) {\n\t\t_classCallCheck(this, Text);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Text.__proto__ || Object.getPrototypeOf(Text)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(Text, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover() {\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t xyProvider = _props.xyProvider,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t fill = _props.fill,\n\t\t\t children = _props.children;\n\n\t\t\tvar _xyProvider = xyProvider(moreProps),\n\t\t\t _xyProvider2 = _slicedToArray(_xyProvider, 2),\n\t\t\t x = _xyProvider2[0],\n\t\t\t y = _xyProvider2[1];\n\n\t\t\tctx.font = fontSize + \"px \" + fontFamily;\n\t\t\tctx.fillStyle = fill;\n\n\t\t\tctx.beginPath();\n\t\t\tctx.fillText(children, x, y);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t xyProvider = _props2.xyProvider,\n\t\t\t fontFamily = _props2.fontFamily,\n\t\t\t fontSize = _props2.fontSize,\n\t\t\t fill = _props2.fill,\n\t\t\t children = _props2.children;\n\n\t\t\tvar _xyProvider3 = xyProvider(moreProps),\n\t\t\t _xyProvider4 = _slicedToArray(_xyProvider3, 2),\n\t\t\t x = _xyProvider4[0],\n\t\t\t y = _xyProvider4[1];\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"text\",\n\t\t\t\t{\n\t\t\t\t\tx: x,\n\t\t\t\t\ty: y,\n\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\tfill: fill },\n\t\t\t\tchildren\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar selected = this.props.selected;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tselected: selected,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn Text;\n}(_react.Component);\n\nText.propTypes = {\n\txyProvider: _propTypes2.default.func.isRequired,\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.string.isRequired,\n\tchildren: _propTypes2.default.string.isRequired,\n\tselected: _propTypes2.default.bool.isRequired\n};\n\nText.defaultProps = {\n\tselected: false\n};\n\nexports.default = Text;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _EachEquidistantChannel = require(\"./wrapper/EachEquidistantChannel\");\n\nvar _EachEquidistantChannel2 = _interopRequireDefault(_EachEquidistantChannel);\n\nvar _StraightLine = require(\"./components/StraightLine\");\n\nvar _MouseLocationIndicator = require(\"./components/MouseLocationIndicator\");\n\nvar _MouseLocationIndicator2 = _interopRequireDefault(_MouseLocationIndicator);\n\nvar _HoverTextNearMouse = require(\"./components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EquidistantChannel = function (_Component) {\n\t_inherits(EquidistantChannel, _Component);\n\n\tfunction EquidistantChannel(props) {\n\t\t_classCallCheck(this, EquidistantChannel);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EquidistantChannel.__proto__ || Object.getPrototypeOf(EquidistantChannel)).call(this, props));\n\n\t\t_this.handleStart = _this.handleStart.bind(_this);\n\t\t_this.handleEnd = _this.handleEnd.bind(_this);\n\t\t_this.handleDrawChannel = _this.handleDrawChannel.bind(_this);\n\t\t_this.handleDragChannel = _this.handleDragChannel.bind(_this);\n\t\t_this.handleDragChannelComplete = _this.handleDragChannelComplete.bind(_this);\n\n\t\t_this.terminate = _utils2.terminate.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\n\t\t_this.getSelectionState = (0, _utils2.isHoverForInteractiveType)(\"channels\").bind(_this);\n\n\t\t_this.nodes = [];\n\t\t_this.state = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(EquidistantChannel, [{\n\t\tkey: \"handleDragChannel\",\n\t\tvalue: function handleDragChannel(index, newXYValue) {\n\t\t\tthis.setState({\n\t\t\t\toverride: _extends({\n\t\t\t\t\tindex: index\n\t\t\t\t}, newXYValue)\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragChannelComplete\",\n\t\tvalue: function handleDragChannelComplete(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar override = this.state.override;\n\t\t\tvar channels = this.props.channels;\n\n\n\t\t\tif ((0, _utils.isDefined)(override)) {\n\t\t\t\tvar index = override.index,\n\t\t\t\t rest = _objectWithoutProperties(override, [\"index\"]);\n\n\t\t\t\tvar newChannels = channels.map(function (each, idx) {\n\t\t\t\t\treturn idx === index ? _extends({}, each, rest, { selected: true }) : each;\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\toverride: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this2.props.onComplete(newChannels, moreProps);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrawChannel\",\n\t\tvalue: function handleDrawChannel(xyValue) {\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.startXY)) {\n\t\t\t\tthis.mouseMoved = true;\n\t\t\t\tif ((0, _utils.isNotDefined)(current.dy)) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tcurrent: {\n\t\t\t\t\t\t\tstartXY: current.startXY,\n\t\t\t\t\t\t\tendXY: xyValue\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvar m = (0, _StraightLine.getSlope)(current.startXY, current.endXY);\n\t\t\t\t\tvar b = (0, _StraightLine.getYIntercept)(m, current.endXY);\n\t\t\t\t\tvar y = m * xyValue[0] + b;\n\t\t\t\t\tvar dy = xyValue[1] - y;\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tcurrent: _extends({}, current, {\n\t\t\t\t\t\t\tdy: dy\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleStart\",\n\t\tvalue: function handleStart(xyValue) {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isNotDefined)(current) || (0, _utils.isNotDefined)(current.startXY)) {\n\t\t\t\tthis.mouseMoved = false;\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstartXY: xyValue,\n\t\t\t\t\t\tendXY: null\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t_this3.props.onStart();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleEnd\",\n\t\tvalue: function handleEnd(xyValue, moreProps, e) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar current = this.state.current;\n\t\t\tvar _props = this.props,\n\t\t\t channels = _props.channels,\n\t\t\t appearance = _props.appearance;\n\n\n\t\t\tif (this.mouseMoved && (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.startXY)) {\n\n\t\t\t\tif ((0, _utils.isNotDefined)(current.dy)) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tcurrent: _extends({}, current, {\n\t\t\t\t\t\t\tdy: 0\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvar newChannels = [].concat(_toConsumableArray(channels.map(function (d) {\n\t\t\t\t\t\treturn _extends({}, d, { selected: false });\n\t\t\t\t\t})), [_extends({}, current, { selected: true,\n\t\t\t\t\t\tappearance: appearance\n\t\t\t\t\t})]);\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tcurrent: null\n\t\t\t\t\t}, function () {\n\n\t\t\t\t\t\t_this4.props.onComplete(newChannels, moreProps, e);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar appearance = this.props.appearance;\n\t\t\tvar enabled = this.props.enabled;\n\t\t\tvar _props2 = this.props,\n\t\t\t currentPositionRadius = _props2.currentPositionRadius,\n\t\t\t currentPositionStroke = _props2.currentPositionStroke;\n\t\t\tvar _props3 = this.props,\n\t\t\t currentPositionOpacity = _props3.currentPositionOpacity,\n\t\t\t currentPositionStrokeWidth = _props3.currentPositionStrokeWidth;\n\t\t\tvar _props4 = this.props,\n\t\t\t channels = _props4.channels,\n\t\t\t hoverText = _props4.hoverText;\n\t\t\tvar _state = this.state,\n\t\t\t current = _state.current,\n\t\t\t override = _state.override;\n\n\t\t\tvar overrideIndex = (0, _utils.isDefined)(override) ? override.index : null;\n\n\t\t\tvar tempChannel = (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.endXY) ? _react2.default.createElement(_EachEquidistantChannel2.default, _extends({\n\t\t\t\tinteractive: false\n\t\t\t}, current, {\n\t\t\t\tappearance: appearance,\n\t\t\t\thoverText: hoverText })) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tchannels.map(function (each, idx) {\n\t\t\t\t\tvar eachAppearance = (0, _utils.isDefined)(each.appearance) ? _extends({}, appearance, each.appearance) : appearance;\n\n\t\t\t\t\treturn _react2.default.createElement(_EachEquidistantChannel2.default, _extends({ key: idx,\n\t\t\t\t\t\tref: _this5.saveNodeType(idx),\n\t\t\t\t\t\tindex: idx,\n\t\t\t\t\t\tselected: each.selected,\n\t\t\t\t\t\thoverText: hoverText\n\t\t\t\t\t}, idx === overrideIndex ? override : each, {\n\t\t\t\t\t\tappearance: eachAppearance,\n\t\t\t\t\t\tonDrag: _this5.handleDragChannel,\n\t\t\t\t\t\tonDragComplete: _this5.handleDragChannelComplete\n\t\t\t\t\t}));\n\t\t\t\t}),\n\t\t\t\ttempChannel,\n\t\t\t\t_react2.default.createElement(_MouseLocationIndicator2.default, {\n\t\t\t\t\tenabled: enabled,\n\t\t\t\t\tsnap: false,\n\t\t\t\t\tr: currentPositionRadius,\n\t\t\t\t\tstroke: currentPositionStroke,\n\t\t\t\t\topacity: currentPositionOpacity,\n\t\t\t\t\tstrokeWidth: currentPositionStrokeWidth,\n\t\t\t\t\tonMouseDown: this.handleStart,\n\t\t\t\t\tonClick: this.handleEnd,\n\t\t\t\t\tonMouseMove: this.handleDrawChannel })\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EquidistantChannel;\n}(_react.Component);\n\nEquidistantChannel.propTypes = {\n\tenabled: _propTypes2.default.bool.isRequired,\n\n\tonStart: _propTypes2.default.func.isRequired,\n\tonComplete: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func.isRequired,\n\n\tcurrentPositionStroke: _propTypes2.default.string,\n\tcurrentPositionStrokeWidth: _propTypes2.default.number,\n\tcurrentPositionOpacity: _propTypes2.default.number,\n\tcurrentPositionRadius: _propTypes2.default.number,\n\n\thoverText: _propTypes2.default.object.isRequired,\n\tchannels: _propTypes2.default.array.isRequired,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tfill: _propTypes2.default.string.isRequired,\n\t\tfillOpacity: _propTypes2.default.number.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tedgeFill2: _propTypes2.default.string.isRequired,\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tr: _propTypes2.default.number.isRequired\n\t}).isRequired\n};\n\nEquidistantChannel.defaultProps = {\n\tonStart: _utils.noop,\n\tonComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\n\tcurrentPositionStroke: \"#000000\",\n\tcurrentPositionOpacity: 1,\n\tcurrentPositionStrokeWidth: 3,\n\tcurrentPositionRadius: 4,\n\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: 18,\n\t\tbgWidth: 120,\n\t\ttext: \"Click to select object\"\n\t}),\n\tchannels: [],\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tstrokeOpacity: 1,\n\t\tstrokeWidth: 1,\n\t\tfill: \"#8AAFE2\",\n\t\tfillOpacity: 0.7,\n\t\tedgeStroke: \"#000000\",\n\t\tedgeFill: \"#FFFFFF\",\n\t\tedgeFill2: \"#250B98\",\n\t\tedgeStrokeWidth: 1,\n\t\tr: 5\n\t}\n};\n\nexports.default = EquidistantChannel;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../../utils\");\n\nvar _ChartDataUtil = require(\"../../utils/ChartDataUtil\");\n\nvar _utils2 = require(\"../utils\");\n\nvar _ClickableCircle = require(\"../components/ClickableCircle\");\n\nvar _ClickableCircle2 = _interopRequireDefault(_ClickableCircle);\n\nvar _ChannelWithArea = require(\"../components/ChannelWithArea\");\n\nvar _ChannelWithArea2 = _interopRequireDefault(_ChannelWithArea);\n\nvar _HoverTextNearMouse = require(\"../components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EachEquidistantChannel = function (_Component) {\n\t_inherits(EachEquidistantChannel, _Component);\n\n\tfunction EachEquidistantChannel(props) {\n\t\t_classCallCheck(this, EachEquidistantChannel);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EachEquidistantChannel.__proto__ || Object.getPrototypeOf(EachEquidistantChannel)).call(this, props));\n\n\t\t_this.handleLine1Edge1Drag = _this.handleLine1Edge1Drag.bind(_this);\n\t\t_this.handleLine1Edge2Drag = _this.handleLine1Edge2Drag.bind(_this);\n\n\t\t_this.handleDragStart = _this.handleDragStart.bind(_this);\n\t\t_this.handleChannelDrag = _this.handleChannelDrag.bind(_this);\n\n\t\t_this.handleChannelHeightChange = _this.handleChannelHeightChange.bind(_this);\n\n\t\t_this.getEdgeCircle = _this.getEdgeCircle.bind(_this);\n\t\t_this.handleHover = _this.handleHover.bind(_this);\n\n\t\t_this.isHover = _utils2.isHover.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = {};\n\n\t\t_this.state = {\n\t\t\thover: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EachEquidistantChannel, [{\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n\t\t\tif (this.state.hover !== moreProps.hovering) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thover: moreProps.hovering\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDragStart\",\n\t\tvalue: function handleDragStart() {\n\t\t\tvar _props = this.props,\n\t\t\t startXY = _props.startXY,\n\t\t\t endXY = _props.endXY,\n\t\t\t dy = _props.dy;\n\n\n\t\t\tthis.dragStart = {\n\t\t\t\tstartXY: startXY, endXY: endXY, dy: dy\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handleChannelDrag\",\n\t\tvalue: function handleChannelDrag(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t index = _props2.index,\n\t\t\t onDrag = _props2.onDrag;\n\t\t\tvar _dragStart = this.dragStart,\n\t\t\t startXY = _dragStart.startXY,\n\t\t\t endXY = _dragStart.endXY;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t fullData = moreProps.fullData;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY;\n\n\n\t\t\tvar x1 = xScale(startXY[0]);\n\t\t\tvar y1 = yScale(startXY[1]);\n\t\t\tvar x2 = xScale(endXY[0]);\n\t\t\tvar y2 = yScale(endXY[1]);\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\t\t\tvar newX2Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x2 - dx, y2 - dy], fullData);\n\t\t\tvar newY2Value = yScale.invert(y2 - dy);\n\n\t\t\t// const newDy = newY2Value - endXY[1] + this.dragStart.dy;\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: [newX1Value, newY1Value],\n\t\t\t\tendXY: [newX2Value, newY2Value],\n\t\t\t\tdy: this.dragStart.dy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleLine1Edge1Drag\",\n\t\tvalue: function handleLine1Edge1Drag(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t index = _props3.index,\n\t\t\t onDrag = _props3.onDrag;\n\t\t\tvar startXY = this.dragStart.startXY;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t fullData = moreProps.fullData,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar x1 = xScale(startXY[0]);\n\t\t\tvar y1 = yScale(startXY[1]);\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: [newX1Value, newY1Value],\n\t\t\t\tendXY: this.dragStart.endXY,\n\t\t\t\tdy: this.dragStart.dy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleLine1Edge2Drag\",\n\t\tvalue: function handleLine1Edge2Drag(moreProps) {\n\t\t\tvar _props4 = this.props,\n\t\t\t index = _props4.index,\n\t\t\t onDrag = _props4.onDrag;\n\t\t\tvar endXY = this.dragStart.endXY;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t fullData = moreProps.fullData,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar x1 = xScale(endXY[0]);\n\t\t\tvar y1 = yScale(endXY[1]);\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: this.dragStart.startXY,\n\t\t\t\tendXY: [newX1Value, newY1Value],\n\t\t\t\tdy: this.dragStart.dy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleChannelHeightChange\",\n\t\tvalue: function handleChannelHeightChange(moreProps) {\n\t\t\tvar _props5 = this.props,\n\t\t\t index = _props5.index,\n\t\t\t onDrag = _props5.onDrag;\n\t\t\tvar _dragStart2 = this.dragStart,\n\t\t\t startXY = _dragStart2.startXY,\n\t\t\t endXY = _dragStart2.endXY;\n\t\t\tvar yScale = moreProps.chartConfig.yScale;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY;\n\n\n\t\t\tvar y2 = yScale(endXY[1]);\n\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar newY2Value = yScale.invert(y2 - dy);\n\n\t\t\tvar newDy = newY2Value - endXY[1] + this.dragStart.dy;\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: startXY,\n\t\t\t\tendXY: endXY,\n\t\t\t\tdy: newDy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"getEdgeCircle\",\n\t\tvalue: function getEdgeCircle(_ref) {\n\t\t\tvar xy = _ref.xy,\n\t\t\t dragHandler = _ref.dragHandler,\n\t\t\t cursor = _ref.cursor,\n\t\t\t fill = _ref.fill,\n\t\t\t edge = _ref.edge;\n\t\t\tvar hover = this.state.hover;\n\t\t\tvar appearance = this.props.appearance;\n\t\t\tvar edgeStroke = appearance.edgeStroke,\n\t\t\t edgeStrokeWidth = appearance.edgeStrokeWidth,\n\t\t\t r = appearance.r;\n\t\t\tvar selected = this.props.selected;\n\t\t\tvar onDragComplete = this.props.onDragComplete;\n\n\n\t\t\treturn _react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\tref: this.saveNodeType(edge),\n\n\t\t\t\tshow: selected || hover,\n\t\t\t\tcx: xy[0],\n\t\t\t\tcy: xy[1],\n\t\t\t\tr: r,\n\t\t\t\tfill: fill,\n\t\t\t\tstroke: edgeStroke,\n\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\tinteractiveCursorClass: cursor,\n\n\t\t\t\tonDragStart: this.handleDragStart,\n\t\t\t\tonDrag: dragHandler,\n\t\t\t\tonDragComplete: onDragComplete });\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props6 = this.props,\n\t\t\t startXY = _props6.startXY,\n\t\t\t endXY = _props6.endXY,\n\t\t\t dy = _props6.dy;\n\t\t\tvar _props7 = this.props,\n\t\t\t interactive = _props7.interactive,\n\t\t\t hoverText = _props7.hoverText,\n\t\t\t appearance = _props7.appearance;\n\t\t\tvar edgeFill = appearance.edgeFill,\n\t\t\t edgeFill2 = appearance.edgeFill2,\n\t\t\t stroke = appearance.stroke,\n\t\t\t strokeWidth = appearance.strokeWidth,\n\t\t\t strokeOpacity = appearance.strokeOpacity,\n\t\t\t fill = appearance.fill,\n\t\t\t fillOpacity = appearance.fillOpacity;\n\t\t\tvar selected = this.props.selected;\n\t\t\tvar onDragComplete = this.props.onDragComplete;\n\t\t\tvar hover = this.state.hover;\n\n\t\t\tvar hoverTextEnabled = hoverText.enable,\n\t\t\t restHoverTextProps = _objectWithoutProperties(hoverText, [\"enable\"]);\n\n\t\t\tvar hoverHandler = interactive ? { onHover: this.handleHover, onUnHover: this.handleHover } : {};\n\n\t\t\tvar line1Edge = (0, _utils.isDefined)(startXY) && (0, _utils.isDefined)(endXY) ? _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tthis.getEdgeCircle({\n\t\t\t\t\txy: startXY,\n\t\t\t\t\tdragHandler: this.handleLine1Edge1Drag,\n\t\t\t\t\tcursor: \"react-stockcharts-move-cursor\",\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tedge: \"line1edge1\"\n\t\t\t\t}),\n\t\t\t\tthis.getEdgeCircle({\n\t\t\t\t\txy: endXY,\n\t\t\t\t\tdragHandler: this.handleLine1Edge2Drag,\n\t\t\t\t\tcursor: \"react-stockcharts-move-cursor\",\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tedge: \"line1edge2\"\n\t\t\t\t})\n\t\t\t) : null;\n\t\t\tvar line2Edge = (0, _utils.isDefined)(dy) ? _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tthis.getEdgeCircle({\n\t\t\t\t\txy: [startXY[0], startXY[1] + dy],\n\t\t\t\t\tdragHandler: this.handleChannelHeightChange,\n\t\t\t\t\tcursor: \"react-stockcharts-ns-resize-cursor\",\n\t\t\t\t\tfill: edgeFill2,\n\t\t\t\t\tedge: \"line2edge1\"\n\t\t\t\t}),\n\t\t\t\tthis.getEdgeCircle({\n\t\t\t\t\txy: [endXY[0], endXY[1] + dy],\n\t\t\t\t\tdragHandler: this.handleChannelHeightChange,\n\t\t\t\t\tcursor: \"react-stockcharts-ns-resize-cursor\",\n\t\t\t\t\tfill: edgeFill2,\n\t\t\t\t\tedge: \"line2edge2\"\n\t\t\t\t})\n\t\t\t) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(_ChannelWithArea2.default, _extends({\n\t\t\t\t\tref: this.saveNodeType(\"channel\"),\n\t\t\t\t\tselected: selected || hover\n\n\t\t\t\t}, hoverHandler, {\n\n\t\t\t\t\tstartXY: startXY,\n\t\t\t\t\tendXY: endXY,\n\t\t\t\t\tdy: dy,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeWidth: hover || selected ? strokeWidth + 1 : strokeWidth,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\tinteractiveCursorClass: \"react-stockcharts-move-cursor\",\n\n\t\t\t\t\tonDragStart: this.handleDragStart,\n\t\t\t\t\tonDrag: this.handleChannelDrag,\n\t\t\t\t\tonDragComplete: onDragComplete\n\t\t\t\t})),\n\t\t\t\tline1Edge,\n\t\t\t\tline2Edge,\n\t\t\t\t_react2.default.createElement(_HoverTextNearMouse2.default, _extends({\n\t\t\t\t\tshow: hoverTextEnabled && hover && !selected\n\t\t\t\t}, restHoverTextProps))\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EachEquidistantChannel;\n}(_react.Component);\n\nEachEquidistantChannel.propTypes = {\n\tstartXY: _propTypes2.default.arrayOf(_propTypes2.default.number).isRequired,\n\tendXY: _propTypes2.default.arrayOf(_propTypes2.default.number).isRequired,\n\tdy: _propTypes2.default.number,\n\n\tinteractive: _propTypes2.default.bool.isRequired,\n\tselected: _propTypes2.default.bool.isRequired,\n\thoverText: _propTypes2.default.object.isRequired,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tfillOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tfill: _propTypes2.default.string.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tedgeFill2: _propTypes2.default.string.isRequired,\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tr: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\n\tindex: _propTypes2.default.number,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired\n};\n\nEachEquidistantChannel.defaultProps = {\n\tyDisplayFormat: function yDisplayFormat(d) {\n\t\treturn d.toFixed(2);\n\t},\n\tinteractive: true,\n\tselected: false,\n\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\thoverText: {\n\t\tenable: false\n\t}\n};\n\nexports.default = EachEquidistantChannel;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Path = require(\"d3-path\");\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ChannelWithArea = function (_Component) {\n\t_inherits(ChannelWithArea, _Component);\n\n\tfunction ChannelWithArea(props) {\n\t\t_classCallCheck(this, ChannelWithArea);\n\n\t\tvar _this = _possibleConstructorReturn(this, (ChannelWithArea.__proto__ || Object.getPrototypeOf(ChannelWithArea)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(ChannelWithArea, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t tolerance = _props.tolerance,\n\t\t\t onHover = _props.onHover;\n\n\n\t\t\tif ((0, _utils.isDefined)(onHover)) {\n\t\t\t\tvar _helper = helper(this.props, moreProps),\n\t\t\t\t lines = _helper.lines,\n\t\t\t\t line1 = _helper.line1,\n\t\t\t\t line2 = _helper.line2;\n\n\t\t\t\tif ((0, _utils.isDefined)(line1) && (0, _utils.isDefined)(line2)) {\n\t\t\t\t\tvar mouseXY = moreProps.mouseXY,\n\t\t\t\t\t xScale = moreProps.xScale,\n\t\t\t\t\t yScale = moreProps.chartConfig.yScale;\n\n\n\t\t\t\t\tvar line1Hovering = (0, _StraightLine.isHovering)({\n\t\t\t\t\t\tx1Value: lines.line1.x1,\n\t\t\t\t\t\ty1Value: lines.line1.y1,\n\t\t\t\t\t\tx2Value: lines.line1.x2,\n\t\t\t\t\t\ty2Value: lines.line1.y2,\n\t\t\t\t\t\ttype: \"LINE\",\n\t\t\t\t\t\tmouseXY: mouseXY,\n\t\t\t\t\t\ttolerance: tolerance,\n\t\t\t\t\t\txScale: xScale,\n\t\t\t\t\t\tyScale: yScale\n\t\t\t\t\t});\n\t\t\t\t\tvar line2Hovering = (0, _StraightLine.isHovering)({\n\t\t\t\t\t\tx1Value: lines.line2.x1,\n\t\t\t\t\t\ty1Value: lines.line2.y1,\n\t\t\t\t\t\tx2Value: lines.line2.x2,\n\t\t\t\t\t\ty2Value: lines.line2.y2,\n\t\t\t\t\t\ttype: \"LINE\",\n\t\t\t\t\t\tmouseXY: mouseXY,\n\t\t\t\t\t\ttolerance: tolerance,\n\t\t\t\t\t\txScale: xScale,\n\t\t\t\t\t\tyScale: yScale\n\t\t\t\t\t});\n\n\t\t\t\t\treturn line1Hovering || line2Hovering;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t stroke = _props2.stroke,\n\t\t\t strokeWidth = _props2.strokeWidth,\n\t\t\t fillOpacity = _props2.fillOpacity,\n\t\t\t strokeOpacity = _props2.strokeOpacity,\n\t\t\t fill = _props2.fill;\n\n\t\t\tvar _helper2 = helper(this.props, moreProps),\n\t\t\t line1 = _helper2.line1,\n\t\t\t line2 = _helper2.line2;\n\n\t\t\tif ((0, _utils.isDefined)(line1)) {\n\t\t\t\tvar x1 = line1.x1,\n\t\t\t\t y1 = line1.y1,\n\t\t\t\t x2 = line1.x2,\n\t\t\t\t y2 = line1.y2;\n\n\n\t\t\t\tctx.lineWidth = strokeWidth;\n\t\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x1, y1);\n\t\t\t\tctx.lineTo(x2, y2);\n\t\t\t\tctx.stroke();\n\t\t\t\tif ((0, _utils.isDefined)(line2)) {\n\t\t\t\t\tvar line2Y1 = line2.y1,\n\t\t\t\t\t line2Y2 = line2.y2;\n\n\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(x1, line2Y1);\n\t\t\t\t\tctx.lineTo(x2, line2Y2);\n\t\t\t\t\tctx.stroke();\n\n\t\t\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, fillOpacity);\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(x1, y1);\n\n\t\t\t\t\tctx.lineTo(x2, y2);\n\t\t\t\t\tctx.lineTo(x2, line2Y2);\n\t\t\t\t\tctx.lineTo(x1, line2Y1);\n\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\tctx.fill();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t fillOpacity = _props3.fillOpacity,\n\t\t\t fill = _props3.fill,\n\t\t\t strokeOpacity = _props3.strokeOpacity;\n\n\t\t\tvar _helper3 = helper(this.props, moreProps),\n\t\t\t line1 = _helper3.line1,\n\t\t\t line2 = _helper3.line2;\n\n\t\t\tif ((0, _utils.isDefined)(line1)) {\n\t\t\t\tvar x1 = line1.x1,\n\t\t\t\t y1 = line1.y1,\n\t\t\t\t x2 = line1.x2,\n\t\t\t\t y2 = line1.y2;\n\n\t\t\t\tvar line = (0, _utils.isDefined)(line2) ? _react2.default.createElement(\"line\", {\n\t\t\t\t\tstrokeWidth: strokeWidth,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tx1: x1,\n\t\t\t\t\ty1: line2.y1,\n\t\t\t\t\tx2: x2,\n\t\t\t\t\ty2: line2.y2\n\t\t\t\t}) : null;\n\t\t\t\tvar area = (0, _utils.isDefined)(line2) ? _react2.default.createElement(\"path\", {\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\td: getPath(line1, line2)\n\t\t\t\t}) : null;\n\n\t\t\t\treturn _react2.default.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\tnull,\n\t\t\t\t\t_react2.default.createElement(\"line\", {\n\t\t\t\t\t\tstrokeWidth: strokeWidth,\n\t\t\t\t\t\tstroke: stroke,\n\t\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\t\tx1: x1,\n\t\t\t\t\t\ty1: y1,\n\t\t\t\t\t\tx2: x2,\n\t\t\t\t\t\ty2: y2\n\t\t\t\t\t}),\n\t\t\t\t\tline,\n\t\t\t\t\tarea\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props4 = this.props,\n\t\t\t selected = _props4.selected,\n\t\t\t interactiveCursorClass = _props4.interactiveCursorClass;\n\t\t\tvar _props5 = this.props,\n\t\t\t onDragStart = _props5.onDragStart,\n\t\t\t onDrag = _props5.onDrag,\n\t\t\t onDragComplete = _props5.onDragComplete,\n\t\t\t onHover = _props5.onHover,\n\t\t\t onUnHover = _props5.onUnHover;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\t\t\t\tselected: selected,\n\n\t\t\t\tonDragStart: onDragStart,\n\t\t\t\tonDrag: onDrag,\n\t\t\t\tonDragComplete: onDragComplete,\n\t\t\t\tonHover: onHover,\n\t\t\t\tonUnHover: onUnHover,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"mouseleave\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn ChannelWithArea;\n}(_react.Component);\n\nfunction getPath(line1, line2) {\n\tvar ctx = (0, _d3Path.path)();\n\tctx.moveTo(line1.x1, line1.y1);\n\tctx.lineTo(line1.x2, line1.y2);\n\tctx.lineTo(line1.x2, line2.y2);\n\tctx.lineTo(line1.x1, line2.y1);\n\n\tctx.closePath();\n\treturn ctx.toString();\n}\n\nfunction getLines(props, moreProps) {\n\tvar startXY = props.startXY,\n\t endXY = props.endXY,\n\t dy = props.dy,\n\t type = props.type;\n\tvar xScale = moreProps.xScale;\n\n\n\tif ((0, _utils.isNotDefined)(startXY) || (0, _utils.isNotDefined)(endXY)) {\n\t\treturn {};\n\t}\n\tvar line1 = (0, _StraightLine.generateLine)({\n\t\ttype: type,\n\t\tstart: startXY,\n\t\tend: endXY,\n\t\txScale: xScale\n\t});\n\tvar line2 = (0, _utils.isDefined)(dy) ? _extends({}, line1, {\n\t\ty1: line1.y1 + dy,\n\t\ty2: line1.y2 + dy\n\t}) : undefined;\n\n\treturn {\n\t\tline1: line1,\n\t\tline2: line2\n\t};\n}\n\nfunction helper(props, moreProps) {\n\tvar lines = getLines(props, moreProps);\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale;\n\n\n\tvar x1 = xScale(lines.line1.x1);\n\tvar y1 = yScale(lines.line1.y1);\n\tvar x2 = xScale(lines.line1.x2);\n\tvar y2 = yScale(lines.line1.y2);\n\n\tvar line2 = (0, _utils.isDefined)(lines.line2) ? {\n\t\tx1: x1,\n\t\ty1: yScale(lines.line2.y1),\n\t\tx2: x2,\n\t\ty2: yScale(lines.line2.y2)\n\t} : undefined;\n\n\treturn {\n\t\tlines: lines,\n\t\tline1: {\n\t\t\tx1: x1, y1: y1, x2: x2, y2: y2\n\t\t},\n\t\tline2: line2\n\t};\n}\n\nChannelWithArea.propTypes = {\n\tinteractiveCursorClass: _propTypes2.default.string,\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.string.isRequired,\n\tfillOpacity: _propTypes2.default.number.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\n\ttype: _propTypes2.default.oneOf([\"XLINE\", // extends from -Infinity to +Infinity\n\t\"RAY\", // extends to +/-Infinity in one direction\n\t\"LINE\"] // extends between the set bounds\n\t).isRequired,\n\n\tonDragStart: _propTypes2.default.func.isRequired,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdefaultClassName: _propTypes2.default.string,\n\n\ttolerance: _propTypes2.default.number.isRequired,\n\tselected: _propTypes2.default.bool.isRequired\n};\n\nChannelWithArea.defaultProps = {\n\tonDragStart: _utils.noop,\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\ttype: \"LINE\",\n\n\tstrokeWidth: 1,\n\ttolerance: 4,\n\tselected: false\n};\n\nexports.default = ChannelWithArea;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _EachLinearRegressionChannel = require(\"./wrapper/EachLinearRegressionChannel\");\n\nvar _EachLinearRegressionChannel2 = _interopRequireDefault(_EachLinearRegressionChannel);\n\nvar _MouseLocationIndicator = require(\"./components/MouseLocationIndicator\");\n\nvar _MouseLocationIndicator2 = _interopRequireDefault(_MouseLocationIndicator);\n\nvar _HoverTextNearMouse = require(\"./components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StandardDeviationChannel = function (_Component) {\n\t_inherits(StandardDeviationChannel, _Component);\n\n\tfunction StandardDeviationChannel(props) {\n\t\t_classCallCheck(this, StandardDeviationChannel);\n\n\t\tvar _this = _possibleConstructorReturn(this, (StandardDeviationChannel.__proto__ || Object.getPrototypeOf(StandardDeviationChannel)).call(this, props));\n\n\t\t_this.handleStart = _this.handleStart.bind(_this);\n\t\t_this.handleEnd = _this.handleEnd.bind(_this);\n\t\t_this.handleDrawLine = _this.handleDrawLine.bind(_this);\n\t\t_this.handleDragLine = _this.handleDragLine.bind(_this);\n\t\t_this.handleDragLineComplete = _this.handleDragLineComplete.bind(_this);\n\n\t\t_this.terminate = _utils2.terminate.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\n\t\t_this.getSelectionState = (0, _utils2.isHoverForInteractiveType)(\"channels\").bind(_this);\n\n\t\t_this.nodes = [];\n\t\t_this.state = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(StandardDeviationChannel, [{\n\t\tkey: \"handleDragLine\",\n\t\tvalue: function handleDragLine(index, newXYValue) {\n\t\t\tthis.setState({\n\t\t\t\toverride: _extends({\n\t\t\t\t\tindex: index\n\t\t\t\t}, newXYValue)\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragLineComplete\",\n\t\tvalue: function handleDragLineComplete(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar override = this.state.override;\n\t\t\tvar channels = this.props.channels;\n\n\t\t\tif ((0, _utils.isDefined)(override)) {\n\n\t\t\t\tvar newChannels = channels.map(function (each, idx) {\n\t\t\t\t\treturn idx === override.index ? _extends({}, each, {\n\t\t\t\t\t\tstart: [override.x1Value, override.y1Value],\n\t\t\t\t\t\tend: [override.x2Value, override.y2Value],\n\t\t\t\t\t\tselected: true\n\t\t\t\t\t}) : each;\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\toverride: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this2.props.onComplete(newChannels, moreProps);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrawLine\",\n\t\tvalue: function handleDrawLine(xyValue) {\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.start)) {\n\t\t\t\tthis.mouseMoved = true;\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstart: current.start,\n\t\t\t\t\t\tend: xyValue\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleStart\",\n\t\tvalue: function handleStart(xyValue) {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isNotDefined)(current) || (0, _utils.isNotDefined)(current.start)) {\n\t\t\t\tthis.mouseMoved = false;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstart: xyValue,\n\t\t\t\t\t\tend: null\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t_this3.props.onStart();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleEnd\",\n\t\tvalue: function handleEnd(xyValue, moreProps, e) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar current = this.state.current;\n\t\t\tvar _props = this.props,\n\t\t\t appearance = _props.appearance,\n\t\t\t channels = _props.channels;\n\n\n\t\t\tif (this.mouseMoved && (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.start)) {\n\t\t\t\tvar newChannels = [].concat(_toConsumableArray(channels.map(function (d) {\n\t\t\t\t\treturn _extends({}, d, { selected: false });\n\t\t\t\t})), [{\n\t\t\t\t\tstart: current.start,\n\t\t\t\t\tend: xyValue,\n\t\t\t\t\tselected: true,\n\t\t\t\t\tappearance: appearance\n\t\t\t\t}]);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this4.props.onComplete(newChannels, moreProps, e);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar appearance = this.props.appearance;\n\t\t\tvar _props2 = this.props,\n\t\t\t enabled = _props2.enabled,\n\t\t\t snapTo = _props2.snapTo;\n\t\t\tvar _props3 = this.props,\n\t\t\t currentPositionRadius = _props3.currentPositionRadius,\n\t\t\t currentPositionStroke = _props3.currentPositionStroke;\n\t\t\tvar _props4 = this.props,\n\t\t\t currentPositionOpacity = _props4.currentPositionOpacity,\n\t\t\t currentPositionStrokeWidth = _props4.currentPositionStrokeWidth;\n\t\t\tvar _props5 = this.props,\n\t\t\t hoverText = _props5.hoverText,\n\t\t\t channels = _props5.channels;\n\t\t\tvar _state = this.state,\n\t\t\t current = _state.current,\n\t\t\t override = _state.override;\n\n\n\t\t\tvar eachDefaultAppearance = _extends({}, StandardDeviationChannel.defaultProps.appearance, appearance);\n\n\t\t\tvar hoverTextDefault = _extends({}, StandardDeviationChannel.defaultProps.hoverText, hoverText);\n\n\t\t\tvar tempLine = (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.end) ? _react2.default.createElement(_EachLinearRegressionChannel2.default, {\n\t\t\t\tinteractive: false,\n\t\t\t\tx1Value: current.start[0],\n\t\t\t\tx2Value: current.end[0],\n\t\t\t\tappearance: eachDefaultAppearance,\n\t\t\t\thoverText: hoverTextDefault\n\t\t\t}) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tchannels.map(function (each, idx) {\n\t\t\t\t\tvar eachAppearance = (0, _utils.isDefined)(each.appearance) ? _extends({}, eachDefaultAppearance, each.appearance) : eachDefaultAppearance;\n\n\t\t\t\t\tvar eachHoverText = (0, _utils.isDefined)(each.hoverText) ? _extends({}, hoverTextDefault, each.hoverText) : hoverTextDefault;\n\n\t\t\t\t\treturn _react2.default.createElement(_EachLinearRegressionChannel2.default, { key: idx,\n\t\t\t\t\t\tref: _this5.saveNodeType(idx),\n\t\t\t\t\t\tindex: idx,\n\t\t\t\t\t\tselected: each.selected,\n\n\t\t\t\t\t\tx1Value: (0, _utils2.getValueFromOverride)(override, idx, \"x1Value\", each.start[0]),\n\t\t\t\t\t\tx2Value: (0, _utils2.getValueFromOverride)(override, idx, \"x2Value\", each.end[0]),\n\n\t\t\t\t\t\tappearance: eachAppearance,\n\t\t\t\t\t\tsnapTo: snapTo,\n\t\t\t\t\t\thoverText: eachHoverText,\n\n\t\t\t\t\t\tonDrag: _this5.handleDragLine,\n\t\t\t\t\t\tonDragComplete: _this5.handleDragLineComplete,\n\t\t\t\t\t\tedgeInteractiveCursor: \"react-stockcharts-move-cursor\"\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\ttempLine,\n\t\t\t\t_react2.default.createElement(_MouseLocationIndicator2.default, {\n\t\t\t\t\tenabled: enabled,\n\t\t\t\t\tsnap: true,\n\t\t\t\t\tsnapTo: snapTo,\n\t\t\t\t\tr: currentPositionRadius,\n\t\t\t\t\tstroke: currentPositionStroke,\n\t\t\t\t\topacity: currentPositionOpacity,\n\t\t\t\t\tstrokeWidth: currentPositionStrokeWidth,\n\t\t\t\t\tonMouseDown: this.handleStart,\n\t\t\t\t\tonClick: this.handleEnd,\n\t\t\t\t\tonMouseMove: this.handleDrawLine\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn StandardDeviationChannel;\n}(_react.Component);\n\nStandardDeviationChannel.propTypes = {\n\tenabled: _propTypes2.default.bool.isRequired,\n\tsnapTo: _propTypes2.default.func,\n\n\tonStart: _propTypes2.default.func,\n\tonComplete: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func,\n\n\tcurrentPositionStroke: _propTypes2.default.string,\n\tcurrentPositionStrokeWidth: _propTypes2.default.number,\n\tcurrentPositionOpacity: _propTypes2.default.number,\n\tcurrentPositionRadius: _propTypes2.default.number,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string,\n\t\tstrokeOpacity: _propTypes2.default.number,\n\t\tstrokeWidth: _propTypes2.default.number,\n\t\tfill: _propTypes2.default.string,\n\t\tfillOpacity: _propTypes2.default.number,\n\t\tedgeStrokeWidth: _propTypes2.default.number,\n\t\tedgeStroke: _propTypes2.default.string,\n\t\tedgeFill: _propTypes2.default.string,\n\t\tr: _propTypes2.default.number\n\t}).isRequired,\n\n\thoverText: _propTypes2.default.object,\n\tchannels: _propTypes2.default.array.isRequired\n};\n\nStandardDeviationChannel.defaultProps = {\n\tsnapTo: function snapTo(d) {\n\t\treturn d.close;\n\t},\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tfillOpacity: 0.2,\n\t\tstrokeOpacity: 1,\n\t\tstrokeWidth: 1,\n\t\tfill: \"#8AAFE2\",\n\t\tedgeStrokeWidth: 2,\n\t\tedgeStroke: \"#000000\",\n\t\tedgeFill: \"#FFFFFF\",\n\t\tr: 5\n\t},\n\n\tonStart: _utils.noop,\n\tonComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\n\tcurrentPositionStroke: \"#000000\",\n\tcurrentPositionOpacity: 1,\n\tcurrentPositionStrokeWidth: 3,\n\tcurrentPositionRadius: 4,\n\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: \"auto\",\n\t\tbgWidth: \"auto\",\n\t\ttext: \"Click and drag the edge circles\",\n\t\tselectedText: \"\"\n\t}),\n\tchannels: []\n};\n\nexports.default = StandardDeviationChannel;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.getNewXY = getNewXY;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../../utils\");\n\nvar _ChartDataUtil = require(\"../../utils/ChartDataUtil\");\n\nvar _utils2 = require(\"../utils\");\n\nvar _HoverTextNearMouse = require(\"../components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nvar _LinearRegressionChannelWithArea = require(\"../components/LinearRegressionChannelWithArea\");\n\nvar _LinearRegressionChannelWithArea2 = _interopRequireDefault(_LinearRegressionChannelWithArea);\n\nvar _ClickableCircle = require(\"../components/ClickableCircle\");\n\nvar _ClickableCircle2 = _interopRequireDefault(_ClickableCircle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EachLinearRegressionChannel = function (_Component) {\n\t_inherits(EachLinearRegressionChannel, _Component);\n\n\tfunction EachLinearRegressionChannel(props) {\n\t\t_classCallCheck(this, EachLinearRegressionChannel);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EachLinearRegressionChannel.__proto__ || Object.getPrototypeOf(EachLinearRegressionChannel)).call(this, props));\n\n\t\t_this.handleEdge1Drag = _this.handleEdge1Drag.bind(_this);\n\t\t_this.handleEdge2Drag = _this.handleEdge2Drag.bind(_this);\n\n\t\t_this.handleHover = _this.handleHover.bind(_this);\n\n\t\t_this.isHover = _utils2.isHover.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = {};\n\n\t\t_this.state = {\n\t\t\thover: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EachLinearRegressionChannel, [{\n\t\tkey: \"handleEdge1Drag\",\n\t\tvalue: function handleEdge1Drag(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t index = _props.index,\n\t\t\t onDrag = _props.onDrag,\n\t\t\t snapTo = _props.snapTo;\n\t\t\tvar x2Value = this.props.x2Value;\n\n\t\t\tvar _getNewXY = getNewXY(moreProps, snapTo),\n\t\t\t _getNewXY2 = _slicedToArray(_getNewXY, 1),\n\t\t\t x1Value = _getNewXY2[0];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1Value: x1Value,\n\t\t\t\tx2Value: x2Value\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleEdge2Drag\",\n\t\tvalue: function handleEdge2Drag(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t index = _props2.index,\n\t\t\t onDrag = _props2.onDrag,\n\t\t\t snapTo = _props2.snapTo;\n\t\t\tvar x1Value = this.props.x1Value;\n\n\t\t\tvar _getNewXY3 = getNewXY(moreProps, snapTo),\n\t\t\t _getNewXY4 = _slicedToArray(_getNewXY3, 1),\n\t\t\t x2Value = _getNewXY4[0];\n\n\t\t\tonDrag(index, {\n\t\t\t\tx1Value: x1Value,\n\t\t\t\tx2Value: x2Value\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n\t\t\tif (this.state.hover !== moreProps.hovering) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thover: moreProps.hovering\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props3 = this.props,\n\t\t\t x1Value = _props3.x1Value,\n\t\t\t x2Value = _props3.x2Value,\n\t\t\t appearance = _props3.appearance,\n\t\t\t edgeInteractiveCursor = _props3.edgeInteractiveCursor,\n\t\t\t hoverText = _props3.hoverText,\n\t\t\t interactive = _props3.interactive,\n\t\t\t selected = _props3.selected,\n\t\t\t onDragComplete = _props3.onDragComplete;\n\t\t\tvar stroke = appearance.stroke,\n\t\t\t strokeWidth = appearance.strokeWidth,\n\t\t\t strokeOpacity = appearance.strokeOpacity,\n\t\t\t fill = appearance.fill,\n\t\t\t fillOpacity = appearance.fillOpacity,\n\t\t\t r = appearance.r,\n\t\t\t edgeStrokeWidth = appearance.edgeStrokeWidth,\n\t\t\t edgeFill = appearance.edgeFill,\n\t\t\t edgeStroke = appearance.edgeStroke;\n\t\t\tvar hover = this.state.hover;\n\n\n\t\t\tvar hoverHandler = interactive ? { onHover: this.handleHover, onUnHover: this.handleHover } : {};\n\n\t\t\tvar hoverTextEnabled = hoverText.enable,\n\t\t\t hoverTextSelected = hoverText.selectedText,\n\t\t\t hoverTextUnselected = hoverText.text,\n\t\t\t restHoverTextProps = _objectWithoutProperties(hoverText, [\"enable\", \"selectedText\", \"text\"]);\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(_LinearRegressionChannelWithArea2.default, _extends({\n\t\t\t\t\tref: this.saveNodeType(\"area\"),\n\t\t\t\t\tselected: selected || hover\n\t\t\t\t}, hoverHandler, {\n\n\t\t\t\t\tx1Value: x1Value,\n\t\t\t\t\tx2Value: x2Value,\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeWidth: hover || selected ? strokeWidth + 1 : strokeWidth,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tfillOpacity: fillOpacity })),\n\t\t\t\t_react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\t\tref: this.saveNodeType(\"edge1\"),\n\t\t\t\t\tshow: selected || hover,\n\t\t\t\t\txyProvider: (0, _LinearRegressionChannelWithArea.edge1Provider)(this.props),\n\t\t\t\t\tr: r,\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tstroke: edgeStroke,\n\t\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\t\tinteractiveCursorClass: edgeInteractiveCursor,\n\t\t\t\t\tonDrag: this.handleEdge1Drag,\n\t\t\t\t\tonDragComplete: onDragComplete }),\n\t\t\t\t_react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\t\tref: this.saveNodeType(\"edge2\"),\n\t\t\t\t\tshow: selected || hover,\n\t\t\t\t\txyProvider: (0, _LinearRegressionChannelWithArea.edge2Provider)(this.props),\n\t\t\t\t\tr: r,\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tstroke: edgeStroke,\n\t\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\t\tinteractiveCursorClass: edgeInteractiveCursor,\n\t\t\t\t\tonDrag: this.handleEdge2Drag,\n\t\t\t\t\tonDragComplete: onDragComplete }),\n\t\t\t\t_react2.default.createElement(_HoverTextNearMouse2.default, _extends({\n\t\t\t\t\tshow: hoverTextEnabled && hover\n\t\t\t\t}, restHoverTextProps, {\n\t\t\t\t\ttext: selected ? hoverTextSelected : hoverTextUnselected\n\t\t\t\t}))\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EachLinearRegressionChannel;\n}(_react.Component);\n\nfunction getNewXY(moreProps, snapTo) {\n\tvar xScale = moreProps.xScale,\n\t xAccessor = moreProps.xAccessor,\n\t plotData = moreProps.plotData,\n\t mouseXY = moreProps.mouseXY;\n\n\n\tvar currentItem = (0, _ChartDataUtil.getCurrentItem)(xScale, xAccessor, mouseXY, plotData);\n\tvar x = xAccessor(currentItem);\n\tvar y = snapTo(currentItem);\n\n\treturn [x, y];\n}\n\nEachLinearRegressionChannel.propTypes = {\n\tdefaultClassName: _propTypes2.default.string,\n\n\tx1Value: _propTypes2.default.any.isRequired,\n\tx2Value: _propTypes2.default.any.isRequired,\n\n\tindex: _propTypes2.default.number,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tfillOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tfill: _propTypes2.default.string.isRequired,\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tr: _propTypes2.default.number.isRequired\n\t}).isRequired,\n\n\tedgeInteractiveCursor: _propTypes2.default.string,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tsnapTo: _propTypes2.default.func,\n\tinteractive: _propTypes2.default.bool.isRequired,\n\tselected: _propTypes2.default.bool.isRequired,\n\n\thoverText: _propTypes2.default.object.isRequired\n};\n\nEachLinearRegressionChannel.defaultProps = {\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tfillOpacity: 0.7,\n\t\tstrokeOpacity: 1,\n\t\tstrokeWidth: 1,\n\t\tfill: \"#8AAFE2\",\n\t\tedgeStrokeWidth: 2,\n\t\tedgeStroke: \"#000000\",\n\t\tedgeFill: \"#FFFFFF\",\n\t\tr: 5\n\t},\n\tinteractive: true,\n\tselected: false,\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: 18,\n\t\tbgWidth: 175,\n\t\ttext: \"Click and drag the edge circles\"\n\t})\n};\n\nexports.default = EachLinearRegressionChannel;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.edge1Provider = edge1Provider;\nexports.edge2Provider = edge2Provider;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Array = require(\"d3-array\");\n\nvar _d3Path = require(\"d3-path\");\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinearRegressionChannelWithArea = function (_Component) {\n\t_inherits(LinearRegressionChannelWithArea, _Component);\n\n\tfunction LinearRegressionChannelWithArea(props) {\n\t\t_classCallCheck(this, LinearRegressionChannelWithArea);\n\n\t\tvar _this = _possibleConstructorReturn(this, (LinearRegressionChannelWithArea.__proto__ || Object.getPrototypeOf(LinearRegressionChannelWithArea)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(LinearRegressionChannelWithArea, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t tolerance = _props.tolerance,\n\t\t\t onHover = _props.onHover;\n\n\n\t\t\tif ((0, _utils.isDefined)(onHover)) {\n\t\t\t\tvar mouseXY = moreProps.mouseXY;\n\n\t\t\t\tvar _helper = helper(this.props, moreProps),\n\t\t\t\t x1 = _helper.x1,\n\t\t\t\t y1 = _helper.y1,\n\t\t\t\t x2 = _helper.x2,\n\t\t\t\t y2 = _helper.y2,\n\t\t\t\t dy = _helper.dy;\n\n\t\t\t\tvar yDiffs = [-dy, 0, dy];\n\n\t\t\t\tvar hovering = yDiffs.reduce(function (result, diff) {\n\t\t\t\t\treturn result || (0, _StraightLine.isHovering2)([x1, y1 + diff], [x2, y2 + diff], mouseXY, tolerance);\n\t\t\t\t}, false);\n\t\t\t\treturn hovering;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t stroke = _props2.stroke,\n\t\t\t strokeWidth = _props2.strokeWidth,\n\t\t\t fillOpacity = _props2.fillOpacity,\n\t\t\t strokeOpacity = _props2.strokeOpacity,\n\t\t\t fill = _props2.fill;\n\n\t\t\tvar _helper2 = helper(this.props, moreProps),\n\t\t\t x1 = _helper2.x1,\n\t\t\t y1 = _helper2.y1,\n\t\t\t x2 = _helper2.x2,\n\t\t\t y2 = _helper2.y2,\n\t\t\t dy = _helper2.dy;\n\n\t\t\tctx.lineWidth = strokeWidth;\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, fillOpacity);\n\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x1, y1 - dy);\n\t\t\tctx.lineTo(x2, y2 - dy);\n\t\t\tctx.stroke();\n\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x2, y2 + dy);\n\t\t\tctx.lineTo(x1, y1 + dy);\n\t\t\tctx.stroke();\n\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x1, y1 - dy);\n\t\t\tctx.lineTo(x2, y2 - dy);\n\t\t\tctx.lineTo(x2, y2 + dy);\n\t\t\tctx.lineTo(x1, y1 + dy);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x2, y2);\n\t\t\tctx.lineTo(x1, y1);\n\t\t\tctx.stroke();\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t fillOpacity = _props3.fillOpacity,\n\t\t\t strokeOpacity = _props3.strokeOpacity,\n\t\t\t fill = _props3.fill;\n\n\t\t\tvar _helper3 = helper(this.props, moreProps),\n\t\t\t x1 = _helper3.x1,\n\t\t\t y1 = _helper3.y1,\n\t\t\t x2 = _helper3.x2,\n\t\t\t y2 = _helper3.y2,\n\t\t\t dy = _helper3.dy;\n\n\t\t\tvar line = {\n\t\t\t\tstrokeWidth: strokeWidth,\n\t\t\t\tstroke: stroke,\n\t\t\t\tstrokeOpacity: strokeOpacity\n\t\t\t};\n\t\t\tvar ctx = (0, _d3Path.path)();\n\t\t\tctx.moveTo(x1, y1 - dy);\n\t\t\tctx.lineTo(x2, y2 - dy);\n\t\t\tctx.lineTo(x2, y2 + dy);\n\t\t\tctx.lineTo(x1, y1 + dy);\n\t\t\tctx.closePath();\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(\"line\", _extends({}, line, {\n\t\t\t\t\tx1: x1,\n\t\t\t\t\ty1: y1 - dy,\n\t\t\t\t\tx2: x2,\n\t\t\t\t\ty2: y2 - dy\n\t\t\t\t})),\n\t\t\t\t_react2.default.createElement(\"line\", _extends({}, line, {\n\t\t\t\t\tx1: x1,\n\t\t\t\t\ty1: y1 + dy,\n\t\t\t\t\tx2: x2,\n\t\t\t\t\ty2: y2 + dy\n\t\t\t\t})),\n\t\t\t\t_react2.default.createElement(\"path\", {\n\t\t\t\t\td: ctx.toString(),\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tfillOpacity: fillOpacity\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(\"line\", _extends({}, line, {\n\t\t\t\t\tx1: x1,\n\t\t\t\t\ty1: y1,\n\t\t\t\t\tx2: x2,\n\t\t\t\t\ty2: y2\n\t\t\t\t}))\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props4 = this.props,\n\t\t\t selected = _props4.selected,\n\t\t\t interactiveCursorClass = _props4.interactiveCursorClass;\n\t\t\tvar _props5 = this.props,\n\t\t\t onHover = _props5.onHover,\n\t\t\t onUnHover = _props5.onUnHover;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\t\t\t\tselected: selected,\n\n\t\t\t\tonHover: onHover,\n\t\t\t\tonUnHover: onUnHover,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"mouseleave\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn LinearRegressionChannelWithArea;\n}(_react.Component);\n\nfunction edge1Provider(props) {\n\treturn function (moreProps) {\n\t\tvar _helper4 = helper(props, moreProps),\n\t\t x1 = _helper4.x1,\n\t\t y1 = _helper4.y1;\n\n\t\treturn [x1, y1];\n\t};\n}\n\nfunction edge2Provider(props) {\n\treturn function (moreProps) {\n\t\tvar _helper5 = helper(props, moreProps),\n\t\t x2 = _helper5.x2,\n\t\t y2 = _helper5.y2;\n\n\t\treturn [x2, y2];\n\t};\n}\n\nfunction helper(props, moreProps) {\n\tvar x1Value = props.x1Value,\n\t x2Value = props.x2Value,\n\t type = props.type;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale,\n\t fullData = moreProps.fullData;\n\tvar xAccessor = moreProps.xAccessor;\n\n\t/*\n http://www.metastock.com/Customer/Resources/TAAZ/?p=65\n y = a + bx\n n = length of array\n b = (n * sum(x*y) - sum(xs) * sum(ys)) / (n * sum(xSquareds) - (sum(xs) ^ 2))\n a = (sum of closes)\n */\n\n\tvar _getClosestItemIndexe = (0, _utils.getClosestItemIndexes)(fullData, x1Value, xAccessor),\n\t left = _getClosestItemIndexe.left;\n\n\tvar _getClosestItemIndexe2 = (0, _utils.getClosestItemIndexes)(fullData, x2Value, xAccessor),\n\t right = _getClosestItemIndexe2.right;\n\n\tvar startIndex = Math.min(left, right);\n\tvar endIndex = Math.max(left, right) + 1;\n\n\tvar array = fullData.slice(startIndex, endIndex);\n\n\tvar xs = array.map(function (d) {\n\t\treturn xAccessor(d).valueOf();\n\t});\n\tvar ys = array.map(function (d) {\n\t\treturn d.close;\n\t});\n\tvar n = array.length;\n\n\tvar combine = (0, _utils.zipper)().combine(function (x, y) {\n\t\treturn x * y;\n\t});\n\n\tvar xys = combine(xs, ys);\n\tvar xSquareds = xs.map(function (x) {\n\t\treturn Math.pow(x, 2);\n\t});\n\n\tvar b = (n * (0, _d3Array.sum)(xys) - (0, _d3Array.sum)(xs) * (0, _d3Array.sum)(ys)) / (n * (0, _d3Array.sum)(xSquareds) - Math.pow((0, _d3Array.sum)(xs), 2));\n\tvar a = ((0, _d3Array.sum)(ys) - b * (0, _d3Array.sum)(xs)) / n;\n\n\tvar newy1 = a + b * x1Value;\n\tvar newy2 = a + b * x2Value;\n\n\tvar x1 = xScale(x1Value);\n\tvar y1 = yScale(newy1);\n\tvar x2 = xScale(x2Value);\n\tvar y2 = yScale(newy2);\n\n\tvar stdDev = type === \"SD\" ? (0, _d3Array.deviation)(array, function (d) {\n\t\treturn d.close;\n\t}) : 0;\n\n\tvar dy = yScale(newy1 - stdDev) - y1;\n\n\treturn {\n\t\tx1: x1, y1: y1, x2: x2, y2: y2, dy: dy\n\t};\n}\n\nLinearRegressionChannelWithArea.propTypes = {\n\tx1Value: _propTypes2.default.any.isRequired,\n\tx2Value: _propTypes2.default.any.isRequired,\n\n\ttype: _propTypes2.default.oneOf([\"SD\", // standard deviation channel\n\t\"Raff\"] // Raff Regression Channel\n\t).isRequired,\n\n\tinteractiveCursorClass: _propTypes2.default.string,\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.string.isRequired,\n\tfillOpacity: _propTypes2.default.number.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\n\tonDragStart: _propTypes2.default.func.isRequired,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdefaultClassName: _propTypes2.default.string,\n\n\ttolerance: _propTypes2.default.number.isRequired,\n\tselected: _propTypes2.default.bool.isRequired\n};\n\nLinearRegressionChannelWithArea.defaultProps = {\n\tonDragStart: _utils.noop,\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\ttype: \"SD\", // standard dev\n\n\tstrokeWidth: 1,\n\ttolerance: 4,\n\tselected: false\n};\n\nexports.default = LinearRegressionChannelWithArea;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _EachGannFan = require(\"./wrapper/EachGannFan\");\n\nvar _EachGannFan2 = _interopRequireDefault(_EachGannFan);\n\nvar _MouseLocationIndicator = require(\"./components/MouseLocationIndicator\");\n\nvar _MouseLocationIndicator2 = _interopRequireDefault(_MouseLocationIndicator);\n\nvar _HoverTextNearMouse = require(\"./components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GannFan = function (_Component) {\n\t_inherits(GannFan, _Component);\n\n\tfunction GannFan(props) {\n\t\t_classCallCheck(this, GannFan);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GannFan.__proto__ || Object.getPrototypeOf(GannFan)).call(this, props));\n\n\t\t_this.handleStart = _this.handleStart.bind(_this);\n\t\t_this.handleEnd = _this.handleEnd.bind(_this);\n\t\t_this.handleDrawFan = _this.handleDrawFan.bind(_this);\n\t\t_this.handleDragFan = _this.handleDragFan.bind(_this);\n\t\t_this.handleDragFanComplete = _this.handleDragFanComplete.bind(_this);\n\n\t\t_this.terminate = _utils2.terminate.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\n\t\t_this.getSelectionState = (0, _utils2.isHoverForInteractiveType)(\"fans\").bind(_this);\n\n\t\t_this.nodes = [];\n\t\t_this.state = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(GannFan, [{\n\t\tkey: \"handleDragFan\",\n\t\tvalue: function handleDragFan(index, newXYValue) {\n\t\t\tthis.setState({\n\t\t\t\toverride: _extends({\n\t\t\t\t\tindex: index\n\t\t\t\t}, newXYValue)\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragFanComplete\",\n\t\tvalue: function handleDragFanComplete(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar override = this.state.override;\n\t\t\tvar fans = this.props.fans;\n\n\n\t\t\tif ((0, _utils.isDefined)(override)) {\n\t\t\t\tvar index = override.index,\n\t\t\t\t rest = _objectWithoutProperties(override, [\"index\"]);\n\n\t\t\t\tvar newfans = fans.map(function (each, idx) {\n\t\t\t\t\treturn idx === index ? _extends({}, each, rest, { selected: true }) : each;\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\toverride: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this2.props.onComplete(newfans, moreProps);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrawFan\",\n\t\tvalue: function handleDrawFan(xyValue) {\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.startXY)) {\n\t\t\t\tthis.mouseMoved = true;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstartXY: current.startXY,\n\t\t\t\t\t\tendXY: xyValue\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleStart\",\n\t\tvalue: function handleStart(xyValue) {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isNotDefined)(current) || (0, _utils.isNotDefined)(current.startXY)) {\n\t\t\t\tthis.mouseMoved = false;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstartXY: xyValue,\n\t\t\t\t\t\tendXY: null\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t_this3.props.onStart();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleEnd\",\n\t\tvalue: function handleEnd(xyValyue, moreProps, e) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar current = this.state.current;\n\t\t\tvar _props = this.props,\n\t\t\t fans = _props.fans,\n\t\t\t appearance = _props.appearance;\n\n\n\t\t\tif (this.mouseMoved && (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.startXY)) {\n\t\t\t\tvar newfans = [].concat(_toConsumableArray(fans.map(function (d) {\n\t\t\t\t\treturn _extends({}, d, { selected: false });\n\t\t\t\t})), [_extends({}, current, { selected: true, appearance: appearance })]);\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this4.props.onComplete(newfans, moreProps, e);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar _props2 = this.props,\n\t\t\t enabled = _props2.enabled,\n\t\t\t appearance = _props2.appearance;\n\t\t\tvar _props3 = this.props,\n\t\t\t currentPositionRadius = _props3.currentPositionRadius,\n\t\t\t currentPositionStroke = _props3.currentPositionStroke;\n\t\t\tvar _props4 = this.props,\n\t\t\t currentPositionOpacity = _props4.currentPositionOpacity,\n\t\t\t currentPositionStrokeWidth = _props4.currentPositionStrokeWidth;\n\t\t\tvar _props5 = this.props,\n\t\t\t hoverText = _props5.hoverText,\n\t\t\t fans = _props5.fans;\n\t\t\tvar _state = this.state,\n\t\t\t current = _state.current,\n\t\t\t override = _state.override;\n\n\t\t\tvar overrideIndex = (0, _utils.isDefined)(override) ? override.index : null;\n\n\t\t\tvar tempChannel = (0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.endXY) ? _react2.default.createElement(_EachGannFan2.default, _extends({\n\t\t\t\tinteractive: false\n\t\t\t}, current, {\n\t\t\t\tappearance: appearance,\n\t\t\t\thoverText: hoverText\n\t\t\t})) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tfans.map(function (each, idx) {\n\t\t\t\t\tvar eachAppearance = (0, _utils.isDefined)(each.appearance) ? _extends({}, appearance, each.appearance) : appearance;\n\n\t\t\t\t\treturn _react2.default.createElement(_EachGannFan2.default, _extends({ key: idx,\n\t\t\t\t\t\tref: _this5.saveNodeType(idx),\n\t\t\t\t\t\tindex: idx,\n\t\t\t\t\t\tselected: each.selected\n\t\t\t\t\t}, idx === overrideIndex ? override : each, {\n\t\t\t\t\t\tappearance: eachAppearance,\n\t\t\t\t\t\thoverText: hoverText,\n\t\t\t\t\t\tonDrag: _this5.handleDragFan,\n\t\t\t\t\t\tonDragComplete: _this5.handleDragFanComplete\n\t\t\t\t\t}));\n\t\t\t\t}),\n\t\t\t\ttempChannel,\n\t\t\t\t_react2.default.createElement(_MouseLocationIndicator2.default, {\n\t\t\t\t\tenabled: enabled,\n\t\t\t\t\tsnap: false,\n\t\t\t\t\tr: currentPositionRadius,\n\t\t\t\t\tstroke: currentPositionStroke,\n\t\t\t\t\topacity: currentPositionOpacity,\n\t\t\t\t\tstrokeWidth: currentPositionStrokeWidth,\n\t\t\t\t\tonMouseDown: this.handleStart,\n\t\t\t\t\tonClick: this.handleEnd,\n\t\t\t\t\tonMouseMove: this.handleDrawFan\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn GannFan;\n}(_react.Component);\n\nGannFan.propTypes = {\n\tenabled: _propTypes2.default.bool.isRequired,\n\n\tonStart: _propTypes2.default.func.isRequired,\n\tonComplete: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func,\n\n\tcurrentPositionStroke: _propTypes2.default.string,\n\tcurrentPositionStrokeWidth: _propTypes2.default.number,\n\tcurrentPositionOpacity: _propTypes2.default.number,\n\tcurrentPositionRadius: _propTypes2.default.number,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tfillOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tr: _propTypes2.default.number.isRequired,\n\t\tfill: _propTypes2.default.arrayOf(_propTypes2.default.string).isRequired,\n\t\tfontFamily: _propTypes2.default.string.isRequired,\n\t\tfontSize: _propTypes2.default.number.isRequired,\n\t\tfontFill: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\thoverText: _propTypes2.default.object.isRequired,\n\n\tfans: _propTypes2.default.array.isRequired\n};\n\nGannFan.defaultProps = {\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tfillOpacity: 0.2,\n\t\tstrokeOpacity: 1,\n\t\tstrokeWidth: 1,\n\t\tedgeStroke: \"#000000\",\n\t\tedgeFill: \"#FFFFFF\",\n\t\tedgeStrokeWidth: 1,\n\t\tr: 5,\n\t\tfill: [\"#e41a1c\", \"#377eb8\", \"#4daf4a\", \"#984ea3\", \"#ff7f00\", \"#ffff33\", \"#a65628\", \"#f781bf\"],\n\t\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\t\tfontSize: 12,\n\t\tfontFill: \"#000000\"\n\t},\n\n\tonStart: _utils.noop,\n\tonComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\n\tcurrentPositionStroke: \"#000000\",\n\tcurrentPositionOpacity: 1,\n\tcurrentPositionStrokeWidth: 3,\n\tcurrentPositionRadius: 4,\n\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: 18,\n\t\tbgWidth: 120,\n\t\ttext: \"Click to select object\"\n\t}),\n\tfans: []\n};\n\nexports.default = GannFan;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../../utils\");\n\nvar _ChartDataUtil = require(\"../../utils/ChartDataUtil\");\n\nvar _utils2 = require(\"../utils\");\n\nvar _ClickableCircle = require(\"../components/ClickableCircle\");\n\nvar _ClickableCircle2 = _interopRequireDefault(_ClickableCircle);\n\nvar _GannFan = require(\"../components/GannFan\");\n\nvar _GannFan2 = _interopRequireDefault(_GannFan);\n\nvar _HoverTextNearMouse = require(\"../components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EachGannFan = function (_Component) {\n\t_inherits(EachGannFan, _Component);\n\n\tfunction EachGannFan(props) {\n\t\t_classCallCheck(this, EachGannFan);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EachGannFan.__proto__ || Object.getPrototypeOf(EachGannFan)).call(this, props));\n\n\t\t_this.handleLine1Edge1Drag = _this.handleLine1Edge1Drag.bind(_this);\n\t\t_this.handleLine1Edge2Drag = _this.handleLine1Edge2Drag.bind(_this);\n\n\t\t_this.handleDragStart = _this.handleDragStart.bind(_this);\n\t\t_this.handleFanDrag = _this.handleFanDrag.bind(_this);\n\n\t\t_this.handleChannelHeightChange = _this.handleChannelHeightChange.bind(_this);\n\n\t\t_this.handleHover = _this.handleHover.bind(_this);\n\t\t_this.getEdgeCircle = _this.getEdgeCircle.bind(_this);\n\n\t\t_this.isHover = _utils2.isHover.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = {};\n\n\t\t_this.state = {\n\t\t\thover: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EachGannFan, [{\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n\t\t\tif (this.state.hover !== moreProps.hovering) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thover: moreProps.hovering\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDragStart\",\n\t\tvalue: function handleDragStart() {\n\t\t\tvar _props = this.props,\n\t\t\t startXY = _props.startXY,\n\t\t\t endXY = _props.endXY,\n\t\t\t dy = _props.dy;\n\n\n\t\t\tthis.dragStart = {\n\t\t\t\tstartXY: startXY, endXY: endXY, dy: dy\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handleFanDrag\",\n\t\tvalue: function handleFanDrag(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t index = _props2.index,\n\t\t\t onDrag = _props2.onDrag;\n\t\t\tvar _dragStart = this.dragStart,\n\t\t\t startXY = _dragStart.startXY,\n\t\t\t endXY = _dragStart.endXY;\n\t\t\tvar xScale = moreProps.xScale,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t fullData = moreProps.fullData;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY;\n\n\n\t\t\tvar x1 = xScale(startXY[0]);\n\t\t\tvar y1 = yScale(startXY[1]);\n\t\t\tvar x2 = xScale(endXY[0]);\n\t\t\tvar y2 = yScale(endXY[1]);\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\t\t\tvar newX2Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x2 - dx, y2 - dy], fullData);\n\t\t\tvar newY2Value = yScale.invert(y2 - dy);\n\n\t\t\t// const newDy = newY2Value - endXY[1] + this.dragStart.dy;\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: [newX1Value, newY1Value],\n\t\t\t\tendXY: [newX2Value, newY2Value],\n\t\t\t\tdy: this.dragStart.dy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleLine1Edge1Drag\",\n\t\tvalue: function handleLine1Edge1Drag(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t index = _props3.index,\n\t\t\t onDrag = _props3.onDrag;\n\t\t\tvar startXY = this.dragStart.startXY;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t fullData = moreProps.fullData,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar x1 = xScale(startXY[0]);\n\t\t\tvar y1 = yScale(startXY[1]);\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: [newX1Value, newY1Value],\n\t\t\t\tendXY: this.dragStart.endXY,\n\t\t\t\tdy: this.dragStart.dy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleLine1Edge2Drag\",\n\t\tvalue: function handleLine1Edge2Drag(moreProps) {\n\t\t\tvar _props4 = this.props,\n\t\t\t index = _props4.index,\n\t\t\t onDrag = _props4.onDrag;\n\t\t\tvar endXY = this.dragStart.endXY;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t xScale = moreProps.xScale,\n\t\t\t fullData = moreProps.fullData,\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\n\n\t\t\tvar dx = startPos[0] - mouseXY[0];\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar x1 = xScale(endXY[0]);\n\t\t\tvar y1 = yScale(endXY[1]);\n\n\t\t\tvar newX1Value = (0, _ChartDataUtil.getXValue)(xScale, xAccessor, [x1 - dx, y1 - dy], fullData);\n\t\t\tvar newY1Value = yScale.invert(y1 - dy);\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: this.dragStart.startXY,\n\t\t\t\tendXY: [newX1Value, newY1Value],\n\t\t\t\tdy: this.dragStart.dy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleChannelHeightChange\",\n\t\tvalue: function handleChannelHeightChange(moreProps) {\n\t\t\tvar _props5 = this.props,\n\t\t\t index = _props5.index,\n\t\t\t onDrag = _props5.onDrag;\n\t\t\tvar _dragStart2 = this.dragStart,\n\t\t\t startXY = _dragStart2.startXY,\n\t\t\t endXY = _dragStart2.endXY;\n\t\t\tvar yScale = moreProps.chartConfig.yScale;\n\t\t\tvar startPos = moreProps.startPos,\n\t\t\t mouseXY = moreProps.mouseXY;\n\n\n\t\t\tvar y2 = yScale(endXY[1]);\n\n\t\t\tvar dy = startPos[1] - mouseXY[1];\n\n\t\t\tvar newY2Value = yScale.invert(y2 - dy);\n\n\t\t\tvar newDy = newY2Value - endXY[1] + this.dragStart.dy;\n\n\t\t\tonDrag(index, {\n\t\t\t\tstartXY: startXY,\n\t\t\t\tendXY: endXY,\n\t\t\t\tdy: newDy\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"getEdgeCircle\",\n\t\tvalue: function getEdgeCircle(_ref) {\n\t\t\tvar xy = _ref.xy,\n\t\t\t dragHandler = _ref.dragHandler,\n\t\t\t cursor = _ref.cursor,\n\t\t\t fill = _ref.fill,\n\t\t\t edge = _ref.edge;\n\t\t\tvar hover = this.state.hover;\n\t\t\tvar _props6 = this.props,\n\t\t\t selected = _props6.selected,\n\t\t\t appearance = _props6.appearance;\n\t\t\tvar edgeStroke = appearance.edgeStroke,\n\t\t\t edgeStrokeWidth = appearance.edgeStrokeWidth,\n\t\t\t r = appearance.r;\n\t\t\tvar onDragComplete = this.props.onDragComplete;\n\n\n\t\t\treturn _react2.default.createElement(_ClickableCircle2.default, {\n\t\t\t\tref: this.saveNodeType(edge),\n\t\t\t\tshow: selected || hover,\n\t\t\t\tcx: xy[0],\n\t\t\t\tcy: xy[1],\n\t\t\t\tr: r,\n\t\t\t\tfill: fill,\n\t\t\t\tstroke: edgeStroke,\n\t\t\t\tstrokeWidth: edgeStrokeWidth,\n\t\t\t\tinteractiveCursorClass: cursor,\n\n\t\t\t\tonDragStart: this.handleDragStart,\n\t\t\t\tonDrag: dragHandler,\n\t\t\t\tonDragComplete: onDragComplete });\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props7 = this.props,\n\t\t\t startXY = _props7.startXY,\n\t\t\t endXY = _props7.endXY;\n\t\t\tvar _props8 = this.props,\n\t\t\t interactive = _props8.interactive,\n\t\t\t appearance = _props8.appearance;\n\t\t\tvar edgeFill = appearance.edgeFill,\n\t\t\t stroke = appearance.stroke,\n\t\t\t strokeWidth = appearance.strokeWidth,\n\t\t\t strokeOpacity = appearance.strokeOpacity,\n\t\t\t fill = appearance.fill,\n\t\t\t fillOpacity = appearance.fillOpacity;\n\t\t\tvar fontFamily = appearance.fontFamily,\n\t\t\t fontSize = appearance.fontSize,\n\t\t\t fontFill = appearance.fontFill;\n\t\t\tvar _props9 = this.props,\n\t\t\t hoverText = _props9.hoverText,\n\t\t\t selected = _props9.selected;\n\t\t\tvar onDragComplete = this.props.onDragComplete;\n\t\t\tvar hover = this.state.hover;\n\n\t\t\tvar hoverTextEnabled = hoverText.enable,\n\t\t\t restHoverTextProps = _objectWithoutProperties(hoverText, [\"enable\"]);\n\n\t\t\tvar hoverHandler = interactive ? { onHover: this.handleHover, onUnHover: this.handleHover } : {};\n\n\t\t\tvar line1Edge = (0, _utils.isDefined)(startXY) && (0, _utils.isDefined)(endXY) ? _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tthis.getEdgeCircle({\n\t\t\t\t\txy: startXY,\n\t\t\t\t\tdragHandler: this.handleLine1Edge1Drag,\n\t\t\t\t\tcursor: \"react-stockcharts-move-cursor\",\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tedge: \"edge1\"\n\t\t\t\t}),\n\t\t\t\tthis.getEdgeCircle({\n\t\t\t\t\txy: endXY,\n\t\t\t\t\tdragHandler: this.handleLine1Edge2Drag,\n\t\t\t\t\tcursor: \"react-stockcharts-move-cursor\",\n\t\t\t\t\tfill: edgeFill,\n\t\t\t\t\tedge: \"edge2\"\n\t\t\t\t})\n\t\t\t) : null;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(_GannFan2.default, _extends({\n\t\t\t\t\tref: this.saveNodeType(\"fan\"),\n\t\t\t\t\tselected: hover || selected\n\n\t\t\t\t}, hoverHandler, {\n\n\t\t\t\t\tstartXY: startXY,\n\t\t\t\t\tendXY: endXY,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeWidth: hover || selected ? strokeWidth + 1 : strokeWidth,\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\tfontFill: fontFill,\n\t\t\t\t\tinteractiveCursorClass: \"react-stockcharts-move-cursor\",\n\n\t\t\t\t\tonDragStart: this.handleDragStart,\n\t\t\t\t\tonDrag: this.handleFanDrag,\n\t\t\t\t\tonDragComplete: onDragComplete\n\t\t\t\t})),\n\t\t\t\tline1Edge,\n\t\t\t\t_react2.default.createElement(_HoverTextNearMouse2.default, _extends({\n\t\t\t\t\tshow: hoverTextEnabled && hover && !selected\n\t\t\t\t}, restHoverTextProps))\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EachGannFan;\n}(_react.Component);\n\nEachGannFan.propTypes = {\n\tstartXY: _propTypes2.default.arrayOf(_propTypes2.default.number).isRequired,\n\tendXY: _propTypes2.default.arrayOf(_propTypes2.default.number).isRequired,\n\tdy: _propTypes2.default.number,\n\n\tinteractive: _propTypes2.default.bool.isRequired,\n\tselected: _propTypes2.default.bool.isRequired,\n\n\tappearance: _propTypes2.default.shape({\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tfillOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\t\tedgeStroke: _propTypes2.default.string.isRequired,\n\t\tedgeFill: _propTypes2.default.string.isRequired,\n\t\tedgeStrokeWidth: _propTypes2.default.number.isRequired,\n\t\tr: _propTypes2.default.number.isRequired,\n\t\tfill: _propTypes2.default.arrayOf(_propTypes2.default.string).isRequired,\n\t\tfontFamily: _propTypes2.default.string.isRequired,\n\t\tfontSize: _propTypes2.default.number.isRequired,\n\t\tfontFill: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\thoverText: _propTypes2.default.object.isRequired,\n\n\tindex: _propTypes2.default.number,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired\n};\n\nEachGannFan.defaultProps = {\n\tyDisplayFormat: function yDisplayFormat(d) {\n\t\treturn d.toFixed(2);\n\t},\n\tinteractive: true,\n\tselected: false,\n\n\tappearance: {\n\t\tstroke: \"#000000\",\n\t\tfillOpacity: 0.2,\n\t\tstrokeOpacity: 1,\n\t\tstrokeWidth: 1,\n\t\tedgeStroke: \"#000000\",\n\t\tedgeFill: \"#FFFFFF\",\n\t\tedgeStrokeWidth: 1,\n\t\tr: 5,\n\t\tfill: [\"#1f77b4\", \"#ff7f0e\", \"#2ca02c\", \"#d62728\", \"#9467bd\", \"#8c564b\", \"#e377c2\", \"#7f7f7f\"],\n\t\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\t\tfontSize: 10,\n\t\tfontFill: \"#000000\"\n\t},\n\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: 18,\n\t\tbgWidth: 120,\n\t\ttext: \"Click to select object\"\n\t})\n};\n\nexports.default = EachGannFan;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Array = require(\"d3-array\");\n\nvar _d3Path = require(\"d3-path\");\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GannFan = function (_Component) {\n\t_inherits(GannFan, _Component);\n\n\tfunction GannFan(props) {\n\t\t_classCallCheck(this, GannFan);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GannFan.__proto__ || Object.getPrototypeOf(GannFan)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(GannFan, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t tolerance = _props.tolerance,\n\t\t\t onHover = _props.onHover;\n\t\t\tvar mouseXY = moreProps.mouseXY;\n\n\t\t\tvar _mouseXY = _slicedToArray(mouseXY, 2),\n\t\t\t mouseX = _mouseXY[0],\n\t\t\t mouseY = _mouseXY[1];\n\n\t\t\tvar hovering = false;\n\t\t\tif ((0, _utils.isDefined)(onHover)) {\n\n\t\t\t\tvar lines = helper(this.props, moreProps);\n\n\t\t\t\tfor (var i = 0; i < lines.length; i++) {\n\t\t\t\t\tvar line1 = lines[i];\n\n\t\t\t\t\tvar left = Math.min(line1.x1, line1.x2);\n\t\t\t\t\tvar right = Math.max(line1.x1, line1.x2);\n\t\t\t\t\tvar top = Math.min(line1.y1, line1.y2);\n\t\t\t\t\tvar bottom = Math.max(line1.y1, line1.y2);\n\n\t\t\t\t\tvar isWithinLineBounds = mouseX >= left && mouseX <= right && mouseY >= top && mouseY <= bottom;\n\n\t\t\t\t\thovering = isWithinLineBounds && (0, _StraightLine.isHovering2)([line1.x1, line1.y1], [line1.x2, line1.y2], mouseXY, tolerance);\n\n\t\t\t\t\tif (hovering) break;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn hovering;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t stroke = _props2.stroke,\n\t\t\t strokeWidth = _props2.strokeWidth,\n\t\t\t strokeOpacity = _props2.strokeOpacity,\n\t\t\t fill = _props2.fill,\n\t\t\t fillOpacity = _props2.fillOpacity,\n\t\t\t fontFamily = _props2.fontFamily,\n\t\t\t fontSize = _props2.fontSize,\n\t\t\t fontFill = _props2.fontFill;\n\n\n\t\t\tvar lines = helper(this.props, moreProps);\n\n\t\t\tctx.lineWidth = strokeWidth;\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\n\t\t\tctx.font = fontSize + \"px \" + fontFamily;\n\t\t\tctx.fillStyle = fontFill;\n\n\t\t\tlines.forEach(function (line) {\n\t\t\t\tvar x1 = line.x1,\n\t\t\t\t y1 = line.y1,\n\t\t\t\t x2 = line.x2,\n\t\t\t\t y2 = line.y2,\n\t\t\t\t label = line.label;\n\n\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x1, y1);\n\t\t\t\tctx.lineTo(x2, y2);\n\t\t\t\tctx.stroke();\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.fillText(label.text, label.x, label.y);\n\t\t\t});\n\t\t\tvar pairsOfLines = (0, _d3Array.pairs)(lines);\n\n\t\t\tpairsOfLines.forEach(function (_ref, idx) {\n\t\t\t\tvar _ref2 = _slicedToArray(_ref, 2),\n\t\t\t\t line1 = _ref2[0],\n\t\t\t\t line2 = _ref2[1];\n\n\t\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill[idx], fillOpacity);\n\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(line1.x1, line1.y1);\n\t\t\t\tctx.lineTo(line1.x2, line1.y2);\n\t\t\t\tctx.lineTo(line2.x2, line2.y2);\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.fill();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG(moreProps) {\n\t\t\tvar _props3 = this.props,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t fillOpacity = _props3.fillOpacity,\n\t\t\t fill = _props3.fill,\n\t\t\t strokeOpacity = _props3.strokeOpacity;\n\n\n\t\t\tvar lines = helper(this.props, moreProps);\n\t\t\tvar pairsOfLines = (0, _d3Array.pairs)(lines);\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tlines.map(function (each, idx) {\n\t\t\t\t\tvar x1 = each.x1,\n\t\t\t\t\t y1 = each.y1,\n\t\t\t\t\t x2 = each.x2,\n\t\t\t\t\t y2 = each.y2;\n\n\t\t\t\t\treturn _react2.default.createElement(\"line\", { key: idx,\n\t\t\t\t\t\tstrokeWidth: strokeWidth,\n\t\t\t\t\t\tstroke: stroke,\n\t\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\t\tx1: x1,\n\t\t\t\t\t\ty1: y1,\n\t\t\t\t\t\tx2: x2,\n\t\t\t\t\t\ty2: y2\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\tpairsOfLines.map(function (_ref3, idx) {\n\t\t\t\t\tvar _ref4 = _slicedToArray(_ref3, 2),\n\t\t\t\t\t line1 = _ref4[0],\n\t\t\t\t\t line2 = _ref4[1];\n\n\t\t\t\t\tvar ctx = (0, _d3Path.path)();\n\t\t\t\t\tctx.moveTo(line1.x1, line1.y1);\n\t\t\t\t\tctx.lineTo(line1.x2, line1.y2);\n\t\t\t\t\tctx.lineTo(line2.x2, line2.y2);\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\treturn _react2.default.createElement(\"path\", { key: idx,\n\t\t\t\t\t\tstroke: \"none\",\n\t\t\t\t\t\tfill: fill[idx],\n\t\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\t\td: ctx.toString()\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props4 = this.props,\n\t\t\t selected = _props4.selected,\n\t\t\t interactiveCursorClass = _props4.interactiveCursorClass;\n\t\t\tvar _props5 = this.props,\n\t\t\t onDragStart = _props5.onDragStart,\n\t\t\t onDrag = _props5.onDrag,\n\t\t\t onDragComplete = _props5.onDragComplete,\n\t\t\t onHover = _props5.onHover,\n\t\t\t onUnHover = _props5.onUnHover;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\t\t\t\tselected: selected,\n\n\t\t\t\tonDragStart: onDragStart,\n\t\t\t\tonDrag: onDrag,\n\t\t\t\tonDragComplete: onDragComplete,\n\t\t\t\tonHover: onHover,\n\t\t\t\tonUnHover: onUnHover,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"mouseleave\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn GannFan;\n}(_react.Component);\n\nfunction getLineCoordinates(start, endX, endY, text) {\n\tvar end = [endX, endY];\n\treturn {\n\t\tstart: start, end: end, text: text\n\t};\n}\n\nfunction helper(props, moreProps) {\n\tvar startXY = props.startXY,\n\t endXY = props.endXY;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale;\n\n\tif ((0, _utils.isNotDefined)(startXY) || (0, _utils.isNotDefined)(endXY)) {\n\t\treturn [];\n\t}\n\n\tvar _startXY = _slicedToArray(startXY, 2),\n\t x1 = _startXY[0],\n\t y1 = _startXY[1];\n\n\tvar _endXY = _slicedToArray(endXY, 2),\n\t x2 = _endXY[0],\n\t y2 = _endXY[1];\n\n\tvar dx = x2 - x1;\n\tvar dy = y2 - y1;\n\n\tif (dx !== 0 && dy !== 0) {\n\t\t// console.log(\"modLine ->\", startXY, modLine, dx1, dy1)\n\t\tvar halfY = getLineCoordinates(startXY, x2, y1 + dy / 2, \"2/1\");\n\t\tvar oneThirdY = getLineCoordinates(startXY, x2, y1 + dy / 3, \"3/1\");\n\t\tvar oneFourthY = getLineCoordinates(startXY, x2, y1 + dy / 4, \"4/1\");\n\t\tvar oneEighthY = getLineCoordinates(startXY, x2, y1 + dy / 8, \"8/1\");\n\t\tvar halfX = getLineCoordinates(startXY, x1 + dx / 2, y2, \"1/2\");\n\t\tvar oneThirdX = getLineCoordinates(startXY, x1 + dx / 3, y2, \"1/3\");\n\t\tvar oneFourthX = getLineCoordinates(startXY, x1 + dx / 4, y2, \"1/4\");\n\t\tvar oneEighthX = getLineCoordinates(startXY, x1 + dx / 8, y2, \"1/8\");\n\t\tvar lines = [oneEighthX, oneFourthX, oneThirdX, halfX, { start: startXY, end: endXY, text: \"1/1\" }, halfY, oneThirdY, oneFourthY, oneEighthY];\n\t\tvar lineCoods = lines.map(function (line) {\n\t\t\tvar _generateLine = (0, _StraightLine.generateLine)({\n\t\t\t\ttype: \"RAY\",\n\t\t\t\tstart: line.start,\n\t\t\t\tend: line.end,\n\t\t\t\txScale: xScale,\n\t\t\t\tyScale: yScale\n\t\t\t}),\n\t\t\t x1 = _generateLine.x1,\n\t\t\t y1 = _generateLine.y1,\n\t\t\t x2 = _generateLine.x2,\n\t\t\t y2 = _generateLine.y2;\n\n\t\t\treturn {\n\t\t\t\tx1: xScale(x1),\n\t\t\t\ty1: yScale(y1),\n\t\t\t\tx2: xScale(x2),\n\t\t\t\ty2: yScale(y2),\n\t\t\t\tlabel: {\n\t\t\t\t\tx: xScale(line.end[0]),\n\t\t\t\t\ty: yScale(line.end[1]),\n\t\t\t\t\ttext: line.text\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t\treturn lineCoods;\n\t}\n\treturn [];\n}\n\nGannFan.propTypes = {\n\tinteractiveCursorClass: _propTypes2.default.string,\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tfill: _propTypes2.default.arrayOf(_propTypes2.default.string).isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\tfillOpacity: _propTypes2.default.number.isRequired,\n\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\tfontFill: _propTypes2.default.string.isRequired,\n\n\tonDragStart: _propTypes2.default.func.isRequired,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdefaultClassName: _propTypes2.default.string,\n\n\ttolerance: _propTypes2.default.number.isRequired,\n\tselected: _propTypes2.default.bool.isRequired\n};\n\nGannFan.defaultProps = {\n\tonDragStart: _utils.noop,\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\tstrokeWidth: 1,\n\ttolerance: 4,\n\tselected: false\n};\n\nexports.default = GannFan;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ClickCallback = function (_Component) {\n\t_inherits(ClickCallback, _Component);\n\n\tfunction ClickCallback() {\n\t\t_classCallCheck(this, ClickCallback);\n\n\t\treturn _possibleConstructorReturn(this, (ClickCallback.__proto__ || Object.getPrototypeOf(ClickCallback)).apply(this, arguments));\n\t}\n\n\t_createClass(ClickCallback, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t onMouseDown = _props.onMouseDown,\n\t\t\t onClick = _props.onClick,\n\t\t\t onDoubleClick = _props.onDoubleClick,\n\t\t\t onContextMenu = _props.onContextMenu,\n\t\t\t onMouseMove = _props.onMouseMove,\n\t\t\t onPan = _props.onPan,\n\t\t\t onPanEnd = _props.onPanEnd;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\n\t\t\t\tonMouseDown: onMouseDown,\n\t\t\t\tonClick: onClick,\n\t\t\t\tonDoubleClick: onDoubleClick,\n\t\t\t\tonContextMenu: onContextMenu,\n\t\t\t\tonMouseMove: onMouseMove,\n\t\t\t\tonPan: onPan,\n\t\t\t\tonPanEnd: onPanEnd,\n\n\t\t\t\tsvgDraw: _utils.noop,\n\t\t\t\tcanvasDraw: _utils.noop,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn ClickCallback;\n}(_react.Component);\n\nClickCallback.propTypes = {\n\tdisablePan: _propTypes2.default.bool.isRequired,\n\tonMouseDown: _propTypes2.default.func,\n\tonClick: _propTypes2.default.func,\n\tonDoubleClick: _propTypes2.default.func,\n\tonContextMenu: _propTypes2.default.func,\n\tonMouseMove: _propTypes2.default.func,\n\tonPan: _propTypes2.default.func,\n\tonPanEnd: _propTypes2.default.func\n};\n\nClickCallback.defaultProps = {\n\tdisablePan: false\n};\n\nexports.default = ClickCallback;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Brush = function (_Component) {\n\t_inherits(Brush, _Component);\n\n\tfunction Brush(props, context) {\n\t\t_classCallCheck(this, Brush);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Brush.__proto__ || Object.getPrototypeOf(Brush)).call(this, props, context));\n\n\t\t_this.handleZoomStart = _this.handleZoomStart.bind(_this);\n\t\t_this.handleDrawSquare = _this.handleDrawSquare.bind(_this);\n\t\t_this.handleZoomComplete = _this.handleZoomComplete.bind(_this);\n\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t_this.terminate = _this.terminate.bind(_this);\n\t\t_this.state = {\n\t\t\trect: null\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(Brush, [{\n\t\tkey: \"terminate\",\n\t\tvalue: function terminate() {\n\t\t\tthis.zoomHappening = false;\n\t\t\tthis.setState({\n\t\t\t\tx1y1: null,\n\t\t\t\tstart: null,\n\t\t\t\tend: null,\n\t\t\t\trect: null\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"saveNode\",\n\t\tvalue: function saveNode(node) {\n\t\t\tthis.node = node;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx) {\n\t\t\tvar rect = this.state.rect;\n\n\t\t\tif ((0, _utils.isDefined)(rect)) {\n\t\t\t\tvar x = rect.x,\n\t\t\t\t y = rect.y,\n\t\t\t\t height = rect.height,\n\t\t\t\t width = rect.width;\n\t\t\t\tvar _props = this.props,\n\t\t\t\t stroke = _props.stroke,\n\t\t\t\t fill = _props.fill,\n\t\t\t\t strokeDashArray = _props.strokeDashArray;\n\t\t\t\tvar _props2 = this.props,\n\t\t\t\t strokeOpacity = _props2.strokeOpacity,\n\t\t\t\t fillOpacity = _props2.fillOpacity;\n\n\n\t\t\t\tvar dashArray = (0, _utils.getStrokeDasharray)(strokeDashArray).split(\",\").map(function (d) {\n\t\t\t\t\treturn +d;\n\t\t\t\t});\n\n\t\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\t\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(fill, fillOpacity);\n\t\t\t\tctx.setLineDash(dashArray);\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.fillRect(x, y, width, height);\n\t\t\t\tctx.strokeRect(x, y, width, height);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG() {\n\t\t\tvar rect = this.state.rect;\n\n\t\t\tif ((0, _utils.isDefined)(rect)) {\n\t\t\t\tvar x = rect.x,\n\t\t\t\t y = rect.y,\n\t\t\t\t height = rect.height,\n\t\t\t\t width = rect.width;\n\t\t\t\tvar _props3 = this.props,\n\t\t\t\t stroke = _props3.stroke,\n\t\t\t\t strokeDashArray = _props3.strokeDashArray;\n\t\t\t\tvar _props4 = this.props,\n\t\t\t\t strokeOpacity = _props4.strokeOpacity,\n\t\t\t\t fillOpacity = _props4.fillOpacity;\n\n\n\t\t\t\tvar dashArray = (0, _utils.getStrokeDasharray)(strokeDashArray).split(\",\").map(function (d) {\n\t\t\t\t\treturn +d;\n\t\t\t\t});\n\n\t\t\t\treturn _react2.default.createElement(\"rect\", { strokeDasharray: dashArray,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tfill: \"none\",\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\tx: x,\n\t\t\t\t\ty: y,\n\t\t\t\t\twidth: width,\n\t\t\t\t\theight: height\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleZoomStart\",\n\t\tvalue: function handleZoomStart(moreProps) {\n\t\t\tthis.zoomHappening = false;\n\n\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t mouseY = _moreProps$mouseXY[1],\n\t\t\t currentItem = moreProps.currentItem,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t xScale = moreProps.xScale;\n\n\t\t\tvar x1y1 = [xScale(xAccessor(currentItem)), mouseY];\n\n\t\t\tthis.setState({\n\t\t\t\tselected: true,\n\t\t\t\tx1y1: x1y1,\n\t\t\t\tstart: {\n\t\t\t\t\titem: currentItem,\n\t\t\t\t\txValue: xAccessor(currentItem),\n\t\t\t\t\tyValue: yScale.invert(mouseY)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDrawSquare\",\n\t\tvalue: function handleDrawSquare(moreProps) {\n\t\t\tif (this.state.x1y1 == null) return;\n\n\t\t\tthis.zoomHappening = true;\n\n\t\t\tvar _moreProps$mouseXY2 = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t mouseY = _moreProps$mouseXY2[1],\n\t\t\t currentItem = moreProps.currentItem,\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t xScale = moreProps.xScale;\n\n\t\t\tvar _ref = [xScale(xAccessor(currentItem)), mouseY],\n\t\t\t x2 = _ref[0],\n\t\t\t y2 = _ref[1];\n\n\t\t\tvar _state$x1y = _slicedToArray(this.state.x1y1, 2),\n\t\t\t x1 = _state$x1y[0],\n\t\t\t y1 = _state$x1y[1];\n\n\t\t\tvar x = Math.min(x1, x2);\n\t\t\tvar y = Math.min(y1, y2);\n\t\t\tvar height = Math.abs(y2 - y1);\n\t\t\tvar width = Math.abs(x2 - x1);\n\n\t\t\tthis.setState({\n\t\t\t\tselected: true,\n\t\t\t\tend: {\n\t\t\t\t\titem: currentItem,\n\t\t\t\t\txValue: xAccessor(currentItem),\n\t\t\t\t\tyValue: yScale.invert(mouseY)\n\t\t\t\t},\n\t\t\t\trect: {\n\t\t\t\t\tx: x, y: y, height: height, width: width\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleZoomComplete\",\n\t\tvalue: function handleZoomComplete(moreProps) {\n\t\t\tif (this.zoomHappening) {\n\t\t\t\tvar onBrush = this.props.onBrush;\n\t\t\t\tvar _state = this.state,\n\t\t\t\t start = _state.start,\n\t\t\t\t end = _state.end;\n\n\t\t\t\tonBrush({ start: start, end: end }, moreProps);\n\t\t\t}\n\t\t\tthis.setState({\n\t\t\t\tselected: false,\n\t\t\t\trect: null\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar enabled = this.props.enabled;\n\n\t\t\tif (!enabled) return null;\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tref: this.saveNode,\n\t\t\t\tdisablePan: enabled,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tonMouseDown: this.handleZoomStart,\n\t\t\t\tonMouseMove: this.handleDrawSquare,\n\t\t\t\tonClick: this.handleZoomComplete,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn Brush;\n}(_react.Component);\n\nBrush.propTypes = {\n\tenabled: _propTypes2.default.bool.isRequired,\n\tonStart: _propTypes2.default.func.isRequired,\n\tonBrush: _propTypes2.default.func.isRequired,\n\n\ttype: _propTypes2.default.oneOf([\"1D\", \"2D\"]),\n\tstroke: _propTypes2.default.string,\n\tfill: _propTypes2.default.string,\n\tstrokeOpacity: _propTypes2.default.number,\n\tfillOpacity: _propTypes2.default.number,\n\tinteractiveState: _propTypes2.default.object,\n\tstrokeDashArray: _propTypes2.default.string\n};\n\nBrush.defaultProps = {\n\ttype: \"2D\",\n\tstroke: \"#000000\",\n\tfillOpacity: 0.3,\n\tstrokeOpacity: 1,\n\tfill: \"#3h3h3h\",\n\tonBrush: _utils.noop,\n\tonStart: _utils.noop,\n\tstrokeDashArray: \"ShortDash\"\n};\n\nexports.default = Brush;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _EachText = require(\"./wrapper/EachText\");\n\nvar _EachText2 = _interopRequireDefault(_EachText);\n\nvar _HoverTextNearMouse = require(\"./components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nvar _GenericChartComponent = require(\"../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InteractiveText = function (_Component) {\n\t_inherits(InteractiveText, _Component);\n\n\tfunction InteractiveText(props) {\n\t\t_classCallCheck(this, InteractiveText);\n\n\t\tvar _this = _possibleConstructorReturn(this, (InteractiveText.__proto__ || Object.getPrototypeOf(InteractiveText)).call(this, props));\n\n\t\t_this.handleDraw = _this.handleDraw.bind(_this);\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\t\t_this.handleDragComplete = _this.handleDragComplete.bind(_this);\n\t\t_this.terminate = _utils2.terminate.bind(_this);\n\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.getSelectionState = (0, _utils2.isHoverForInteractiveType)(\"textList\").bind(_this);\n\n\t\t_this.nodes = [];\n\t\t_this.state = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(InteractiveText, [{\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag(index, position) {\n\t\t\tthis.setState({\n\t\t\t\toverride: {\n\t\t\t\t\tindex: index,\n\t\t\t\t\tposition: position\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragComplete\",\n\t\tvalue: function handleDragComplete(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar override = this.state.override;\n\n\t\t\tif ((0, _utils.isDefined)(override)) {\n\t\t\t\tvar textList = this.props.textList;\n\n\t\t\t\tvar newTextList = textList.map(function (each, idx) {\n\t\t\t\t\tvar selected = idx === override.index;\n\t\t\t\t\treturn selected ? _extends({}, each, {\n\t\t\t\t\t\tposition: override.position,\n\t\t\t\t\t\tselected: selected\n\t\t\t\t\t}) : _extends({}, each, {\n\t\t\t\t\t\tselected: selected\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\toverride: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this2.props.onDragComplete(newTextList, moreProps);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrawLine\",\n\t\tvalue: function handleDrawLine(xyValue) {\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.start)) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstart: current.start,\n\t\t\t\t\t\tend: xyValue\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDraw\",\n\t\tvalue: function handleDraw(moreProps, e) {\n\t\t\tvar enabled = this.props.enabled;\n\n\t\t\tif (enabled) {\n\t\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t\t mouseY = _moreProps$mouseXY[1],\n\t\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t\t currentItem = moreProps.currentItem;\n\n\t\t\t\tvar xyValue = [xAccessor(currentItem), yScale.invert(mouseY)];\n\n\t\t\t\tvar _props = this.props,\n\t\t\t\t defaultText = _props.defaultText,\n\t\t\t\t onChoosePosition = _props.onChoosePosition;\n\n\n\t\t\t\tvar newText = _extends({}, defaultText, {\n\t\t\t\t\tposition: xyValue\n\t\t\t\t});\n\t\t\t\tonChoosePosition(newText, moreProps, e);\n\t\t\t} /* else {\n this.handleClick(moreProps, e);\n } */\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar _props2 = this.props,\n\t\t\t textList = _props2.textList,\n\t\t\t defaultText = _props2.defaultText,\n hoverText = _props2.hoverText,\n hovering = _props2.hovering,\n handleSelectAsterisk = _props2.handleSelectAsterisk;\n\t\t\tvar override = this.state.override;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\ttextList.map(function (each, idx) {\n\t\t\t\t\tvar defaultHoverText = InteractiveText.defaultProps.hoverText;\n\t\t\t\t\tvar props = _extends({}, defaultText, each, {\n\t\t\t\t\t\thoverText: _extends({}, defaultHoverText, hoverText, each.hoverText || {},)\n\t\t\t\t\t});\n\t\t\t\t\treturn _react2.default.createElement(_EachText2.default, _extends({ key: idx,\n\t\t\t\t\t\tref: _this3.saveNodeType(idx),\n\t\t\t\t\t\tindex: idx\n\t\t\t\t\t}, props, {\n\t\t\t\t\t\tselected: each.selected,\n\t\t\t\t\t\tposition: (0, _utils2.getValueFromOverride)(override, idx, \"position\", each.position),\n\n\t\t\t\t\t\tonDrag: _this3.handleDrag,\n\t\t\t\t\t\tonDragComplete: _this3.handleDragComplete,\n edgeInteractiveCursor: \"react-stockcharts-move-cursor\",\n hovering: hovering,\n handleSelectAsterisk: handleSelectAsterisk,\n\t\t\t\t\t}));\n\t\t\t\t}),\n\t\t\t\t_react2.default.createElement(_GenericChartComponent2.default, {\n\n\t\t\t\t\tonClick: this.handleDraw,\n\n\t\t\t\t\tsvgDraw: _utils.noop,\n\t\t\t\t\tcanvasDraw: _utils.noop,\n\t\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\n\t\t\t\t\tdrawOn: [\"mousemove\", \"pan\"]\n\t\t\t\t}),\n\t\t\t\t\";\"\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn InteractiveText;\n}(_react.Component);\n\nInteractiveText.propTypes = {\n\tonChoosePosition: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func,\n\n\tdefaultText: _propTypes2.default.shape({\n\t\tbgFill: _propTypes2.default.string.isRequired,\n\t\tbgOpacity: _propTypes2.default.number.isRequired,\n\t\tbgStrokeWidth: _propTypes2.default.number,\n\t\tbgStroke: _propTypes2.default.string,\n\t\ttextFill: _propTypes2.default.string.isRequired,\n\t\tfontFamily: _propTypes2.default.string.isRequired,\n\t\tfontWeight: _propTypes2.default.string.isRequired,\n\t\tfontStyle: _propTypes2.default.string.isRequired,\n\t\tfontSize: _propTypes2.default.number.isRequired,\n\t\ttext: _propTypes2.default.string.isRequired\n\t}).isRequired,\n\n\thoverText: _propTypes2.default.object.isRequired,\n\ttextList: _propTypes2.default.array.isRequired,\n\tenabled: _propTypes2.default.bool.isRequired\n};\n\nInteractiveText.defaultProps = {\n\tonChoosePosition: _utils.noop,\n\tonDragComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\n\tdefaultText: {\n\t\tbgFill: \"#D3D3D3\",\n\t\tbgOpacity: 1,\n\t\tbgStrokeWidth: 1,\n\t\ttextFill: \"#F10040\",\n\t\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\t\tfontSize: 12,\n\t\tfontStyle: \"normal\",\n\t\tfontWeight: \"normal\",\n\t\ttext: \"Lorem ipsum...\"\n\t},\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: \"auto\",\n\t\tbgWidth: \"auto\",\n\t\ttext: \"Click to select object\",\n\t\tselectedText: \"\"\n\t}),\n\ttextList: []\n};\n\nInteractiveText.contextTypes = {\n\tsubscribe: _propTypes2.default.func.isRequired,\n\tunsubscribe: _propTypes2.default.func.isRequired,\n\tgenerateSubscriptionId: _propTypes2.default.func.isRequired,\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired\n};\n\nexports.default = InteractiveText;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../../utils\");\n\nvar _utils2 = require(\"../utils\");\n\nvar _ChartDataUtil = require(\"../../utils/ChartDataUtil\");\n\nvar _HoverTextNearMouse = require(\"../components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nvar _InteractiveText = require(\"../components/InteractiveText\");\n\nvar _InteractiveText2 = _interopRequireDefault(_InteractiveText);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction mobilecheck() {\n var check = false;\n (function(a){if(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);\n return check;\n };\n\nvar EachText = function (_Component) {\n\t_inherits(EachText, _Component);\n\n\tfunction EachText(props) {\n\t\t_classCallCheck(this, EachText);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EachText.__proto__ || Object.getPrototypeOf(EachText)).call(this, props));\n\n\t\t_this.handleHover = _this.handleHover.bind(_this);\n\n\t\t_this.handleDragStart = _this.handleDragStart.bind(_this);\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\n\t\t_this.isHover = _utils2.isHover.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = {};\n\n\t\t_this.state = {\n\t\t\thover: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EachText, [{\n\t\tkey: \"handleDragStart\",\n\t\tvalue: function handleDragStart(moreProps) {\n\t\t\tvar position = this.props.position;\n\t\t\tvar mouseXY = moreProps.mouseXY;\n\t\t\tvar yScale = moreProps.chartConfig.yScale,\n\t\t\t xScale = moreProps.xScale;\n\n\t\t\tvar _mouseXY = _slicedToArray(mouseXY, 2),\n\t\t\t mouseX = _mouseXY[0],\n\t\t\t mouseY = _mouseXY[1];\n\n\t\t\tvar _position = _slicedToArray(position, 2),\n\t\t\t textCX = _position[0],\n\t\t\t textCY = _position[1];\n\n\t\t\tvar dx = mouseX - xScale(textCX);\n\t\t\tvar dy = mouseY - yScale(textCY);\n\n\t\t\tthis.dragStartPosition = {\n\t\t\t\tposition: position, dx: dx, dy: dy\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t index = _props.index,\n\t\t\t onDrag = _props.onDrag;\n\n\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t mouseY = _moreProps$mouseXY[1],\n\t\t\t yScale = moreProps.chartConfig.yScale,\n\t\t\t xAccessor = moreProps.xAccessor,\n\t\t\t mouseXY = moreProps.mouseXY,\n\t\t\t plotData = moreProps.plotData,\n\t\t\t xScale = moreProps.xScale;\n\n\t\t\tvar _dragStartPosition = this.dragStartPosition,\n\t\t\t dx = _dragStartPosition.dx,\n\t\t\t dy = _dragStartPosition.dy;\n\n\t\t\tvar xValue = xScale.invert(xScale((0, _ChartDataUtil.getXValue)(xScale, xAccessor, mouseXY, plotData)) - dx);\n\t\t\t// xScale.invert(xScale(xAccessor(currentItem)) - dx);\n\t\t\tvar xyValue = [xValue, yScale.invert(mouseY - dy)];\n\n\t\t\tonDrag(index, xyValue);\n\t\t}\n\t}, {\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n \n\t\t\tif (this.state.hover !== moreProps.hovering) {\n if(moreProps.hovering === true){\n this.props.hovering(true);\n /* if(mobilecheck())\n this.props.handleSelectAsterisk(this.props); */\n }else\n this.props.hovering(false); \n this.setState({\n hover: moreProps.hovering\n });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props2 = this.props,\n\t\t\t position = _props2.position,\n\t\t\t bgFill = _props2.bgFill,\n\t\t\t bgOpacity = _props2.bgOpacity,\n\t\t\t bgStroke = _props2.bgStroke,\n\t\t\t bgStrokeWidth = _props2.bgStrokeWidth,\n\t\t\t textFill = _props2.textFill,\n\t\t\t fontFamily = _props2.fontFamily,\n\t\t\t fontSize = _props2.fontSize,\n\t\t\t fontWeight = _props2.fontWeight,\n\t\t\t fontStyle = _props2.fontStyle,\n\t\t\t text = _props2.text,\n\t\t\t hoverText = _props2.hoverText,\n\t\t\t selected = _props2.selected,\n\t\t\t onDragComplete = _props2.onDragComplete;\n\t\t\tvar hover = this.state.hover;\n\n\n\t\t\tvar hoverHandler = {\n\t\t\t\tonHover: this.handleHover,\n\t\t\t\tonUnHover: this.handleHover\n\t\t\t};\n\t\t\tvar hoverTextEnabled = hoverText.enable,\n\t\t\t hoverTextSelected = hoverText.selectedText,\n\t\t\t hoverTextUnselected = hoverText.text,\n restHoverTextProps = _objectWithoutProperties(hoverText, [\"enable\", \"selectedText\", \"text\"]);\n \n if(mobilecheck() == true)\n {\n \n hoverTextEnabled = false;\n }\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(_InteractiveText2.default, _extends({\n\t\t\t\t\tref: this.saveNodeType(\"text\"),\n\t\t\t\t\tselected: selected || hover,\n\t\t\t\t\tinteractiveCursorClass: \"react-stockcharts-move-cursor\"\n\t\t\t\t}, hoverHandler, {\n\n\t\t\t\t\tonDragStart: this.handleDragStart,\n\t\t\t\t\tonDrag: this.handleDrag,\n\t\t\t\t\tonDragComplete: onDragComplete,\n\t\t\t\t\tposition: position,\n\t\t\t\t\tbgFill: bgFill,\n\t\t\t\t\tbgOpacity: bgOpacity,\n\t\t\t\t\tbgStroke: bgStroke || textFill,\n\t\t\t\t\tbgStrokeWidth: bgStrokeWidth,\n\t\t\t\t\ttextFill: textFill,\n\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\tfontStyle: fontStyle,\n\t\t\t\t\tfontWeight: fontWeight,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\ttext: text\n\t\t\t\t})),\n\t\t\t\t_react2.default.createElement(_HoverTextNearMouse2.default, _extends({\n\t\t\t\t\tshow: hoverTextEnabled && hover\n\t\t\t\t}, restHoverTextProps, {\n\t\t\t\t\ttext: selected ? hoverTextSelected : hoverTextUnselected\n\t\t\t\t}))\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EachText;\n}(_react.Component);\n/*\nexport function getNewXY(moreProps, snapTo) {\n\tconst { xScale, xAccessor, plotData, mouseXY } = moreProps;\n\n\tconst currentItem = getCurrentItem(xScale, xAccessor, mouseXY, plotData);\n\tconst x = xAccessor(currentItem);\n\tconst y = snapTo(currentItem);\n\n\treturn [x, y];\n}\n */\n\n\nEachText.propTypes = {\n\tindex: _propTypes2.default.number,\n\n\tposition: _propTypes2.default.array.isRequired,\n\tbgFill: _propTypes2.default.string.isRequired,\n\tbgOpacity: _propTypes2.default.number.isRequired,\n\tbgStrokeWidth: _propTypes2.default.number.isRequired,\n\tbgStroke: _propTypes2.default.string,\n\ttextFill: _propTypes2.default.string.isRequired,\n\n\tfontWeight: _propTypes2.default.string.isRequired,\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontStyle: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\n\ttext: _propTypes2.default.string.isRequired,\n\tselected: _propTypes2.default.bool.isRequired,\n\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\n\thoverText: _propTypes2.default.object.isRequired\n};\n\nEachText.defaultProps = {\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\tbgOpacity: 1,\n\tbgStrokeWidth: 1,\n\tselected: false,\n\tfill: \"#8AAFE2\",\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: \"auto\",\n\t\tbgWidth: \"auto\",\n\t\ttext: \"Click to select object\"\n\t})\n};\n\nexports.default = EachText;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InteractiveText = function (_Component) {\n\t_inherits(InteractiveText, _Component);\n\n\tfunction InteractiveText(props) {\n\t\t_classCallCheck(this, InteractiveText);\n\n\t\tvar _this = _possibleConstructorReturn(this, (InteractiveText.__proto__ || Object.getPrototypeOf(InteractiveText)).call(this, props));\n\n\t\t_this.calculateTextWidth = true;\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(InteractiveText, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar onHover = this.props.onHover;\n\n\n\t\t\tif ((0, _utils.isDefined)(onHover) && (0, _utils.isDefined)(this.textWidth) && !this.calculateTextWidth) {\n\t\t\t\tvar _helper = helper(this.props, moreProps, this.textWidth),\n\t\t\t\t rect = _helper.rect;\n\n\t\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t\t x = _moreProps$mouseXY[0],\n\t\t\t\t y = _moreProps$mouseXY[1];\n\n\t\t\t\tif (x >= rect.x && y >= rect.y && x <= rect.x + rect.width && y <= rect.y + rect.height) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: \"componentWillReceiveProps\",\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tthis.calculateTextWidth = nextProps.text !== this.props.text || nextProps.fontStyle !== this.props.fontStyle || nextProps.fontWeight !== this.props.fontWeight || nextProps.fontSize !== this.props.fontSize || nextProps.fontFamily !== this.props.fontFamily;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t bgFill = _props.bgFill,\n\t\t\t bgOpacity = _props.bgOpacity,\n\t\t\t bgStrokeWidth = _props.bgStrokeWidth,\n\t\t\t bgStroke = _props.bgStroke,\n\t\t\t textFill = _props.textFill,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t fontStyle = _props.fontStyle,\n\t\t\t fontWeight = _props.fontWeight,\n\t\t\t text = _props.text;\n\n\n\t\t\tif (this.calculateTextWidth) {\n\t\t\t\tctx.font = 'bold' + \" \" + fontSize + \"px \" + fontFamily;\n\t\t\t\tvar _ctx$measureText = ctx.measureText('*'),\n\t\t\t\t width = _ctx$measureText.width;\n\n\t\t\t\tthis.textWidth = width;\n\t\t\t\tthis.calculateTextWidth = false;\n\t\t\t}\n\n\t\t\tvar selected = this.props.selected;\n\n\t\t\tvar _helper2 = helper(this.props, moreProps, this.textWidth),\n\t\t\t x = _helper2.x,\n\t\t\t y = _helper2.y,\n\t\t\t rect = _helper2.rect;\n\n ctx.fillStyle = (0, _utils.hexToRGBA)('#ffffff', bgOpacity);\n ctx.lineWidth = 3;\n ctx.strokeStyle = bgStroke;\n ctx.beginPath();\n\n //ctx.fillRect(rect.x, rect.y, rect.width, rect.height);\n ctx.arc(rect.x + 14.5, rect.y + 6, 10, 0, 2 * Math.PI);\n ctx.stroke();\n ctx.fill();\n\t\t\tif (selected) {\n\t\t\t\t/* ctx.strokeStyle = bgStroke;\n\t\t\t\tctx.lineWidth = bgStrokeWidth;\n ctx.strokeRect(rect.x, rect.y, rect.width, rect.height); */\n\t\t\t}\n\n\t\t\tctx.fillStyle = textFill;\n\t\t\tctx.textBaseline = \"middle\";\n\t\t\tctx.textAlign = \"center\";\n ctx.font = \"700\" + \" \" + 20 + \"px \" + fontFamily;\n \n ctx.beginPath();\n if(text === \"*\")\n ctx.fillText(\"*\", x, y);\n else{\n ctx.font = fontStyle + \" \" + fontWeight + \" \" + 9 + \"px \" + fontFamily;\n ctx.fillText(text, x, y - 5);\n }\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG() {\n\t\t\tthrow new Error(\"svg not implemented\");\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props2 = this.props,\n\t\t\t selected = _props2.selected,\n\t\t\t interactiveCursorClass = _props2.interactiveCursorClass;\n\t\t\tvar _props3 = this.props,\n\t\t\t onHover = _props3.onHover,\n\t\t\t onUnHover = _props3.onUnHover;\n\t\t\tvar _props4 = this.props,\n\t\t\t onDragStart = _props4.onDragStart,\n\t\t\t onDrag = _props4.onDrag,\n\t\t\t onDragComplete = _props4.onDragComplete;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\t\t\t\tselected: selected,\n\n\t\t\t\tonDragStart: onDragStart,\n\t\t\t\tonDrag: onDrag,\n\t\t\t\tonDragComplete: onDragComplete,\n\t\t\t\tonHover: onHover,\n\t\t\t\tonUnHover: onUnHover,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"mouseleave\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn InteractiveText;\n}(_react.Component);\n\nfunction helper(props, moreProps, textWidth) {\n\tvar position = props.position,\n\t fontSize = props.fontSize;\n\tvar xScale = moreProps.xScale,\n\t yScale = moreProps.chartConfig.yScale;\n\n\tvar _position = _slicedToArray(position, 2),\n\t xValue = _position[0],\n\t yValue = _position[1];\n\n\tvar x = xScale(xValue);\n\tvar y = yScale(yValue);\n\n\tvar rect = {\n\t\tx: x - textWidth / 2 - fontSize,\n\t\ty: y - fontSize,\n\t\twidth: textWidth + fontSize * 2,\n\t\theight: fontSize\n\t};\n\n\treturn {\n\t\tx: x, y: y, rect: rect\n\t};\n}\n\nInteractiveText.propTypes = {\n\tbgFill: _propTypes2.default.string.isRequired,\n\tbgOpacity: _propTypes2.default.number.isRequired,\n\tbgStrokeWidth: _propTypes2.default.number.isRequired,\n\tbgStroke: _propTypes2.default.string.isRequired,\n\n\ttextFill: _propTypes2.default.string.isRequired,\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\tfontWeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,\n\tfontStyle: _propTypes2.default.string.isRequired,\n\n\ttext: _propTypes2.default.string.isRequired,\n\n\tonDragStart: _propTypes2.default.func.isRequired,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdefaultClassName: _propTypes2.default.string,\n\tinteractiveCursorClass: _propTypes2.default.string,\n\n\ttolerance: _propTypes2.default.number.isRequired,\n\tselected: _propTypes2.default.bool.isRequired\n};\n\nInteractiveText.defaultProps = {\n\tonDragStart: _utils.noop,\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\ttype: \"SD\", // standard dev\n\tfontWeight: \"normal\", // standard dev\n\n\ttolerance: 4,\n\tselected: false\n};\n\nexports.default = InteractiveText;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _d3Format = require(\"d3-format\");\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _EachInteractiveYCoordinate = require(\"./wrapper/EachInteractiveYCoordinate\");\n\nvar _EachInteractiveYCoordinate2 = _interopRequireDefault(_EachInteractiveYCoordinate);\n\nvar _HoverTextNearMouse = require(\"./components/HoverTextNearMouse\");\n\nvar _HoverTextNearMouse2 = _interopRequireDefault(_HoverTextNearMouse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InteractiveYCoordinate = function (_Component) {\n\t_inherits(InteractiveYCoordinate, _Component);\n\n\tfunction InteractiveYCoordinate(props) {\n\t\t_classCallCheck(this, InteractiveYCoordinate);\n\n\t\tvar _this = _possibleConstructorReturn(this, (InteractiveYCoordinate.__proto__ || Object.getPrototypeOf(InteractiveYCoordinate)).call(this, props));\n\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\t\t_this.handleDragComplete = _this.handleDragComplete.bind(_this);\n\t\t_this.handleDelete = _this.handleDelete.bind(_this);\n\t\t_this.terminate = _utils2.terminate.bind(_this);\n\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.getSelectionState = (0, _utils2.isHoverForInteractiveType)(\"yCoordinateList\").bind(_this);\n\n\t\t_this.nodes = [];\n\t\t_this.state = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(InteractiveYCoordinate, [{\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag(index, yValue) {\n\t\t\tthis.setState({\n\t\t\t\toverride: {\n\t\t\t\t\tindex: index,\n\t\t\t\t\tyValue: yValue\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragComplete\",\n\t\tvalue: function handleDragComplete(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar override = this.state.override;\n\n\t\t\tif ((0, _utils.isDefined)(override)) {\n\t\t\t\tvar yCoordinateList = this.props.yCoordinateList;\n\n\t\t\t\tvar newAlertList = yCoordinateList.map(function (each, idx) {\n\t\t\t\t\tvar selected = idx === override.index;\n\t\t\t\t\treturn selected ? _extends({}, each, {\n\t\t\t\t\t\tyValue: override.yValue,\n\t\t\t\t\t\tselected: selected\n\t\t\t\t\t}) : _extends({}, each, {\n\t\t\t\t\t\tselected: selected\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tvar draggedAlert = newAlertList[override.index];\n\t\t\t\tthis.setState({\n\t\t\t\t\toverride: null\n\t\t\t\t}, function () {\n\t\t\t\t\t_this2.props.onDragComplete(newAlertList, moreProps, draggedAlert);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDrawLine\",\n\t\tvalue: function handleDrawLine(xyValue) {\n\t\t\tvar current = this.state.current;\n\n\n\t\t\tif ((0, _utils.isDefined)(current) && (0, _utils.isDefined)(current.start)) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrent: {\n\t\t\t\t\t\tstart: current.start,\n\t\t\t\t\t\tend: xyValue\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleDelete\",\n\t\tvalue: function handleDelete(index, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t onDelete = _props.onDelete,\n\t\t\t yCoordinateList = _props.yCoordinateList;\n\n\t\t\tonDelete(yCoordinateList[index], moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar yCoordinateList = this.props.yCoordinateList;\n\t\t\tvar override = this.state.override;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\tyCoordinateList.map(function (each, idx) {\n\t\t\t\t\tvar props = each;\n\t\t\t\t\treturn _react2.default.createElement(_EachInteractiveYCoordinate2.default, _extends({ key: each.id,\n\t\t\t\t\t\tref: _this3.saveNodeType(idx),\n\t\t\t\t\t\tindex: idx\n\t\t\t\t\t}, props, {\n\t\t\t\t\t\tselected: each.selected,\n\t\t\t\t\t\tyValue: (0, _utils2.getValueFromOverride)(override, idx, \"yValue\", each.yValue),\n\n\t\t\t\t\t\tonDelete: _this3.handleDelete,\n\t\t\t\t\t\tonDrag: _this3.handleDrag,\n\t\t\t\t\t\tonDragComplete: _this3.handleDragComplete,\n\t\t\t\t\t\tedgeInteractiveCursor: \"react-stockcharts-move-cursor\"\n\t\t\t\t\t}));\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn InteractiveYCoordinate;\n}(_react.Component);\n\nInteractiveYCoordinate.propTypes = {\n\tonChoosePosition: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func,\n\tonDelete: _propTypes2.default.func,\n\n\tdefaultPriceCoordinate: _propTypes2.default.shape({\n\t\tbgFill: _propTypes2.default.string.isRequired,\n\t\tbgOpacity: _propTypes2.default.number.isRequired,\n\n\t\tstroke: _propTypes2.default.string.isRequired,\n\t\tstrokeDasharray: _propTypes2.default.oneOf(_utils.strokeDashTypes).isRequired,\n\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\n\t\ttextFill: _propTypes2.default.string.isRequired,\n\t\tfontFamily: _propTypes2.default.string.isRequired,\n\t\tfontWeight: _propTypes2.default.string.isRequired,\n\t\tfontStyle: _propTypes2.default.string.isRequired,\n\t\tfontSize: _propTypes2.default.number.isRequired,\n\t\ttext: _propTypes2.default.string.isRequired,\n\n\t\ttextBox: _propTypes2.default.shape({\n\t\t\theight: _propTypes2.default.number.isRequired,\n\t\t\tleft: _propTypes2.default.number.isRequired,\n\t\t\tpadding: _propTypes2.default.shape({\n\t\t\t\tleft: _propTypes2.default.number.isRequired,\n\t\t\t\tright: _propTypes2.default.number.isRequired\n\t\t\t}),\n\t\t\tcloseIcon: undefined\n\t\t}).isRequired,\n\t\tedge: _propTypes2.default.shape({\n\t\t\tstroke: _propTypes2.default.string.isRequired,\n\t\t\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\t\t\tstrokeWidth: _propTypes2.default.number.isRequired,\n\n\t\t\tfill: _propTypes2.default.string.isRequired,\n\t\t\tfillOpacity: _propTypes2.default.number.isRequired\n\t\t})\n\t}).isRequired,\n\n\thoverText: _propTypes2.default.object.isRequired,\n\tyCoordinateList: _propTypes2.default.array.isRequired,\n\tenabled: _propTypes2.default.bool.isRequired\n};\n\nInteractiveYCoordinate.defaultProps = {\n\tonChoosePosition: _utils.noop,\n\tonDragComplete: _utils.noop,\n\tonSelect: _utils.noop,\n\tonDelete: _utils.noop,\n\n\tdefaultPriceCoordinate: {\n\t\tbgFill: \"#FFFFFF\",\n\t\tbgOpacity: 1,\n\n\t\tstroke: \"#6574CD\",\n\t\tstrokeOpacity: 1,\n\t\tstrokeDasharray: \"ShortDash2\",\n\t\tstrokeWidth: 1,\n\n\t\ttextFill: \"#6574CD\",\n\t\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\t\tfontSize: 10,\n\t\tfontStyle: \"normal\",\n\t\tfontWeight: \"normal\",\n\t\ttext: \"Alert\",\n\t\ttextBox: {\n\t\t\theight: 20,\n\t\t\tleft: 20,\n\t\t\tpadding: { left: 10, right: 5 },\n\t\t\tcloseIcon: {\n\t\t\t\tpadding: { left: 0, right: 0 },\n\t\t\t\twidth: 0\n\t\t\t}\n\t\t},\n\t\tedge: {\n\t\t\tstroke: \"#6574CD\",\n\t\t\tstrokeOpacity: 1,\n\t\t\tstrokeWidth: 1,\n\n\t\t\tfill: \"#FFFFFF\",\n\t\t\tfillOpacity: 1,\n\t\t\torient: \"right\",\n\t\t\tat: \"right\",\n\t\t\tarrowWidth: 10,\n\t\t\tdx: 0,\n\t\t\trectWidth: 50,\n\t\t\trectHeight: 20,\n\t\t\tdisplayFormat: (0, _d3Format.format)(\".2f\")\n\t\t}\n\t},\n\thoverText: _extends({}, _HoverTextNearMouse2.default.defaultProps, {\n\t\tenable: true,\n\t\tbgHeight: 18,\n\t\tbgWidth: 175,\n\t\ttext: \"Click and drag the edge circles\"\n\t}),\n\tyCoordinateList: []\n};\n\nInteractiveYCoordinate.contextTypes = {\n\tsubscribe: _propTypes2.default.func.isRequired,\n\tunsubscribe: _propTypes2.default.func.isRequired,\n\tgenerateSubscriptionId: _propTypes2.default.func.isRequired,\n\tchartId: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired\n};\n\nexports.default = InteractiveYCoordinate;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../../utils\");\n\nvar _utils2 = require(\"../utils\");\n\nvar _ClickableShape = require(\"../components/ClickableShape\");\n\nvar _ClickableShape2 = _interopRequireDefault(_ClickableShape);\n\nvar _InteractiveYCoordinate = require(\"../components/InteractiveYCoordinate\");\n\nvar _InteractiveYCoordinate2 = _interopRequireDefault(_InteractiveYCoordinate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EachInteractiveYCoordinate = function (_Component) {\n\t_inherits(EachInteractiveYCoordinate, _Component);\n\n\tfunction EachInteractiveYCoordinate(props) {\n\t\t_classCallCheck(this, EachInteractiveYCoordinate);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EachInteractiveYCoordinate.__proto__ || Object.getPrototypeOf(EachInteractiveYCoordinate)).call(this, props));\n\n\t\t_this.handleHover = _this.handleHover.bind(_this);\n\t\t_this.handleCloseIconHover = _this.handleCloseIconHover.bind(_this);\n\n\t\t_this.handleDragStart = _this.handleDragStart.bind(_this);\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\n\t\t_this.handleDelete = _this.handleDelete.bind(_this);\n\n\t\t_this.isHover = _utils2.isHover.bind(_this);\n\t\t_this.saveNodeType = _utils2.saveNodeType.bind(_this);\n\t\t_this.nodes = {};\n\n\t\t_this.state = {\n\t\t\thover: false,\n\t\t\tcloseIconHover: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EachInteractiveYCoordinate, [{\n\t\tkey: \"handleDragStart\",\n\t\tvalue: function handleDragStart(moreProps) {\n\t\t\tvar yValue = this.props.yValue;\n\t\t\tvar mouseXY = moreProps.mouseXY;\n\t\t\tvar yScale = moreProps.chartConfig.yScale;\n\n\t\t\tvar _mouseXY = _slicedToArray(mouseXY, 2),\n\t\t\t mouseY = _mouseXY[1];\n\n\t\t\tvar dy = mouseY - yScale(yValue);\n\n\t\t\tthis.dragStartPosition = {\n\t\t\t\tyValue: yValue, dy: dy\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t index = _props.index,\n\t\t\t onDrag = _props.onDrag;\n\n\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t mouseY = _moreProps$mouseXY[1],\n\t\t\t yScale = moreProps.chartConfig.yScale;\n\n\t\t\tvar dy = this.dragStartPosition.dy;\n\n\n\t\t\tvar newYValue = yScale.invert(mouseY - dy);\n\n\t\t\tonDrag(index, newYValue);\n\t\t}\n\t}, {\n\t\tkey: \"handleDelete\",\n\t\tvalue: function handleDelete(moreProps) {\n\t\t\tvar _props2 = this.props,\n\t\t\t index = _props2.index,\n\t\t\t onDelete = _props2.onDelete;\n\n\t\t\tonDelete(index, moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"handleHover\",\n\t\tvalue: function handleHover(moreProps) {\n\t\t\tif (this.state.hover !== moreProps.hovering) {\n\t\t\t\tthis.setState({\n\t\t\t\t\thover: moreProps.hovering,\n\t\t\t\t\tcloseIconHover: moreProps.hovering ? this.state.closeIconHover : false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleCloseIconHover\",\n\t\tvalue: function handleCloseIconHover(moreProps) {\n\t\t\tif (this.state.closeIconHover !== moreProps.hovering) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tcloseIconHover: moreProps.hovering\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props3 = this.props,\n\t\t\t yValue = _props3.yValue,\n\t\t\t bgFill = _props3.bgFill,\n\t\t\t bgOpacity = _props3.bgOpacity,\n\t\t\t textFill = _props3.textFill,\n\t\t\t fontFamily = _props3.fontFamily,\n\t\t\t fontSize = _props3.fontSize,\n\t\t\t fontWeight = _props3.fontWeight,\n\t\t\t fontStyle = _props3.fontStyle,\n\t\t\t text = _props3.text,\n\t\t\t selected = _props3.selected,\n\t\t\t onDragComplete = _props3.onDragComplete,\n\t\t\t stroke = _props3.stroke,\n\t\t\t strokeOpacity = _props3.strokeOpacity,\n\t\t\t strokeDasharray = _props3.strokeDasharray,\n\t\t\t strokeWidth = _props3.strokeWidth,\n\t\t\t edge = _props3.edge,\n\t\t\t textBox = _props3.textBox,\n\t\t\t draggable = _props3.draggable;\n\t\t\tvar _state = this.state,\n\t\t\t hover = _state.hover,\n\t\t\t closeIconHover = _state.closeIconHover;\n\n\n\t\t\tvar hoverHandler = {\n\t\t\t\tonHover: this.handleHover,\n\t\t\t\tonUnHover: this.handleHover\n\t\t\t};\n\n\t\t\tvar dragProps = draggable ? {\n\t\t\t\tonDragStart: this.handleDragStart,\n\t\t\t\tonDrag: this.handleDrag,\n\t\t\t\tonDragComplete: onDragComplete\n\t\t\t} : {};\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t\"g\",\n\t\t\t\tnull,\n\t\t\t\t_react2.default.createElement(_InteractiveYCoordinate2.default, _extends({\n\t\t\t\t\tref: this.saveNodeType(\"priceCoordinate\"),\n\t\t\t\t\tselected: selected && !closeIconHover,\n\t\t\t\t\thovering: hover || closeIconHover,\n\t\t\t\t\tinteractiveCursorClass: \"react-stockcharts-move-cursor\"\n\t\t\t\t}, hoverHandler, dragProps, {\n\n\t\t\t\t\tyValue: yValue,\n\t\t\t\t\tbgFill: bgFill,\n\t\t\t\t\tbgOpacity: bgOpacity,\n\t\t\t\t\ttextFill: textFill,\n\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\tfontStyle: fontStyle,\n\t\t\t\t\tfontWeight: fontWeight,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tstrokeDasharray: strokeDasharray,\n\t\t\t\t\tstrokeWidth: strokeWidth,\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttextBox: textBox,\n\t\t\t\t\tedge: edge\n\t\t\t\t})),\n\t\t\t\t_react2.default.createElement(_ClickableShape2.default, {\n\t\t\t\t\tshow: true,\n\t\t\t\t\thovering: closeIconHover,\n\t\t\t\t\ttext: text,\n\t\t\t\t\tyValue: yValue,\n\t\t\t\t\tfontFamily: fontFamily,\n\t\t\t\t\tfontStyle: fontStyle,\n\t\t\t\t\tfontWeight: fontWeight,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\ttextBox: textBox,\n\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\n\t\t\t\t\tonHover: this.handleCloseIconHover,\n\t\t\t\t\tonUnHover: this.handleCloseIconHover,\n\t\t\t\t\tonClick: this.handleDelete\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn EachInteractiveYCoordinate;\n}(_react.Component);\n\nEachInteractiveYCoordinate.propTypes = {\n\tindex: _propTypes2.default.number,\n\n\tdraggable: _propTypes2.default.bool.isRequired,\n\tyValue: _propTypes2.default.number.isRequired,\n\n\tbgFill: _propTypes2.default.string.isRequired,\n\tbgOpacity: _propTypes2.default.number.isRequired,\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\tstrokeDasharray: _propTypes2.default.string.isRequired,\n\ttextFill: _propTypes2.default.string.isRequired,\n\n\tfontWeight: _propTypes2.default.string.isRequired,\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontStyle: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\n\ttext: _propTypes2.default.string.isRequired,\n\tselected: _propTypes2.default.bool.isRequired,\n\n\tedge: _propTypes2.default.object.isRequired,\n\ttextBox: _propTypes2.default.object.isRequired,\n\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonDelete: _propTypes2.default.func.isRequired\n};\n\nEachInteractiveYCoordinate.defaultProps = {\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n\n\tstrokeWidth: 1,\n\topacity: 1,\n\tselected: false,\n\tfill: \"#FFFFFF\",\n\tdraggable: false\n};\n\nexports.default = EachInteractiveYCoordinate;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _StraightLine = require(\"./StraightLine\");\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ClickableShape = function (_Component) {\n\t_inherits(ClickableShape, _Component);\n\n\tfunction ClickableShape(props) {\n\t\t_classCallCheck(this, ClickableShape);\n\n\t\tvar _this = _possibleConstructorReturn(this, (ClickableShape.__proto__ || Object.getPrototypeOf(ClickableShape)).call(this, props));\n\n\t\t_this.saveNode = _this.saveNode.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(ClickableShape, [{\n\t\tkey: \"saveNode\",\n\t\tvalue: function saveNode(node) {\n\t\t\tthis.node = node;\n\t\t}\n\t}, {\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar mouseXY = moreProps.mouseXY;\n\n\t\t\tif (this.closeIcon) {\n\t\t\t\tvar textBox = this.props.textBox;\n\t\t\t\tvar _closeIcon = this.closeIcon,\n\t\t\t\t x = _closeIcon.x,\n\t\t\t\t y = _closeIcon.y;\n\n\t\t\t\tvar halfWidth = textBox.closeIcon.width / 2;\n\n\t\t\t\tvar start1 = [x - halfWidth, y - halfWidth];\n\t\t\t\tvar end1 = [x + halfWidth, y + halfWidth];\n\t\t\t\tvar start2 = [x - halfWidth, y + halfWidth];\n\t\t\t\tvar end2 = [x + halfWidth, y - halfWidth];\n\n\t\t\t\tif ((0, _StraightLine.isHovering2)(start1, end1, mouseXY, 3) || (0, _StraightLine.isHovering2)(start2, end2, mouseXY, 3)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t stroke = _props.stroke,\n\t\t\t strokeWidth = _props.strokeWidth,\n\t\t\t strokeOpacity = _props.strokeOpacity,\n\t\t\t hovering = _props.hovering,\n\t\t\t textBox = _props.textBox;\n\n\t\t\tvar _helper = helper(this.props, moreProps, ctx),\n\t\t\t _helper2 = _slicedToArray(_helper, 2),\n\t\t\t x = _helper2[0],\n\t\t\t y = _helper2[1];\n\n\t\t\tthis.closeIcon = { x: x, y: y };\n\t\t\tctx.beginPath();\n\n\t\t\tctx.lineWidth = hovering ? strokeWidth + 1 : strokeWidth;\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\t\t\tvar halfWidth = textBox.closeIcon.width / 2;\n\t\t\tctx.moveTo(x - halfWidth, y - halfWidth);\n\t\t\tctx.lineTo(x + halfWidth, y + halfWidth);\n\t\t\tctx.moveTo(x - halfWidth, y + halfWidth);\n\t\t\tctx.lineTo(x + halfWidth, y - halfWidth);\n\t\t\tctx.stroke();\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG() {\n\t\t\tthrow new Error(\"svg not implemented\");\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar interactiveCursorClass = this.props.interactiveCursorClass;\n\t\t\tvar show = this.props.show;\n\t\t\tvar _props2 = this.props,\n\t\t\t onHover = _props2.onHover,\n\t\t\t onUnHover = _props2.onUnHover,\n\t\t\t onClick = _props2.onClick;\n\n\n\t\t\treturn show ? _react2.default.createElement(_GenericChartComponent2.default, { ref: this.saveNode,\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass,\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tonClickWhenHover: onClick,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\n\t\t\t\tonHover: onHover,\n\t\t\t\tonUnHover: onUnHover,\n\n\t\t\t\tdrawOn: [\"pan\", \"mousemove\", \"drag\"]\n\t\t\t}) : null;\n\t\t}\n\t}]);\n\n\treturn ClickableShape;\n}(_react.Component);\n\nfunction helper(props, moreProps, ctx) {\n\tvar yValue = props.yValue,\n\t text = props.text,\n\t textBox = props.textBox;\n\tvar fontFamily = props.fontFamily,\n\t fontStyle = props.fontStyle,\n\t fontWeight = props.fontWeight,\n\t fontSize = props.fontSize;\n\n\tctx.font = fontStyle + \" \" + fontWeight + \" \" + fontSize + \"px \" + fontFamily;\n\n\tvar yScale = moreProps.chartConfig.yScale;\n\n\n\tvar x = textBox.left + textBox.padding.left + ctx.measureText(text).width + textBox.padding.right + textBox.closeIcon.padding.left + textBox.closeIcon.width / 2;\n\n\tvar y = yScale(yValue);\n\n\treturn [x, y];\n}\n\nClickableShape.propTypes = {\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\ttextBox: _propTypes2.default.object.isRequired,\n\thovering: _propTypes2.default.bool,\n\tinteractiveCursorClass: _propTypes2.default.string,\n\tshow: _propTypes2.default.bool,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\tonClick: _propTypes2.default.func\n};\n\nClickableShape.defaultProps = {\n\tshow: false,\n\tfillOpacity: 1,\n\tstrokeOpacity: 1,\n\tstrokeWidth: 1\n};\n\nexports.default = ClickableShape;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _GenericChartComponent = require(\"../../GenericChartComponent\");\n\nvar _GenericChartComponent2 = _interopRequireDefault(_GenericChartComponent);\n\nvar _GenericComponent = require(\"../../GenericComponent\");\n\nvar _utils = require(\"../../utils\");\n\nvar _EdgeCoordinateV = require(\"../../coordinates/EdgeCoordinateV4\");\n\nvar _MouseCoordinateY = require(\"../../coordinates/MouseCoordinateY\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InteractiveYCoordinate = function (_Component) {\n\t_inherits(InteractiveYCoordinate, _Component);\n\n\tfunction InteractiveYCoordinate(props) {\n\t\t_classCallCheck(this, InteractiveYCoordinate);\n\n\t\tvar _this = _possibleConstructorReturn(this, (InteractiveYCoordinate.__proto__ || Object.getPrototypeOf(InteractiveYCoordinate)).call(this, props));\n\n\t\t_this.renderSVG = _this.renderSVG.bind(_this);\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(InteractiveYCoordinate, [{\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(moreProps) {\n\t\t\tvar onHover = this.props.onHover;\n\n\n\t\t\tif ((0, _utils.isDefined)(onHover)) {\n\t\t\t\tvar values = helper(this.props, moreProps);\n\t\t\t\tif (values == null) return false;\n\n\t\t\t\tvar x1 = values.x1,\n\t\t\t\t x2 = values.x2,\n\t\t\t\t y = values.y,\n\t\t\t\t rect = values.rect;\n\n\t\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t\t mouseX = _moreProps$mouseXY[0],\n\t\t\t\t mouseY = _moreProps$mouseXY[1];\n\n\t\t\t\tif (mouseX >= rect.x && mouseX <= rect.x + this.width && mouseY >= rect.y && mouseY <= rect.y + rect.height) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (x1 <= mouseX && x2 >= mouseX && Math.abs(mouseY - y) < 4) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas(ctx, moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t bgFill = _props.bgFill,\n\t\t\t bgOpacity = _props.bgOpacity,\n\t\t\t textFill = _props.textFill,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t fontStyle = _props.fontStyle,\n\t\t\t fontWeight = _props.fontWeight,\n\t\t\t stroke = _props.stroke,\n\t\t\t strokeWidth = _props.strokeWidth,\n\t\t\t strokeOpacity = _props.strokeOpacity,\n\t\t\t strokeDasharray = _props.strokeDasharray,\n\t\t\t text = _props.text,\n\t\t\t textBox = _props.textBox,\n\t\t\t edge = _props.edge;\n\t\t\tvar _props2 = this.props,\n\t\t\t selected = _props2.selected,\n\t\t\t hovering = _props2.hovering;\n\n\n\t\t\tvar values = helper(this.props, moreProps);\n\t\t\tif (values == null) return;\n\n\t\t\tvar x1 = values.x1,\n\t\t\t x2 = values.x2,\n\t\t\t y = values.y,\n\t\t\t rect = values.rect;\n\n\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(stroke, strokeOpacity);\n\n ctx.beginPath();\n strokeWidth += 0.5;\n\t\t\tif (selected || hovering) {\n\t\t\t\tctx.lineWidth = strokeWidth + 1;\n\t\t\t} else {\n\t\t\t\tctx.lineWidth = strokeWidth;\n\t\t\t}\n\t\t\tctx.textBaseline = \"middle\";\n\t\t\tctx.textAlign = \"start\";\n\t\t\tctx.font = fontStyle + \" \" + '900' + \" \" + fontSize + \"px \" + fontFamily;\n\n\t\t\tthis.width = textBox.padding.left + ctx.measureText(text).width + textBox.padding.right + textBox.closeIcon.padding.left + textBox.closeIcon.width + textBox.closeIcon.padding.right;\n\n\t\t\tctx.setLineDash((0, _utils.getStrokeDasharrayCanvas)(strokeDasharray));\n\n ctx.moveTo(x2 - 200, y);\n\t\t\tctx.lineTo(x2 + 25, y);\n ctx.stroke();\n\n\t\t\tctx.fillStyle = (0, _utils.hexToRGBA)(bgFill, bgOpacity);\n\n\t\t\tvar newEdge = _extends({}, edge, {\n\t\t\t\ttextFill: textFill,\n\t\t\t\tfontFamily: fontFamily,\n fontSize: 12,\n\t\t\t\topacity: 0\n\t\t\t});\n\t\t\tvar yValue = edge.displayFormat(this.props.yValue);\n\t\t\tvar yCoord = (0, _MouseCoordinateY.getYCoordinate)(y, text, newEdge, moreProps);\n\t\t\t(0, _EdgeCoordinateV.drawOnCanvas)(ctx, yCoord);\n\t\t}\n\t}, {\n\t\tkey: \"renderSVG\",\n\t\tvalue: function renderSVG() {\n\t\t\tthrow new Error(\"svg not implemented\");\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar interactiveCursorClass = this.props.interactiveCursorClass;\n\t\t\tvar _props3 = this.props,\n\t\t\t onHover = _props3.onHover,\n\t\t\t onUnHover = _props3.onUnHover;\n\t\t\tvar _props4 = this.props,\n\t\t\t onDragStart = _props4.onDragStart,\n\t\t\t onDrag = _props4.onDrag,\n\t\t\t onDragComplete = _props4.onDragComplete;\n\n\n\t\t\treturn _react2.default.createElement(_GenericChartComponent2.default, {\n\t\t\t\tclip: false,\n\t\t\t\txxxyyy: true,\n\t\t\t\tisHover: this.isHover,\n\n\t\t\t\tsvgDraw: this.renderSVG,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: this.drawOnCanvas,\n\n\t\t\t\tinteractiveCursorClass: interactiveCursorClass\n\t\t\t\t/* selected={selected} */\n\t\t\t\t, enableDragOnHover: true,\n\n\t\t\t\tonDragStart: onDragStart,\n\t\t\t\tonDrag: onDrag,\n\t\t\t\tonDragComplete: onDragComplete,\n\t\t\t\tonHover: onHover,\n\t\t\t\tonUnHover: onUnHover,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"mouseleave\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn InteractiveYCoordinate;\n}(_react.Component);\n\nfunction helper(props, moreProps) {\n\tvar yValue = props.yValue,\n\t textBox = props.textBox;\n\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t width = _moreProps$chartConfi.width,\n\t yScale = _moreProps$chartConfi.yScale,\n\t height = _moreProps$chartConfi.height;\n\n\n\tvar y = Math.round(yScale(yValue));\n\n\tif (y >= 0 && y <= height) {\n\t\tvar rect = {\n\t\t\tx: textBox.left,\n\t\t\ty: y - textBox.height / 2,\n\t\t\theight: textBox.height\n\t\t};\n\t\treturn {\n\t\t\tx1: 0,\n\t\t\tx2: width,\n\t\t\ty: y,\n\t\t\trect: rect\n\t\t};\n\t}\n}\n\nInteractiveYCoordinate.propTypes = {\n\tbgFill: _propTypes2.default.string.isRequired,\n\tbgOpacity: _propTypes2.default.number.isRequired,\n\n\tstroke: _propTypes2.default.string.isRequired,\n\tstrokeWidth: _propTypes2.default.number.isRequired,\n\tstrokeOpacity: _propTypes2.default.number.isRequired,\n\tstrokeDasharray: _propTypes2.default.string.isRequired,\n\n\ttextFill: _propTypes2.default.string.isRequired,\n\tfontFamily: _propTypes2.default.string.isRequired,\n\tfontSize: _propTypes2.default.number.isRequired,\n\tfontWeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,\n\tfontStyle: _propTypes2.default.string.isRequired,\n\n\ttext: _propTypes2.default.string.isRequired,\n\tedge: _propTypes2.default.object.isRequired,\n\ttextBox: _propTypes2.default.object.isRequired,\n\tyValue: _propTypes2.default.number.isRequired,\n\n\tonDragStart: _propTypes2.default.func.isRequired,\n\tonDrag: _propTypes2.default.func.isRequired,\n\tonDragComplete: _propTypes2.default.func.isRequired,\n\tonHover: _propTypes2.default.func,\n\tonUnHover: _propTypes2.default.func,\n\n\tdefaultClassName: _propTypes2.default.string,\n\tinteractiveCursorClass: _propTypes2.default.string,\n\n\ttolerance: _propTypes2.default.number.isRequired,\n\tselected: _propTypes2.default.bool.isRequired,\n\thovering: _propTypes2.default.bool.isRequired\n};\n\nInteractiveYCoordinate.defaultProps = {\n\tonDragStart: _utils.noop,\n\tonDrag: _utils.noop,\n\tonDragComplete: _utils.noop,\n bgOpacity: 0,\n\tfontWeight: \"normal\", // standard dev\n\n\tstrokeWidth: 1,\n\ttolerance: 4,\n\tselected: false,\n\thovering: false\n};\n\nexports.default = InteractiveYCoordinate;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.renderSVG = renderSVG;\nexports.drawOnCanvas = drawOnCanvas;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable react/prop-types */\nfunction renderSVG(props) {\n\tvar className = props.className;\n\n\n\tvar edge = helper(props);\n\tif (edge === null) return null;\n\tvar line = void 0,\n\t coordinateBase = void 0,\n\t coordinate = void 0;\n\n\tif ((0, _utils.isDefined)(edge.line)) {\n\t\tline = _react2.default.createElement(\"line\", {\n\t\t\tclassName: \"react-stockcharts-cross-hair\",\n\t\t\tstrokeOpacity: edge.line.opacity,\n\t\t\tstroke: edge.line.stroke,\n\t\t\tstrokeDasharray: (0, _utils.getStrokeDasharray)(edge.line.strokeDasharray),\n\t\t\tx1: edge.line.x1,\n\t\t\ty1: edge.line.y1,\n\t\t\tx2: edge.line.x2,\n\t\t\ty2: edge.line.y2\n\t\t});\n\t}\n\tif ((0, _utils.isDefined)(edge.coordinateBase)) {\n\t\tvar _edge$coordinateBase = edge.coordinateBase,\n\t\t rectWidth = _edge$coordinateBase.rectWidth,\n\t\t rectHeight = _edge$coordinateBase.rectHeight,\n\t\t arrowWidth = _edge$coordinateBase.arrowWidth;\n\n\n\t\tvar path = edge.orient === \"left\" ? \"M0,0L0,\" + rectHeight + \"L\" + rectWidth + \",\" + rectHeight + \"L\" + (rectWidth + arrowWidth) + \",10L\" + rectWidth + \",0L0,0L0,0\" : \"M0,\" + arrowWidth + \"L\" + arrowWidth + \",\" + rectHeight + \"L\" + (rectWidth + arrowWidth) + \",\" + rectHeight + \"L\" + (rectWidth + arrowWidth) + \",0L\" + arrowWidth + \",0L0,\" + arrowWidth;\n\n\t\tcoordinateBase = edge.orient === \"left\" || edge.orient === \"right\" ? _react2.default.createElement(\n\t\t\t\"g\",\n\t\t\t{\n\t\t\t\tkey: 1,\n\t\t\t\ttransform: \"translate(\" + edge.coordinateBase.edgeXRect + \",\" + edge.coordinateBase.edgeYRect + \")\"\n\t\t\t},\n\t\t\t_react2.default.createElement(\"path\", {\n\t\t\t\td: path,\n\t\t\t\tclassName: \"react-stockchart-text-background\",\n\t\t\t\theight: rectHeight,\n\t\t\t\twidth: rectWidth,\n\t\t\t\tstroke: edge.coordinateBase.stroke,\n\t\t\t\tstrokeLinejoin: \"miter\",\n\t\t\t\tstrokeOpacity: edge.coordinateBase.strokeOpacity,\n\t\t\t\tstrokeWidth: edge.coordinateBase.strokeWidth,\n\t\t\t\tfill: edge.coordinateBase.fill,\n\t\t\t\tfillOpacity: edge.coordinateBase.opacity\n\t\t\t})\n\t\t) : _react2.default.createElement(\"rect\", {\n\t\t\tkey: 1,\n\t\t\tclassName: \"react-stockchart-text-background\",\n\t\t\tx: edge.coordinateBase.edgeXRect,\n\t\t\ty: edge.coordinateBase.edgeYRect,\n\t\t\theight: rectHeight,\n\t\t\twidth: rectWidth,\n\t\t\tfill: edge.coordinateBase.fill,\n\t\t\topacity: edge.coordinateBase.opacity\n\t\t});\n\n\t\tcoordinate = _react2.default.createElement(\n\t\t\t\"text\",\n\t\t\t{\n\t\t\t\tkey: 2,\n\t\t\t\tx: edge.coordinate.edgeXText,\n\t\t\t\ty: edge.coordinate.edgeYText,\n\t\t\t\ttextAnchor: edge.coordinate.textAnchor,\n\t\t\t\tfontFamily: edge.coordinate.fontFamily,\n\t\t\t\tfontSize: edge.coordinate.fontSize,\n\t\t\t\tdy: \".32em\",\n\t\t\t\tfill: edge.coordinate.textFill\n\t\t\t},\n\t\t\tedge.coordinate.displayCoordinate\n\t\t);\n\t}\n\treturn _react2.default.createElement(\n\t\t\"g\",\n\t\t{ className: className },\n\t\tline,\n\t\tcoordinateBase,\n\t\tcoordinate\n\t);\n}\n/* eslint-enable react/prop-types */\n\nfunction helper(props) {\n\tvar displayCoordinate = props.coordinate,\n\t show = props.show,\n\t type = props.type,\n\t orient = props.orient,\n\t edgeAt = props.edgeAt,\n\t hideLine = props.hideLine,\n\t lineStrokeDasharray = props.lineStrokeDasharray;\n\tvar fill = props.fill,\n\t opacity = props.opacity,\n\t fontFamily = props.fontFamily,\n\t fontSize = props.fontSize,\n\t textFill = props.textFill,\n\t lineStroke = props.lineStroke,\n\t lineOpacity = props.lineOpacity;\n\tvar stroke = props.stroke,\n\t strokeOpacity = props.strokeOpacity,\n\t strokeWidth = props.strokeWidth;\n\tvar arrowWidth = props.arrowWidth,\n\t rectWidth = props.rectWidth,\n\t rectHeight = props.rectHeight,\n\t rectRadius = props.rectRadius;\n\tvar x1 = props.x1,\n\t y1 = props.y1,\n\t x2 = props.x2,\n\t y2 = props.y2,\n\t dx = props.dx;\n\n\n\tif (!show) return null;\n\tvar coordinateBase = void 0,\n\t coordinate = void 0;\n\tif ((0, _utils.isDefined)(displayCoordinate)) {\n\t\tvar textAnchor = \"middle\"; // TODO: Below it is necessary to implement logic for the possibility of alignment from the right or from the left.\n\n\t\tvar edgeXRect = void 0,\n\t\t edgeYRect = void 0,\n\t\t edgeXText = void 0,\n\t\t edgeYText = void 0;\n\n\t\tif (type === \"horizontal\") {\n edgeXRect = dx + (orient === \"right\" ? edgeAt + 1 : edgeAt - rectWidth - 1);\n edgeYRect = y1 - rectHeight / 2 - strokeWidth;\n edgeXText = dx + (orient === \"right\" ? edgeAt + rectWidth / 2 : edgeAt - rectWidth / 2);\n\t\t\tedgeYText = y1;\n\t\t} else {\n\t\t\tvar dy = orient === \"bottom\" ? strokeWidth - 1 : -strokeWidth + 1;\n\t\t\tedgeXRect = x1 - rectWidth / 2;\n\t\t\tedgeYRect = (orient === \"bottom\" ? edgeAt : edgeAt - rectHeight) + dy;\n\t\t\tedgeXText = x1;\n\t\t\tedgeYText = (orient === \"bottom\" ? edgeAt + rectHeight / 2 : edgeAt - rectHeight / 2) + dy;\n\t\t}\n\n\t\tcoordinateBase = {\n\t\t\tedgeXRect: edgeXRect,\n\t\t\tedgeYRect: edgeYRect,\n\t\t\trectHeight: rectHeight + strokeWidth,\n\t\t\trectWidth: rectWidth,\n\t\t\trectRadius: rectRadius,\n\t\t\tfill: fill,\n\t\t\topacity: opacity,\n\t\t\tarrowWidth: arrowWidth,\n\t\t\tstroke: stroke,\n\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\tstrokeWidth: strokeWidth\n\t\t};\n\t\tcoordinate = {\n\t\t\tedgeXText: edgeXText,\n\t\t\tedgeYText: edgeYText,\n\t\t\ttextAnchor: textAnchor,\n\t\t\tfontFamily: fontFamily,\n\t\t\tfontSize: fontSize,\n\t\t\ttextFill: textFill,\n\t\t\tdisplayCoordinate: displayCoordinate\n\t\t};\n\t}\n\n\tvar line = hideLine ? undefined : {\n\t\topacity: lineOpacity,\n\t\tstroke: lineStroke,\n\t\tstrokeDasharray: lineStrokeDasharray,\n\t\tx1: x1,\n\t\ty1: y1,\n\t\tx2: x2,\n\t\ty2: y2\n\t};\n\n\treturn {\n\t\tcoordinateBase: coordinateBase,\n\t\tcoordinate: coordinate,\n\t\tline: line,\n\t\torient: orient\n\t};\n}\n\nfunction drawOnCanvas(ctx, props) {\n\tvar fontSize = props.fontSize,\n\t fontFamily = props.fontFamily;\n\n\n\tctx.font = 'normal 700 ' + fontSize + \"px \" + fontFamily;\n\tctx.textBaseline = \"middle\";\n\tvar width = Math.round(ctx.measureText(props.coordinate).width + 10);\n\n var edge = helper(_extends({}, props, { rectWidth: width }));\n\n\tif (edge === null) return;\n\n\tif ((0, _utils.isDefined)(edge.line)) {\n\t\tvar dashArray = (0, _utils.getStrokeDasharray)(edge.line.strokeDasharray).split(\",\").map(function (d) {\n\t\t\treturn +d;\n\t\t});\n\t\tctx.setLineDash(dashArray);\n\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(edge.line.stroke, edge.line.opacity);\n\t\tctx.lineWidth = 1;\n\t\tctx.beginPath();\n\t\tctx.moveTo(edge.line.x1, edge.line.y1);\n\t\tctx.lineTo(edge.line.x2, edge.line.y2);\n\t\tctx.stroke();\n\t}\n\n\tctx.setLineDash([]);\n\tif ((0, _utils.isDefined)(edge.coordinateBase)) {\n\t\tvar _edge$coordinateBase2 = edge.coordinateBase,\n\t\t rectWidth = _edge$coordinateBase2.rectWidth,\n\t\t rectHeight = _edge$coordinateBase2.rectHeight,\n\t\t rectRadius = _edge$coordinateBase2.rectRadius,\n\t\t arrowWidth = _edge$coordinateBase2.arrowWidth;\n\n\n\t\tctx.fillStyle = (0, _utils.hexToRGBA)(edge.coordinateBase.fill, edge.coordinateBase.opacity);\n\t\tif ((0, _utils.isDefined)(edge.coordinateBase.stroke)) {\n\t\t\tctx.strokeStyle = (0, _utils.hexToRGBA)(edge.coordinateBase.stroke, edge.coordinateBase.strokeOpacity);\n\t\t\tctx.lineWidth = edge.coordinateBase.strokeWidth;\n\t\t}\n\n\t\tvar x = edge.coordinateBase.edgeXRect;\n\t\tvar y = edge.coordinateBase.edgeYRect;\n\t\tvar halfHeight = rectHeight / 2;\n\n\t\tctx.beginPath();\n\t\tif (edge.orient === \"right\") {\n\t\t\tx -= arrowWidth;\n\t\t\tctx.moveTo(x, y + halfHeight);\n\t\t\tctx.lineTo(x + arrowWidth, y);\n\t\t\tctx.lineTo(x + rectWidth + arrowWidth, y);\n\t\t\tctx.lineTo(x + rectWidth + arrowWidth, y + rectHeight);\n\t\t\tctx.lineTo(x + arrowWidth, y + rectHeight);\n\t\t\tctx.closePath();\n\t\t} else if (edge.orient === \"left\") {\n\t\t\t// x += arrowWidth;\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + rectWidth, y);\n\t\t\tctx.lineTo(x + rectWidth + arrowWidth, y + halfHeight);\n\t\t\tctx.lineTo(x + rectWidth, y + rectHeight);\n\t\t\tctx.lineTo(x, y + rectHeight);\n\t\t\tctx.closePath();\n\t\t} else {\n\t\t\t// console.error(x, y, rectWidth, rectHeight)\n\t\t\tif (rectRadius) {\n\t\t\t\troundRect(ctx, x, y, rectWidth, rectHeight, 3);\n\t\t\t} else {\n\t\t\t\tctx.rect(x, y, rectWidth, rectHeight);\n\t\t\t}\n\t\t}\n\t\tctx.fill();\n\n\t\tif ((0, _utils.isDefined)(edge.coordinateBase.stroke)) {\n\t\t\tctx.stroke();\n\t\t}\n\n\t\tctx.fillStyle = edge.coordinate.textFill;\n ctx.textAlign = edge.coordinate.textAnchor === \"middle\" ? \"center\" : edge.coordinate.textAnchor;\n\t\tctx.fillText(edge.coordinate.displayCoordinate, edge.coordinate.edgeXText + 25, edge.coordinate.edgeYText);\n\t}\n}\n\nfunction roundRect(ctx, x, y, width, height, radius) {\n\tctx.beginPath();\n\tctx.moveTo(x + radius, y);\n\tctx.lineTo(x + width - radius, y);\n\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\tctx.lineTo(x + width, y + height - radius);\n\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\tctx.lineTo(x + radius, y + height);\n\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\tctx.lineTo(x, y + radius);\n\tctx.quadraticCurveTo(x, y, x + radius, y);\n\tctx.closePath();\n}\n\n// export default EdgeCoordinate;\n",";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _utils = require(\"../utils\");\n\nvar _utils2 = require(\"./utils\");\n\nvar _GenericComponent = require(\"../GenericComponent\");\n\nvar _GenericComponent2 = _interopRequireDefault(_GenericComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DrawingObjectSelector = function (_Component) {\n\t_inherits(DrawingObjectSelector, _Component);\n\n\tfunction DrawingObjectSelector(props) {\n\t\t_classCallCheck(this, DrawingObjectSelector);\n\n\t\tvar _this = _possibleConstructorReturn(this, (DrawingObjectSelector.__proto__ || Object.getPrototypeOf(DrawingObjectSelector)).call(this, props));\n\n\t\t_this.handleClick = _this.handleClick.bind(_this);\n\t\t_this.handleDoubleClick = _this.handleDoubleClick.bind(_this);\n\t\t_this.getInteraction = _this.getInteraction.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(DrawingObjectSelector, [{\n\t\tkey: \"handleDoubleClick\",\n\t\tvalue: function handleDoubleClick(moreProps, e) {\n\t\t\te.preventDefault();\n\t\t\tvar onDoubleClick = this.props.onDoubleClick;\n\t\t\tvar enabled = this.props.enabled;\n\n\t\t\tif (!enabled) return;\n\n\t\t\tvar interactives = this.getInteraction(moreProps);\n\t\t\tvar allSelected = (0, _utils2.getSelected)(interactives);\n\n\t\t\t// console.log(selected, interactives)\n\t\t\tif (allSelected.length > 0) {\n\t\t\t\tvar selected = (0, _utils.head)(allSelected);\n\t\t\t\tvar item = {\n\t\t\t\t\ttype: selected.type,\n\t\t\t\t\tchartId: selected.chartId,\n\t\t\t\t\tobject: (0, _utils.head)(selected.objects)\n\t\t\t\t};\n\t\t\t\tvar morePropsForChart = (0, _utils2.getMorePropsForChart)(moreProps, selected.chartId);\n\t\t\t\tonDoubleClick(item, morePropsForChart);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(moreProps, e) {\n\t\t\te.preventDefault();\n\t\t\tvar onSelect = this.props.onSelect;\n\t\t\tvar enabled = this.props.enabled;\n\n\t\t\tif (!enabled) return;\n\n\t\t\tvar interactives = this.getInteraction(moreProps);\n\n\t\t\tonSelect(interactives, moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"getInteraction\",\n\t\tvalue: function getInteraction(moreProps) {\n\t\t\tvar _props = this.props,\n\t\t\t getInteractiveNodes = _props.getInteractiveNodes,\n\t\t\t drawingObjectMap = _props.drawingObjectMap;\n\n\t\t\tvar interactiveNodes = getInteractiveNodes();\n\t\t\tvar interactives = (0, _utils.mapObject)(interactiveNodes, function (each) {\n\t\t\t\tvar key = drawingObjectMap[each.type];\n\n\t\t\t\tvar valueArray = (0, _utils.isDefined)(key) ? each.node.props[key] : undefined;\n\n\t\t\t\tvar valuePresent = (0, _utils.isDefined)(valueArray) && Array.isArray(valueArray) && valueArray.length > 0;\n\t\t\t\tif (valuePresent) {\n\t\t\t\t\t// console.log(\"Value present for \", each.type, each.chartId);\n\t\t\t\t\tvar morePropsForChart = (0, _utils2.getMorePropsForChart)(moreProps, each.chartId);\n\n\t\t\t\t\tvar objects = each.node.getSelectionState(morePropsForChart);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: each.type,\n\t\t\t\t\t\tchartId: each.chartId,\n\t\t\t\t\t\tobjects: objects\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\ttype: each.type,\n\t\t\t\t\tchartId: each.chartId,\n\t\t\t\t\tobjects: []\n\t\t\t\t};\n\t\t\t});\n\n\t\t\treturn interactives;\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\treturn _react2.default.createElement(_GenericComponent2.default, {\n\t\t\t\tsvgDraw: _utils.noop,\n\t\t\t\tcanvasToDraw: _GenericComponent.getMouseCanvas,\n\t\t\t\tcanvasDraw: _utils.noop,\n\n\t\t\t\tonMouseDown: this.handleClick,\n\t\t\t\tonDoubleClick: this.handleDoubleClick,\n\n\t\t\t\tdrawOn: [\"mousemove\", \"pan\", \"drag\"]\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn DrawingObjectSelector;\n}(_react.Component);\n\nDrawingObjectSelector.propTypes = {\n\tgetInteractiveNodes: _propTypes2.default.func.isRequired,\n\tonSelect: _propTypes2.default.func.isRequired,\n\tonDoubleClick: _propTypes2.default.func.isRequired,\n\tdrawingObjectMap: _propTypes2.default.object.isRequired,\n\tenabled: _propTypes2.default.bool.isRequired\n};\n\nDrawingObjectSelector.defaultProps = {\n\tenabled: true,\n\tonDoubleClick: _utils.noop\n};\n\nexports.default = DrawingObjectSelector;\n","export default (function () {});\n","\n\nexport default (function (d) {\n return d;\n});\n","\n\n/* an extension to d3.zip so we call a function instead of an array */\n\nimport { min } from \"d3-array\";\n\nimport identity from \"./identity\";\n\nexport default function zipper() {\n\tvar combine = identity;\n\n\tfunction zip() {\n\t\tvar n = arguments.length;\n\t\tif (!n) return [];\n\t\tvar m = min(arguments, d3_zipLength);\n\n\t\t// eslint-disable-next-line prefer-const\n\t\tvar i = void 0,\n\t\t zips = new Array(m);\n\t\tfor (i = -1; ++i < m;) {\n\t\t\tfor (var j = -1, _zip = zips[i] = new Array(n); ++j < n;) {\n\t\t\t\t_zip[j] = arguments[j][i];\n\t\t\t}\n\t\t\tzips[i] = combine.apply(this, zips[i]);\n\t\t}\n\t\treturn zips;\n\t}\n\tfunction d3_zipLength(d) {\n\t\treturn d.length;\n\t}\n\tzip.combine = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn combine;\n\t\t}\n\t\tcombine = x;\n\t\treturn zip;\n\t};\n\treturn zip;\n}\n","// https://github.com/jonschlinkert/is-equal-shallow/\n\n/*\nThe MIT License (MIT)\n\nCopyright (c) 2015, Jon Schlinkert.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nfunction isDate(date) {\n\treturn Object.prototype.toString.call(date) === \"[object Date]\";\n}\n\nfunction isEqual(val1, val2) {\n\treturn isDate(val1) && isDate(val2) ? val1.getTime() === val2.getTime() : val1 === val2;\n}\n\nexport default function shallowEqual(a, b) {\n\tif (!a && !b) {\n\t\treturn true;\n\t}\n\tif (!a && b || a && !b) {\n\t\treturn false;\n\t}\n\n\tvar numKeysA = 0,\n\t numKeysB = 0,\n\t key = void 0;\n\tfor (key in b) {\n\t\tnumKeysB++;\n\t\tif ( /* !isPrimitive(b[key]) || */b.hasOwnProperty(key) && !a.hasOwnProperty(key) || !isEqual(a[key], b[key])) {\n\t\t\t// console.log(key, a, b);\n\t\t\treturn false;\n\t\t}\n\t}\n\tfor (key in a) {\n\t\tnumKeysA++;\n\t}\n\treturn numKeysA === numKeysB;\n}\n","\n\nimport noop from \"./noop\";\nimport identity from \"./identity\";\nimport { functor } from \"./index\";\n\nexport default function () {\n\n\tvar undefinedValue = undefined,\n\t windowSize = 10,\n\t accumulator = noop,\n\t source = identity,\n\t skipInitial = 0;\n\n\t// eslint-disable-next-line prefer-const\n\tvar mappedSlidingWindow = function mappedSlidingWindow(data) {\n\t\tvar size = functor(windowSize).apply(this, arguments);\n\t\tvar windowData = [];\n\t\tvar accumulatorIdx = 0;\n\t\tvar undef = functor(undefinedValue);\n\t\t// console.log(skipInitial, size, data.length, windowData.length);\n\t\tvar result = [];\n\t\tdata.forEach(function (d, i) {\n\t\t\t// console.log(d, i, windowData.length);\n\t\t\tvar mapped = void 0;\n\t\t\tif (i < skipInitial + size - 1) {\n\t\t\t\tmapped = undef(d, i);\n\t\t\t\tresult.push(mapped);\n\t\t\t\twindowData.push(mapped);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (i >= skipInitial + size) {\n\t\t\t\t// Treat windowData as FIFO rolling buffer\n\t\t\t\twindowData.shift();\n\t\t\t}\n\t\t\twindowData.push(source(d, i));\n\t\t\tmapped = accumulator(windowData, i, accumulatorIdx++);\n\t\t\tresult.push(mapped);\n\t\t\twindowData.pop();\n\t\t\twindowData.push(mapped);\n\t\t\treturn;\n\t\t});\n\t\treturn result;\n\t};\n\n\tmappedSlidingWindow.undefinedValue = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn undefinedValue;\n\t\t}\n\t\tundefinedValue = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.windowSize = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn windowSize;\n\t\t}\n\t\twindowSize = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.accumulator = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn accumulator;\n\t\t}\n\t\taccumulator = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.skipInitial = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn skipInitial;\n\t\t}\n\t\tskipInitial = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\tmappedSlidingWindow.source = function (x) {\n\t\tif (!arguments.length) {\n\t\t\treturn source;\n\t\t}\n\t\tsource = x;\n\t\treturn mappedSlidingWindow;\n\t};\n\n\treturn mappedSlidingWindow;\n}\n","\nimport React from \"react\";\nimport shallowEqual from \"./shallowEqual\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nvar PureComponent = function (_React$Component) {\n\t_inherits(PureComponent, _React$Component);\n\n\tfunction PureComponent() {\n\t\t_classCallCheck(this, PureComponent);\n\n\t\treturn _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).apply(this, arguments));\n\t}\n\n\t_createClass(PureComponent, [{\n\t\tkey: \"shouldComponentUpdate\",\n\t\tvalue: function shouldComponentUpdate(nextProps, nextState, nextContext) {\n\t\t\treturn !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState) || !shallowEqual(this.context, nextContext);\n\t\t}\n\t}]);\n\n\treturn PureComponent;\n}(React.Component);\n\nexport default PureComponent;\n","import { scaleOrdinal, schemeCategory10 } from \"d3-scale\";\nimport { bisector } from \"d3-array\";\nimport noop from \"./noop\";\nimport identity from \"./identity\";\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\nexport { default as rebind } from \"./rebind\";\nexport { default as zipper } from \"./zipper\";\nexport { default as merge } from \"./merge\";\nexport { default as slidingWindow } from \"./slidingWindow\";\nexport { default as identity } from \"./identity\";\nexport { default as noop } from \"./noop\";\nexport { default as shallowEqual } from \"./shallowEqual\";\nexport { default as mappedSlidingWindow } from \"./mappedSlidingWindow\";\nexport { default as accumulatingWindow } from \"./accumulatingWindow\";\nexport { default as PureComponent } from \"./PureComponent\";\n\nexport * from \"./barWidth\";\nexport * from \"./strokeDasharray\";\n\nexport function getLogger(prefix) {\n\tvar logger = noop;\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tlogger = require(\"debug\")(\"react-stockcharts:\" + prefix);\n\t}\n\treturn logger;\n}\n\nexport function sign(x) {\n\treturn (x > 0) - (x < 0);\n}\n\nexport var yes = function yes() {\n\treturn true;\n};\n\nexport function path() {\n\tvar loc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n\tvar key = Array.isArray(loc) ? loc : [loc];\n\tvar length = key.length;\n\n\treturn function (obj, defaultValue) {\n\t\tif (length === 0) return isDefined(obj) ? obj : defaultValue;\n\n\t\tvar index = 0;\n\t\twhile (obj != null && index < length) {\n\t\t\tobj = obj[key[index++]];\n\t\t}\n\t\treturn index === length ? obj : defaultValue;\n\t};\n}\n\nexport function functor(v) {\n\treturn typeof v === \"function\" ? v : function () {\n\t\treturn v;\n\t};\n}\n\nexport function createVerticalLinearGradient(stops) {\n\treturn function (moreProps, ctx) {\n\t\tvar height = moreProps.chartConfig.height;\n\n\n\t\tvar grd = ctx.createLinearGradient(0, height, 0, 0);\n\t\tstops.forEach(function (each) {\n\t\t\tgrd.addColorStop(each.stop, each.color);\n\t\t});\n\n\t\treturn grd;\n\t};\n}\n\nexport function getClosestItemIndexes2(array, value, accessor) {\n\tvar left = bisector(accessor).left(array, value);\n\tleft = Math.max(left - 1, 0);\n\tvar right = Math.min(left + 1, array.length - 1);\n\n\tvar item = accessor(array[left]);\n\tif (item >= value && item <= value) right = left;\n\n\treturn { left: left, right: right };\n}\n\nexport function degrees(radians) {\n\treturn radians * 180 / Math.PI;\n}\n\nexport function radians(degrees) {\n\treturn degrees * Math.PI / 180;\n}\n\nexport function getClosestValue(inputValue, currentValue) {\n\tvar values = isArray(inputValue) ? inputValue : [inputValue];\n\n\tvar diff = values.map(function (each) {\n\t\treturn each - currentValue;\n\t}).reduce(function (diff1, diff2) {\n\t\treturn Math.abs(diff1) < Math.abs(diff2) ? diff1 : diff2;\n\t});\n\treturn currentValue + diff;\n}\n\nexport function find(list, predicate) {\n\tvar context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this;\n\n\tfor (var i = 0; i < list.length; ++i) {\n\t\tif (predicate.call(context, list[i], i, list)) {\n\t\t\treturn list[i];\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function d3Window(node) {\n\tvar d3win = node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n\treturn d3win;\n}\n\nexport var MOUSEENTER = \"mouseenter.interaction\";\nexport var MOUSELEAVE = \"mouseleave.interaction\";\nexport var MOUSEMOVE = \"mousemove.pan\";\nexport var MOUSEUP = \"mouseup.pan\";\nexport var TOUCHMOVE = \"touchmove.pan\";\nexport var TOUCHEND = \"touchend.pan touchcancel.pan\";\n\nexport function getTouchProps(touch) {\n\tif (!touch) return {};\n\treturn {\n\t\tpageX: touch.pageX,\n\t\tpageY: touch.pageY,\n\t\tclientX: touch.clientX,\n\t\tclientY: touch.clientY\n\t};\n}\n\nexport function getClosestItemIndexes(array, value, accessor, log) {\n\tvar lo = 0,\n\t hi = array.length - 1;\n\twhile (hi - lo > 1) {\n\t\tvar mid = Math.round((lo + hi) / 2);\n\t\tif (accessor(array[mid]) <= value) {\n\t\t\tlo = mid;\n\t\t} else {\n\t\t\thi = mid;\n\t\t}\n\t}\n\t// for Date object === does not work, so using the <= in combination with >=\n\t// the same code works for both dates and numbers\n\tif (accessor(array[lo]).valueOf() === value.valueOf()) hi = lo;\n\tif (accessor(array[hi]).valueOf() === value.valueOf()) lo = hi;\n\n\tif (accessor(array[lo]) < value && accessor(array[hi]) < value) lo = hi;\n\tif (accessor(array[lo]) > value && accessor(array[hi]) > value) hi = lo;\n\n\tif (log) {}\n\t// console.log(lo, accessor(array[lo]), value, accessor(array[hi]), hi);\n\t// console.log(accessor(array[lo]), lo, value, accessor(array[lo]) >= value);\n\t// console.log(value, hi, accessor(array[hi]), accessor(array[lo]) <= value);\n\n\t// var left = value > accessor(array[lo]) ? lo : lo;\n\t// var right = gte(value, accessor(array[hi])) ? Math.min(hi + 1, array.length - 1) : hi;\n\n\t// console.log(value, accessor(array[left]), accessor(array[right]));\n\treturn { left: lo, right: hi };\n}\n\nexport function getClosestItem(array, value, accessor, log) {\n\tvar _getClosestItemIndexe = getClosestItemIndexes(array, value, accessor, log),\n\t left = _getClosestItemIndexe.left,\n\t right = _getClosestItemIndexe.right;\n\n\tif (left === right) {\n\t\treturn array[left];\n\t}\n\n\tvar closest = Math.abs(accessor(array[left]) - value) < Math.abs(accessor(array[right]) - value) ? array[left] : array[right];\n\tif (log) {\n\t\tconsole.log(array[left], array[right], closest, left, right);\n\t}\n\treturn closest;\n}\n\nexport var overlayColors = scaleOrdinal(schemeCategory10);\n\nexport function head(array, accessor) {\n\tif (accessor && array) {\n\t\tvar value = void 0;\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tvalue = array[i];\n\t\t\tif (isDefined(accessor(value))) return value;\n\t\t}\n\t\treturn undefined;\n\t}\n\treturn array ? array[0] : undefined;\n}\n\nexport function tail(array, accessor) {\n\tif (accessor && array) {\n\t\treturn array.map(accessor).slice(1);\n\t}\n\treturn array ? array.slice(1) : undefined;\n}\n\nexport var first = head;\n\nexport function last(array, accessor) {\n\tif (accessor && array) {\n\t\tvar value = void 0;\n\t\tfor (var i = array.length - 1; i >= 0; i--) {\n\t\t\tvalue = array[i];\n\t\t\tif (isDefined(accessor(value))) return value;\n\t\t}\n\t\treturn undefined;\n\t}\n\tvar length = array ? array.length : 0;\n\treturn length ? array[length - 1] : undefined;\n}\n\nexport function isDefined(d) {\n\treturn d !== null && typeof d != \"undefined\";\n}\n\nexport function isNotDefined(d) {\n\treturn !isDefined(d);\n}\n\nexport function isObject(d) {\n\treturn isDefined(d) && (typeof d === \"undefined\" ? \"undefined\" : _typeof(d)) === \"object\" && !Array.isArray(d);\n}\n\nexport var isArray = Array.isArray;\n\nexport function touchPosition(touch, e) {\n\tvar container = e.target,\n\t rect = container.getBoundingClientRect(),\n\t x = touch.clientX - rect.left - container.clientLeft,\n\t y = touch.clientY - rect.top - container.clientTop,\n\t xy = [Math.round(x), Math.round(y)];\n\treturn xy;\n}\n\nexport function mousePosition(e, defaultRect) {\n\tvar container = e.currentTarget;\n\tvar rect = defaultRect || container.getBoundingClientRect(),\n\t x = e.clientX - rect.left - container.clientLeft,\n\t y = e.clientY - rect.top - container.clientTop,\n\t xy = [Math.round(x), Math.round(y)];\n\treturn xy;\n}\n\nexport function clearCanvas(canvasList, ratio) {\n\tcanvasList.forEach(function (each) {\n\t\teach.setTransform(1, 0, 0, 1, 0, 0);\n\t\teach.clearRect(-1, -1, each.canvas.width + 2, each.canvas.height + 2);\n\t\teach.scale(ratio, ratio);\n\t});\n}\n\nexport function capitalizeFirst(str) {\n\treturn str.charAt(0).toUpperCase() + str.substring(1);\n}\n\nexport function hexToRGBA(inputHex, opacity) {\n\tvar hex = inputHex.replace(\"#\", \"\");\n\tif (inputHex.indexOf(\"#\") > -1 && (hex.length === 3 || hex.length === 6)) {\n\n\t\tvar multiplier = hex.length === 3 ? 1 : 2;\n\n\t\tvar r = parseInt(hex.substring(0, 1 * multiplier), 16);\n\t\tvar g = parseInt(hex.substring(1 * multiplier, 2 * multiplier), 16);\n\t\tvar b = parseInt(hex.substring(2 * multiplier, 3 * multiplier), 16);\n\n\t\tvar result = \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + opacity + \")\";\n\n\t\treturn result;\n\t}\n\treturn inputHex;\n}\n\nexport function toObject(array) {\n\tvar iteratee = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n\treturn array.reduce(function (returnObj, a) {\n\t\tvar _iteratee = iteratee(a),\n\t\t _iteratee2 = _slicedToArray(_iteratee, 2),\n\t\t key = _iteratee2[0],\n\t\t value = _iteratee2[1];\n\n\t\treturn _extends({}, returnObj, _defineProperty({}, key, value));\n\t}, {});\n}\n\n// copied from https://github.com/lodash/lodash/blob/master/mapValue.js\nexport function mapValue(object, iteratee) {\n\tobject = Object(object);\n\t// eslint-disable-next-line prefer-const\n\tvar result = {};\n\n\tObject.keys(object).forEach(function (key) {\n\t\tvar mappedValue = iteratee(object[key], key, object);\n\n\t\tif (isDefined(mappedValue)) {\n\t\t\tresult[key] = mappedValue;\n\t\t}\n\t});\n\treturn result;\n}\n\n// copied from https://github.com/lodash/lodash/blob/master/mapObject.js\nexport function mapObject() {\n\tvar object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\tvar iteratee = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n\tvar props = Object.keys(object);\n\n\t// eslint-disable-next-line prefer-const\n\tvar result = new Array(props.length);\n\n\tprops.forEach(function (key, index) {\n\t\tresult[index] = iteratee(object[key], key, object);\n\t});\n\treturn result;\n}\n\nexport function replaceAtIndex(array, index, value) {\n\tif (isDefined(array) && array.length > index) {\n\t\treturn array.slice(0, index).concat(value).concat(array.slice(index + 1));\n\t}\n\treturn array;\n}\n\n// copied from https://github.com/lodash/lodash/blob/master/forOwn.js\nexport function forOwn(obj, iteratee) {\n\tvar object = Object(obj);\n\tObject.keys(object).forEach(function (key) {\n\t\treturn iteratee(object[key], key, object);\n\t});\n}\n","export var strokeDashTypes = [\"Solid\", \"ShortDash\", \"ShortDash2\", \"ShortDot\", \"ShortDashDot\", \"ShortDashDotDot\", \"Dot\", \"Dash\", \"LongDash\", \"DashDot\", \"LongDashDot\", \"LongDashDotDot\"];\n\nexport function getStrokeDasharrayCanvas(type) {\n\tvar a = getStrokeDasharray(type).split(\",\");\n\n\tif (a.length === 1) return [];\n\n\treturn a.map(function (d) {\n\t\treturn Number(d);\n\t});\n}\nexport var getStrokeDasharray = function getStrokeDasharray(type) {\n\tswitch (type) {\n\t\tdefault:\n\t\tcase \"Solid\":\n\t\t\treturn \"none\";\n\t\tcase \"ShortDash\":\n\t\t\treturn \"6, 2\";\n\t\tcase \"ShortDash2\":\n\t\t\treturn \"6, 3\";\n\t\tcase \"ShortDot\":\n\t\t\treturn \"2, 2\";\n\t\tcase \"ShortDashDot\":\n\t\t\treturn \"6, 2, 2, 2\";\n\t\tcase \"ShortDashDotDot\":\n\t\t\treturn \"6, 2, 2, 2, 2, 2\";\n\t\tcase \"Dot\":\n\t\t\treturn \"2, 6\";\n\t\tcase \"Dash\":\n\t\t\treturn \"8, 6\";\n\t\tcase \"LongDash\":\n\t\t\treturn \"16, 6\";\n\t\tcase \"DashDot\":\n\t\t\treturn \"8, 6, 2, 6\";\n\t\tcase \"LongDashDot\":\n\t\t\treturn \"16, 6, 2, 6\";\n\t\tcase \"LongDashDotDot\":\n\t\t\treturn \"16, 6, 2, 6, 2, 6\";\n\t}\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { scaleLinear } from \"d3-scale\";\n\nimport PureComponent from \"./utils/PureComponent\";\nimport { isNotDefined, noop, find } from \"./utils\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nvar Chart = function (_PureComponent) {\n\t_inherits(Chart, _PureComponent);\n\n\tfunction Chart(props, context) {\n\t\t_classCallCheck(this, Chart);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Chart.__proto__ || Object.getPrototypeOf(Chart)).call(this, props, context));\n\n\t\t_this.yScale = _this.yScale.bind(_this);\n\t\t_this.listener = _this.listener.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(Chart, [{\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tvar id = this.props.id;\n\t\t\tvar subscribe = this.context.subscribe;\n\n\t\t\tsubscribe(\"chart_\" + id, {\n\t\t\t\tlistener: this.listener\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\tvar id = this.props.id;\n\t\t\tvar unsubscribe = this.context.unsubscribe;\n\n\t\t\tunsubscribe(\"chart_\" + id);\n\t\t}\n\t}, {\n\t\tkey: \"listener\",\n\t\tvalue: function listener(type, moreProps, state, e) {\n\t\t\tvar _props = this.props,\n\t\t\t id = _props.id,\n\t\t\t onContextMenu = _props.onContextMenu;\n\n\n\t\t\tif (type === \"contextmenu\") {\n\t\t\t\tvar currentCharts = moreProps.currentCharts;\n\n\t\t\t\tif (currentCharts.indexOf(id) > -1) {\n\t\t\t\t\tonContextMenu(moreProps, e);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"yScale\",\n\t\tvalue: function yScale() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar chartConfig = find(this.context.chartConfig, function (each) {\n\t\t\t\treturn each.id === _this2.props.id;\n\t\t\t});\n\t\t\treturn chartConfig.yScale.copy();\n\t\t}\n\t}, {\n\t\tkey: \"getChildContext\",\n\t\tvalue: function getChildContext() {\n\t\t\tvar chartId = this.props.id;\n\n\t\t\tvar chartConfig = find(this.context.chartConfig, function (each) {\n\t\t\t\treturn each.id === chartId;\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tchartId: chartId,\n\t\t\t\tchartConfig: chartConfig\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar _find = find(this.context.chartConfig, function (each) {\n\t\t\t\treturn each.id === _this3.props.id;\n\t\t\t}),\n\t\t\t origin = _find.origin;\n\n\t\t\tvar _origin = _slicedToArray(origin, 2),\n\t\t\t x = _origin[0],\n y = _origin[1];\n \n\t\t\treturn React.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ transform: \"translate(\" + x + \", \" + y + \")\" },\n\t\t\t\tthis.props.children\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn Chart;\n}(PureComponent);\n\nChart.propTypes = {\n\theight: PropTypes.number,\n\torigin: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n\tid: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\tyExtents: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n\tyExtentsCalculator: function yExtentsCalculator(props, propName, componentName) {\n\t\tif (isNotDefined(props.yExtents) && typeof props.yExtentsCalculator !== \"function\") return new Error(\"yExtents or yExtentsCalculator must\" + (\" be present on \" + componentName + \". Validation failed.\"));\n\t},\n\tonContextMenu: PropTypes.func,\n\tyScale: PropTypes.func,\n\n\tflipYScale: PropTypes.bool,\n\tpadding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n\t\ttop: PropTypes.number,\n\t\tbottom: PropTypes.number\n\t})]),\n\tchildren: PropTypes.node\n};\n\nChart.defaultProps = {\n\tid: 0,\n\torigin: [0, 0],\n\tpadding: 0,\n\tyScale: scaleLinear(),\n\tflipYScale: false,\n\tyPan: true,\n\tyPanEnabled: false,\n\tonContextMenu: noop\n};\n\nChart.contextTypes = {\n\tchartConfig: PropTypes.array,\n\tsubscribe: PropTypes.func.isRequired,\n\tunsubscribe: PropTypes.func.isRequired\n};\n\nChart.childContextTypes = {\n\tchartConfig: PropTypes.object.isRequired,\n\tchartId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired\n};\n\nexport default Chart;\n","import React from \"react\";\nimport { extent } from \"d3-array\";\nimport { set } from \"d3-collection\";\nimport flattenDeep from \"lodash.flattendeep\";\n\nimport Chart from \"../Chart\";\n\nimport { last, isObject, getClosestItem, zipper, isDefined, isNotDefined, functor, mapObject, find, shallowEqual } from \"./index\";\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n\nexport function getChartOrigin(origin, contextWidth, contextHeight) {\n\tvar originCoordinates = typeof origin === \"function\" ? origin(contextWidth, contextHeight) : origin;\n\treturn originCoordinates;\n}\n\nexport function getDimensions(_ref, chartProps) {\n\tvar width = _ref.width,\n\t height = _ref.height;\n\n\n\tvar chartHeight = chartProps.height || height;\n\n\treturn {\n\t\tavailableHeight: height,\n\t\twidth: width,\n\t\theight: chartHeight\n\t};\n}\n\nfunction values(func) {\n\treturn function (d) {\n\t\tvar obj = func(d);\n\t\tif (isObject(obj)) {\n\t\t\treturn mapObject(obj);\n\t\t}\n\t\treturn obj;\n\t};\n}\n\nfunction isArraySize2AndNumber(yExtentsProp) {\n\tif (Array.isArray(yExtentsProp) && yExtentsProp.length === 2) {\n\t\tvar _yExtentsProp = _slicedToArray(yExtentsProp, 2),\n\t\t a = _yExtentsProp[0],\n\t\t b = _yExtentsProp[1];\n\n\t\treturn typeof a == \"number\" && typeof b == \"number\";\n\t}\n\treturn false;\n}\n\nexport function getNewChartConfig(innerDimension, children) {\n\tvar existingChartConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n\treturn React.Children.map(children, function (each) {\n\t\tif (each && each.type.toString() === Chart.toString()) {\n\t\t\tvar chartProps = _extends({}, Chart.defaultProps, each.props);\n\t\t\tvar id = chartProps.id,\n\t\t\t origin = chartProps.origin,\n\t\t\t padding = chartProps.padding,\n\t\t\t yExtentsProp = chartProps.yExtents,\n\t\t\t yScaleProp = chartProps.yScale,\n\t\t\t flipYScale = chartProps.flipYScale,\n\t\t\t yExtentsCalculator = chartProps.yExtentsCalculator;\n\n\n\t\t\tvar yScale = yScaleProp.copy();\n\n\t\t\tvar _getDimensions = getDimensions(innerDimension, chartProps),\n\t\t\t width = _getDimensions.width,\n\t\t\t height = _getDimensions.height,\n\t\t\t availableHeight = _getDimensions.availableHeight;\n\n\t\t\tvar yPan = chartProps.yPan;\n\t\t\tvar yPanEnabled = chartProps.yPanEnabled;\n\t\t\t// var { yMousePointerRectWidth: rectWidth, yMousePointerRectHeight: rectHeight, yMousePointerArrowWidth: arrowWidth } = each.props;\n\t\t\t// var mouseCoordinates = { at, yDisplayFormat, rectHeight, rectWidth, arrowWidth };\n\n\t\t\tvar yExtents = isDefined(yExtentsProp) ? (Array.isArray(yExtentsProp) ? yExtentsProp : [yExtentsProp]).map(functor) : undefined;\n\n\t\t\tvar prevChartConfig = find(existingChartConfig, function (d) {\n\t\t\t\treturn d.id === id;\n\t\t\t});\n\n\t\t\tif (isArraySize2AndNumber(yExtentsProp)) {\n\t\t\t\tif (isDefined(prevChartConfig) && prevChartConfig.yPan && prevChartConfig.yPanEnabled && yPan && yPanEnabled && shallowEqual(prevChartConfig.originalYExtentsProp, yExtentsProp)) {\n\t\t\t\t\t// console.log(prevChartConfig.originalYExtentsProp, yExtentsProp)\n\t\t\t\t\t// console.log(prevChartConfig.yScale.domain())\n\t\t\t\t\tyScale.domain(prevChartConfig.yScale.domain());\n\t\t\t\t} else {\n\t\t\t\t\tvar _yExtentsProp2 = _slicedToArray(yExtentsProp, 2),\n\t\t\t\t\t a = _yExtentsProp2[0],\n\t\t\t\t\t b = _yExtentsProp2[1];\n\n\t\t\t\t\tyScale.domain([a, b]);\n\t\t\t\t}\n\t\t\t} else if (isDefined(prevChartConfig) && prevChartConfig.yPanEnabled) {\n\t\t\t\tif (isArraySize2AndNumber(prevChartConfig.originalYExtentsProp)) {\n\t\t\t\t\t// do nothing\n\t\t\t\t} else {\n\t\t\t\t\tyScale.domain(prevChartConfig.yScale.domain());\n\t\t\t\t\tyPanEnabled = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: id,\n\t\t\t\torigin: functor(origin)(width, availableHeight),\n\t\t\t\tpadding: padding,\n\t\t\t\toriginalYExtentsProp: yExtentsProp,\n\t\t\t\tyExtents: yExtents,\n\t\t\t\tyExtentsCalculator: yExtentsCalculator,\n\t\t\t\tflipYScale: flipYScale,\n\t\t\t\t// yScale: setRange(yScale.copy(), height, padding, flipYScale),\n\t\t\t\tyScale: yScale,\n\t\t\t\tyPan: yPan,\n\t\t\t\tyPanEnabled: yPanEnabled,\n\t\t\t\t// mouseCoordinates,\n\t\t\t\twidth: width,\n\t\t\t\theight: height\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}).filter(function (each) {\n\t\treturn isDefined(each);\n\t});\n}\nexport function getCurrentCharts(chartConfig, mouseXY) {\n\tvar currentCharts = chartConfig.filter(function (eachConfig) {\n\t\tvar top = eachConfig.origin[1];\n\t\tvar bottom = top + eachConfig.height;\n\t\treturn mouseXY[1] > top && mouseXY[1] < bottom;\n\t}).map(function (config) {\n\t\treturn config.id;\n\t});\n\n\treturn currentCharts;\n}\n\nfunction setRange(scale, height, padding, flipYScale) {\n\tif (scale.rangeRoundPoints || isNotDefined(scale.invert)) {\n\t\tif (isNaN(padding)) throw new Error(\"padding has to be a number for ordinal scale\");\n\t\tif (scale.rangeRoundPoints) scale.rangeRoundPoints(flipYScale ? [0, height] : [height, 0], padding);\n\t\tif (scale.rangeRound) scale.range(flipYScale ? [0, height] : [height, 0]).padding(padding);\n\t} else {\n\t\tvar _ref2 = isNaN(padding) ? padding : { top: padding, bottom: padding },\n\t\t top = _ref2.top,\n\t\t bottom = _ref2.bottom;\n\n\t\tscale.range(flipYScale ? [top, height - bottom] : [height - bottom, top]);\n\t}\n\treturn scale;\n}\n\nfunction yDomainFromYExtents(yExtents, yScale, plotData) {\n\tvar yValues = yExtents.map(function (eachExtent) {\n\t\treturn plotData.map(values(eachExtent));\n\t});\n\n\tvar allYValues = flattenDeep(yValues);\n\t// console.log(allYValues)\n\tvar realYDomain = yScale.invert ? extent(allYValues) : set(allYValues).values();\n\n\treturn realYDomain;\n}\n\nexport function getChartConfigWithUpdatedYScales(chartConfig, _ref3, xDomain, dy, chartsToPan) {\n\tvar plotData = _ref3.plotData,\n\t xAccessor = _ref3.xAccessor,\n\t displayXAccessor = _ref3.displayXAccessor,\n\t fullData = _ref3.fullData;\n\n\tvar yDomains = chartConfig.map(function (_ref4) {\n\t\tvar yExtentsCalculator = _ref4.yExtentsCalculator,\n\t\t yExtents = _ref4.yExtents,\n\t\t yScale = _ref4.yScale;\n\n\n\t\tvar realYDomain = isDefined(yExtentsCalculator) ? yExtentsCalculator({ plotData: plotData, xDomain: xDomain, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }) : yDomainFromYExtents(yExtents, yScale, plotData);\n\n\t\t// console.log(\"yScale.domain() ->\", yScale.domain())\n\n\t\tvar yDomainDY = isDefined(dy) ? yScale.range().map(function (each) {\n\t\t\treturn each - dy;\n\t\t}).map(yScale.invert) : yScale.domain();\n\t\treturn {\n\t\t\trealYDomain: realYDomain,\n\t\t\tyDomainDY: yDomainDY,\n\t\t\tprevYDomain: yScale.domain()\n\t\t};\n\t});\n\n\tvar combine = zipper().combine(function (config, _ref5) {\n\t\tvar realYDomain = _ref5.realYDomain,\n\t\t yDomainDY = _ref5.yDomainDY,\n\t\t prevYDomain = _ref5.prevYDomain;\n\t\tvar id = config.id,\n\t\t padding = config.padding,\n\t\t height = config.height,\n\t\t yScale = config.yScale,\n\t\t yPan = config.yPan,\n\t\t flipYScale = config.flipYScale,\n\t\t _config$yPanEnabled = config.yPanEnabled,\n\t\t yPanEnabled = _config$yPanEnabled === undefined ? false : _config$yPanEnabled;\n\n\n\t\tvar another = isDefined(chartsToPan) ? chartsToPan.indexOf(id) > -1 : true;\n\t\tvar domain = yPan && yPanEnabled ? another ? yDomainDY : prevYDomain : realYDomain;\n\n\t\t// console.log(id, yPan, yPanEnabled, another);\n\t\t// console.log(domain, realYDomain, prevYDomain);\n\t\tvar newYScale = setRange(yScale.copy().domain(domain), height, padding, flipYScale);\n\t\treturn _extends({}, config, {\n\t\t\tyScale: newYScale,\n\t\t\trealYDomain: realYDomain\n\t\t});\n\t\t// return { ...config, yScale: yScale.copy().domain(domain).range([height - padding, padding]) };\n\t});\n\n\tvar updatedChartConfig = combine(chartConfig, yDomains);\n\t// console.error(yDomains, dy, chartsToPan, updatedChartConfig.map(d => d.yScale.domain()));\n\t// console.log(updatedChartConfig.map(d => ({ id: d.id, domain: d.yScale.domain() })))\n\n\treturn updatedChartConfig;\n}\n\nexport function getCurrentItem(xScale, xAccessor, mouseXY, plotData) {\n\tvar xValue = void 0,\n\t item = void 0;\n\tif (xScale.invert) {\n\t\txValue = xScale.invert(mouseXY[0]);\n\t\titem = getClosestItem(plotData, xValue, xAccessor);\n\t} else {\n\t\tvar d = xScale.range().map(function (d, idx) {\n\t\t\treturn { x: Math.abs(d - mouseXY[0]), idx: idx };\n\t\t}).reduce(function (a, b) {\n\t\t\treturn a.x < b.x ? a : b;\n\t\t});\n\t\titem = isDefined(d) ? plotData[d.idx] : plotData[0];\n\t\t// console.log(d, item);\n\t}\n\treturn item;\n}\n\nexport function getXValue(xScale, xAccessor, mouseXY, plotData) {\n\n\tvar xValue = void 0,\n\t item = void 0;\n\tif (xScale.invert) {\n\t\txValue = xScale.invert(mouseXY[0]);\n\t\tif (xValue > xAccessor(last(plotData)) && xScale.value) {\n\t\t\treturn Math.round(xValue);\n\t\t} else {\n\t\t\titem = getClosestItem(plotData, xValue, xAccessor);\n\t\t}\n\t} else {\n\t\tvar d = xScale.range().map(function (d, idx) {\n\t\t\treturn { x: Math.abs(d - mouseXY[0]), idx: idx };\n\t\t}).reduce(function (a, b) {\n\t\t\treturn a.x < b.x ? a : b;\n\t\t});\n\t\titem = isDefined(d) ? plotData[d.idx] : plotData[0];\n\t\t// console.log(d, item);\n\t}\n\treturn xAccessor(item);\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { select, event as d3Event, mouse, touches } from \"d3-selection\";\n\nimport { isDefined, mousePosition, touchPosition, getTouchProps, d3Window, MOUSEMOVE, MOUSEUP, MOUSEENTER, MOUSELEAVE, TOUCHMOVE, TOUCHEND, noop } from \"./utils\";\nimport { getCurrentCharts } from \"./utils/ChartDataUtil\";\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n// import { clearTimeout, setTimeout } from \"timers\";\n\nvar EventCapture = function (_Component) {\n\t_inherits(EventCapture, _Component);\n\n\tfunction EventCapture(props) {\n\t\t_classCallCheck(this, EventCapture);\n\n\t\tvar _this = _possibleConstructorReturn(this, (EventCapture.__proto__ || Object.getPrototypeOf(EventCapture)).call(this, props));\n\n\t\t_this.handleEnter = _this.handleEnter.bind(_this);\n\t\t_this.handleLeave = _this.handleLeave.bind(_this);\n\t\t_this.handleWheel = _this.handleWheel.bind(_this);\n\t\t_this.handleMouseMove = _this.handleMouseMove.bind(_this);\n\t\t_this.handleMouseDown = _this.handleMouseDown.bind(_this);\n\t\t_this.handlePanEnd = _this.handlePanEnd.bind(_this);\n\t\t_this.handlePan = _this.handlePan.bind(_this);\n\t\t_this.handleTouchStart = _this.handleTouchStart.bind(_this);\n\t\t_this.handleTouchMove = _this.handleTouchMove.bind(_this);\n\t\t_this.handlePinchZoom = _this.handlePinchZoom.bind(_this);\n\t\t_this.handlePinchZoomEnd = _this.handlePinchZoomEnd.bind(_this);\n\n\t\t_this.handleClick = _this.handleClick.bind(_this);\n\n\t\t_this.handleRightClick = _this.handleRightClick.bind(_this);\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\t\t_this.handleDragEnd = _this.handleDragEnd.bind(_this);\n\n\t\t_this.shouldPan = _this.shouldPan.bind(_this);\n\t\t_this.canPan = _this.canPan.bind(_this);\n\n\t\t_this.setCursorClass = _this.setCursorClass.bind(_this);\n\t\t_this.saveNode = _this.saveNode.bind(_this);\n\n\t\t_this.mouseInside = false;\n\n\t\t_this.mouseInteraction = true;\n\t\t_this.state = {\n\t\t\tpanInProgress: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(EventCapture, [{\n\t\tkey: \"saveNode\",\n\t\tvalue: function saveNode(node) {\n\t\t\tthis.node = node;\n\t\t}\n\t}, {\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tthis.focus = this.props.focus;\n\t\t}\n\t}, {\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tif (this.node) {\n\t\t\t\tselect(this.node).on(MOUSEENTER, this.handleEnter).on(MOUSELEAVE, this.handleLeave);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate() {\n\t\t\tthis.componentDidMount();\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\tif (this.node) {\n\t\t\t\tselect(this.node).on(MOUSEENTER, null).on(MOUSELEAVE, null);\n\t\t\t\tvar win = d3Window(this.node);\n\t\t\t\tselect(win).on(MOUSEMOVE, null);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleEnter\",\n\t\tvalue: function handleEnter() {\n\t\t\tvar e = d3Event;\n\n\t\t\tvar onMouseEnter = this.props.onMouseEnter;\n\n\t\t\tthis.mouseInside = true;\n\t\t\tif (!this.state.panInProgress && !this.state.dragInProgress) {\n\t\t\t\tvar win = d3Window(this.node);\n\t\t\t\tselect(win).on(MOUSEMOVE, this.handleMouseMove);\n\t\t\t}\n\t\t\tonMouseEnter(e);\n\t\t}\n\t}, {\n\t\tkey: \"handleLeave\",\n\t\tvalue: function handleLeave(e) {\n\t\t\tvar onMouseLeave = this.props.onMouseLeave;\n\n\t\t\tthis.mouseInside = false;\n\t\t\tif (!this.state.panInProgress && !this.state.dragInProgress) {\n\t\t\t\tvar win = d3Window(this.node);\n\t\t\t\tselect(win).on(MOUSEMOVE, null);\n\t\t\t}\n\t\t\tonMouseLeave(e);\n\t\t}\n\t}, {\n\t\tkey: \"handleWheel\",\n\t\tvalue: function handleWheel(e) {\n\t\t\tvar _props = this.props,\n\t\t\t zoom = _props.zoom,\n\t\t\t onZoom = _props.onZoom;\n\t\t\tvar panInProgress = this.state.panInProgress;\n\n\n\t\t\tvar yZoom = Math.abs(e.deltaY) > Math.abs(e.deltaX) && Math.abs(e.deltaY) > 0;\n\t\t\t// const xPan = Math.abs(e.deltaY) < Math.abs(e.deltaX) && Math.abs(e.deltaX) > 0;\n\t\t\tvar mouseXY = mousePosition(e);\n\t\t\te.preventDefault();\n\n\t\t\tif (zoom && this.focus && yZoom && !panInProgress) {\n\t\t\t\tvar zoomDir = e.deltaY > 0 ? 1 : -1;\n\n\t\t\t\tonZoom(zoomDir, mouseXY, e);\n\t\t\t} else if (this.focus) {\n\t\t\t\tif (this.shouldPan()) {\n\t\t\t\t\t// console.log(\"Do pan now...\")\n\t\t\t\t\t// pan already in progress\n\t\t\t\t\tvar _state$panStart = this.state.panStart,\n\t\t\t\t\t panStartXScale = _state$panStart.panStartXScale,\n\t\t\t\t\t chartsToPan = _state$panStart.chartsToPan;\n\n\t\t\t\t\tthis.lastNewPos = mouseXY;\n\t\t\t\t\tthis.panHappened = true;\n\n\t\t\t\t\tthis.dx += e.deltaX;\n\t\t\t\t\tthis.dy += e.deltaY;\n\t\t\t\t\tvar dxdy = { dx: this.dx, dy: this.dy };\n\n\t\t\t\t\tthis.props.onPan(mouseXY, panStartXScale, dxdy, chartsToPan, e);\n\t\t\t\t} else {\n\t\t\t\t\t// console.log(\"Pan start...\")\n\t\t\t\t\t// pan start\n\n\t\t\t\t\tvar _props2 = this.props,\n\t\t\t\t\t xScale = _props2.xScale,\n\t\t\t\t\t chartConfig = _props2.chartConfig;\n\t\t\t\t\tvar currentCharts = getCurrentCharts(chartConfig, mouseXY);\n\n\t\t\t\t\tthis.dx = 0;\n\t\t\t\t\tthis.dy = 0;\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tpanInProgress: true,\n\t\t\t\t\t\tpanStart: {\n\t\t\t\t\t\t\tpanStartXScale: xScale,\n\t\t\t\t\t\t\tpanOrigin: mouseXY,\n\t\t\t\t\t\t\tchartsToPan: currentCharts\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.queuePanEnd();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"queuePanEnd\",\n\t\tvalue: function queuePanEnd() {\n\t\t\tvar _this2 = this;\n\n\t\t\tif (isDefined(this.panEndTimeout)) {\n\t\t\t\tclearTimeout(this.panEndTimeout);\n\t\t\t}\n\t\t\tthis.panEndTimeout = setTimeout(function () {\n\t\t\t\t_this2.handlePanEnd();\n\t\t\t}, 100);\n\t\t}\n\t}, {\n\t\tkey: \"handleMouseMove\",\n\t\tvalue: function handleMouseMove() {\n\t\t\tvar e = d3Event;\n\n\t\t\tvar _props3 = this.props,\n\t\t\t onMouseMove = _props3.onMouseMove,\n\t\t\t mouseMove = _props3.mouseMove;\n\n\n\t\t\tif (this.mouseInteraction && mouseMove && !this.state.panInProgress) {\n\n\t\t\t\tvar newPos = mouse(this.node);\n\n\t\t\t\tonMouseMove(newPos, \"mouse\", e);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(e) {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar mouseXY = mousePosition(e);\n\t\t\tvar _props4 = this.props,\n\t\t\t onClick = _props4.onClick,\n\t\t\t onDoubleClick = _props4.onDoubleClick;\n\n\n\t\t\tif (!this.panHappened && !this.dragHappened) {\n\t\t\t\tif (this.clicked) {\n\t\t\t\t\tonDoubleClick(mouseXY, e);\n\t\t\t\t\tthis.clicked = false;\n\t\t\t\t} else {\n\t\t\t\t\tonClick(mouseXY, e);\n\t\t\t\t\tthis.clicked = true;\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tif (_this3.clicked) {\n\t\t\t\t\t\t\t_this3.clicked = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 400);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleRightClick\",\n\t\tvalue: function handleRightClick(e) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\tvar _props5 = this.props,\n\t\t\t onContextMenu = _props5.onContextMenu,\n\t\t\t onPanEnd = _props5.onPanEnd;\n\n\n\t\t\tvar mouseXY = mousePosition(e, this.node.getBoundingClientRect());\n\n\t\t\tif (isDefined(this.state.panStart)) {\n\t\t\t\tvar _state$panStart2 = this.state.panStart,\n\t\t\t\t panStartXScale = _state$panStart2.panStartXScale,\n\t\t\t\t panOrigin = _state$panStart2.panOrigin,\n\t\t\t\t chartsToPan = _state$panStart2.chartsToPan;\n\n\t\t\t\tif (this.panHappened) {\n\t\t\t\t\tonPanEnd(mouseXY, panStartXScale, panOrigin, chartsToPan, e);\n\t\t\t\t}\n\t\t\t\tvar win = d3Window(this.node);\n\t\t\t\tselect(win).on(MOUSEMOVE, null).on(MOUSEUP, null);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tpanInProgress: false,\n\t\t\t\t\tpanStart: null\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tonContextMenu(mouseXY, e);\n\t\t}\n\t}, {\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag() {\n\t\t\tvar e = d3Event;\n\t\t\tif (this.props.onDrag) {\n\t\t\t\tthis.dragHappened = true;\n\t\t\t\tvar mouseXY = mouse(this.node);\n\t\t\t\tthis.props.onDrag({\n\t\t\t\t\tstartPos: this.state.dragStartPosition,\n\t\t\t\t\tmouseXY: mouseXY\n\t\t\t\t}, e);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"cancelDrag\",\n\t\tvalue: function cancelDrag() {\n\t\t\tvar win = d3Window(this.node);\n\t\t\tselect(win).on(MOUSEMOVE, this.mouseInside ? this.handleMouseMove : null).on(MOUSEUP, null);\n\n\t\t\tthis.setState({\n\t\t\t\tdragInProgress: false\n\t\t\t});\n\t\t\tthis.mouseInteraction = true;\n\t\t}\n\t}, {\n\t\tkey: \"handleDragEnd\",\n\t\tvalue: function handleDragEnd() {\n\t\t\tvar e = d3Event;\n\t\t\tvar mouseXY = mouse(this.node);\n\n\t\t\tvar win = d3Window(this.node);\n\t\t\tselect(win).on(MOUSEMOVE, this.mouseInside ? this.handleMouseMove : null).on(MOUSEUP, null);\n\n\t\t\tif (this.dragHappened) {\n\t\t\t\tthis.props.onDragComplete({\n\t\t\t\t\tmouseXY: mouseXY\n\t\t\t\t}, e);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tdragInProgress: false\n\t\t\t});\n\t\t\tthis.mouseInteraction = true;\n\t\t}\n\t}, {\n\t\tkey: \"canPan\",\n\t\tvalue: function canPan() {\n\t\t\tvar getAllPanConditions = this.props.getAllPanConditions;\n\t\t\tvar initialPanEnabled = this.props.pan;\n\n\t\t\tvar _getAllPanConditions$ = getAllPanConditions().reduce(function (returnObj, a) {\n\t\t\t\treturn {\n\t\t\t\t\tdraggable: returnObj.draggable || a.draggable,\n\t\t\t\t\tpanEnabled: returnObj.panEnabled && a.panEnabled\n\t\t\t\t};\n\t\t\t}, {\n\t\t\t\tdraggable: false,\n\t\t\t\tpanEnabled: initialPanEnabled\n\t\t\t}),\n\t\t\t panEnabled = _getAllPanConditions$.panEnabled,\n\t\t\t somethingSelected = _getAllPanConditions$.draggable;\n\n\t\t\treturn {\n\t\t\t\tpanEnabled: panEnabled,\n\t\t\t\tsomethingSelected: somethingSelected\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handleMouseDown\",\n\t\tvalue: function handleMouseDown(e) {\n\t\t\tif (e.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar _props6 = this.props,\n\t\t\t xScale = _props6.xScale,\n\t\t\t chartConfig = _props6.chartConfig,\n\t\t\t onMouseDown = _props6.onMouseDown;\n\n\n\t\t\tthis.panHappened = false;\n\t\t\tthis.dragHappened = false;\n\t\t\tthis.focus = true;\n\n\t\t\tif (!this.state.panInProgress && this.mouseInteraction) {\n\n\t\t\t\tvar mouseXY = mousePosition(e);\n\t\t\t\tvar currentCharts = getCurrentCharts(chartConfig, mouseXY);\n\n\t\t\t\tvar _canPan = this.canPan(),\n\t\t\t\t panEnabled = _canPan.panEnabled,\n\t\t\t\t somethingSelected = _canPan.somethingSelected;\n\n\t\t\t\tvar pan = panEnabled && !somethingSelected;\n\n\t\t\t\tif (pan) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tpanInProgress: pan,\n\t\t\t\t\t\tpanStart: {\n\t\t\t\t\t\t\tpanStartXScale: xScale,\n\t\t\t\t\t\t\tpanOrigin: mouseXY,\n\t\t\t\t\t\t\tchartsToPan: currentCharts\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tvar win = d3Window(this.node);\n\t\t\t\t\tselect(win).on(MOUSEMOVE, this.handlePan).on(MOUSEUP, this.handlePanEnd);\n\t\t\t\t} else if (somethingSelected) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tpanInProgress: false,\n\t\t\t\t\t\tdragInProgress: true,\n\t\t\t\t\t\tpanStart: null,\n\t\t\t\t\t\tdragStartPosition: mouseXY\n\t\t\t\t\t});\n\t\t\t\t\tthis.props.onDragStart({ startPos: mouseXY }, e);\n\t\t\t\t\t// this.mouseInteraction = false;\n\n\t\t\t\t\tvar _win = d3Window(this.node);\n\t\t\t\t\tselect(_win).on(MOUSEMOVE, this.handleDrag).on(MOUSEUP, this.handleDragEnd);\n\t\t\t\t}\n\n\t\t\t\tonMouseDown(mouseXY, currentCharts, e);\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t}\n\t}, {\n\t\tkey: \"shouldPan\",\n\t\tvalue: function shouldPan() {\n\t\t\tvar _props7 = this.props,\n\t\t\t panEnabled = _props7.pan,\n\t\t\t onPan = _props7.onPan;\n\n\t\t\treturn panEnabled && onPan && isDefined(this.state.panStart);\n\t\t}\n\t}, {\n\t\tkey: \"handlePan\",\n\t\tvalue: function handlePan() {\n\t\t\tvar e = d3Event;\n\n\t\t\tif (this.shouldPan()) {\n\t\t\t\tthis.panHappened = true;\n\n\t\t\t\tvar _state$panStart3 = this.state.panStart,\n\t\t\t\t panStartXScale = _state$panStart3.panStartXScale,\n\t\t\t\t panOrigin = _state$panStart3.panOrigin,\n\t\t\t\t chartsToPan = _state$panStart3.chartsToPan;\n\n\n\t\t\t\tvar mouseXY = this.mouseInteraction ? mouse(this.node) : touches(this.node)[0];\n\n\t\t\t\tthis.lastNewPos = mouseXY;\n\t\t\t\tvar dx = mouseXY[0] - panOrigin[0];\n\t\t\t\tvar dy = mouseXY[1] - panOrigin[1];\n\n\t\t\t\tthis.dx = dx;\n\t\t\t\tthis.dy = dy;\n\n\t\t\t\tthis.props.onPan(mouseXY, panStartXScale, { dx: dx, dy: dy }, chartsToPan, e);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handlePanEnd\",\n\t\tvalue: function handlePanEnd() {\n\t\t\tvar e = d3Event;\n\t\t\tvar _props8 = this.props,\n\t\t\t panEnabled = _props8.pan,\n\t\t\t onPanEnd = _props8.onPanEnd;\n\n\n\t\t\tif (isDefined(this.state.panStart)) {\n\t\t\t\tvar _state$panStart4 = this.state.panStart,\n\t\t\t\t panStartXScale = _state$panStart4.panStartXScale,\n\t\t\t\t chartsToPan = _state$panStart4.chartsToPan;\n\n\n\t\t\t\tvar win = d3Window(this.node);\n\t\t\t\tselect(win).on(MOUSEMOVE, this.mouseInside ? this.handleMouseMove : null).on(MOUSEUP, null).on(TOUCHMOVE, null).on(TOUCHEND, null);\n\n\t\t\t\tif (this.panHappened\n\t\t\t\t// && !this.contextMenuClicked\n\t\t\t\t&& panEnabled && onPanEnd) {\n\t\t\t\t\tvar dx = this.dx,\n\t\t\t\t\t dy = this.dy;\n\n\t\t\t\t\t// console.log(dx, dy)\n\n\t\t\t\t\tdelete this.dx;\n\t\t\t\t\tdelete this.dy;\n\t\t\t\t\tonPanEnd(this.lastNewPos, panStartXScale, { dx: dx, dy: dy }, chartsToPan, e);\n\t\t\t\t}\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tpanInProgress: false,\n\t\t\t\t\tpanStart: null\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleTouchMove\",\n\t\tvalue: function handleTouchMove(e) {\n\t\t\tvar onMouseMove = this.props.onMouseMove;\n\n\t\t\tvar touchXY = touchPosition(getTouchProps(e.touches[0]), e);\n\t\t\tonMouseMove(touchXY, \"touch\", e);\n\t\t}\n\t}, {\n\t\tkey: \"handleTouchStart\",\n\t\tvalue: function handleTouchStart(e) {\n\t\t\tthis.mouseInteraction = false;\n\n\t\t\tvar _props9 = this.props,\n\t\t\t panEnabled = _props9.pan,\n\t\t\t chartConfig = _props9.chartConfig,\n\t\t\t onMouseMove = _props9.onMouseMove;\n\t\t\tvar _props10 = this.props,\n\t\t\t xScale = _props10.xScale,\n\t\t\t onPanEnd = _props10.onPanEnd;\n\n\n\t\t\tif (e.touches.length === 1) {\n\n\t\t\t\tthis.panHappened = false;\n\t\t\t\tvar touchXY = touchPosition(getTouchProps(e.touches[0]), e);\n\t\t\t\tonMouseMove(touchXY, \"touch\", e);\n\n\t\t\t\tif (panEnabled) {\n\t\t\t\t\tvar currentCharts = getCurrentCharts(chartConfig, touchXY);\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tpanInProgress: true,\n\t\t\t\t\t\tpanStart: {\n\t\t\t\t\t\t\tpanStartXScale: xScale,\n\t\t\t\t\t\t\tpanOrigin: touchXY,\n\t\t\t\t\t\t\tchartsToPan: currentCharts\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tvar win = d3Window(this.node);\n\t\t\t\t\tselect(win).on(TOUCHMOVE, this.handlePan, false).on(TOUCHEND, this.handlePanEnd, false);\n\t\t\t\t}\n\t\t\t} else if (e.touches.length === 2) {\n\t\t\t\t// pinch zoom begin\n\t\t\t\t// do nothing pinch zoom is handled in handleTouchMove\n\t\t\t\tvar _state = this.state,\n\t\t\t\t panInProgress = _state.panInProgress,\n\t\t\t\t panStart = _state.panStart;\n\n\n\t\t\t\tif (panInProgress && panEnabled && onPanEnd) {\n\t\t\t\t\tvar panStartXScale = panStart.panStartXScale,\n\t\t\t\t\t panOrigin = panStart.panOrigin,\n\t\t\t\t\t chartsToPan = panStart.chartsToPan;\n\n\n\t\t\t\t\tvar _win2 = d3Window(this.node);\n\t\t\t\t\tselect(_win2).on(MOUSEMOVE, this.mouseInside ? this.handleMouseMove : null).on(MOUSEUP, null).on(TOUCHMOVE, this.handlePinchZoom, false).on(TOUCHEND, this.handlePinchZoomEnd, false);\n\n\t\t\t\t\tvar touch1Pos = touchPosition(getTouchProps(e.touches[0]), e);\n\t\t\t\t\tvar touch2Pos = touchPosition(getTouchProps(e.touches[1]), e);\n\n\t\t\t\t\tif (this.panHappened\n\t\t\t\t\t// && !this.contextMenuClicked\n\t\t\t\t\t&& panEnabled && onPanEnd) {\n\n\t\t\t\t\t\tonPanEnd(this.lastNewPos, panStartXScale, panOrigin, chartsToPan, e);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tpanInProgress: false,\n\t\t\t\t\t\tpinchZoomStart: {\n\t\t\t\t\t\t\txScale: xScale,\n\t\t\t\t\t\t\ttouch1Pos: touch1Pos,\n\t\t\t\t\t\t\ttouch2Pos: touch2Pos,\n\t\t\t\t\t\t\trange: xScale.range(),\n\t\t\t\t\t\t\tchartsToPan: chartsToPan\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handlePinchZoom\",\n\t\tvalue: function handlePinchZoom() {\n\t\t\tvar e = d3Event;\n \n\t\t\tvar _touches = touches(this.node),\n\t\t\t _touches2 = _slicedToArray(_touches, 2),\n\t\t\t touch1Pos = _touches2[0],\n\t\t\t touch2Pos = _touches2[1];\n\n\t\t\tvar _props11 = this.props,\n\t\t\t xScale = _props11.xScale,\n\t\t\t zoomEnabled = _props11.zoom,\n\t\t\t onPinchZoom = _props11.onPinchZoom;\n\n\t\t\t// eslint-disable-next-line no-unused-vars\n\n\t\t\tvar _state$pinchZoomStart = this.state.pinchZoomStart,\n\t\t\t chartsToPan = _state$pinchZoomStart.chartsToPan,\n\t\t\t initialPinch = _objectWithoutProperties(_state$pinchZoomStart, [\"chartsToPan\"]);\n\n\t\t\tif (zoomEnabled && onPinchZoom) {\n\t\t\t\tonPinchZoom(initialPinch, {\n\t\t\t\t\ttouch1Pos: touch1Pos,\n\t\t\t\t\ttouch2Pos: touch2Pos,\n\t\t\t\t\txScale: xScale\n\t\t\t\t}, e);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handlePinchZoomEnd\",\n\t\tvalue: function handlePinchZoomEnd() {\n\t\t\tvar e = d3Event;\n \n\t\t\tvar win = d3Window(this.node);\n\t\t\tselect(win).on(TOUCHMOVE, null).on(TOUCHEND, null);\n\n\t\t\tvar _props12 = this.props,\n\t\t\t zoomEnabled = _props12.zoom,\n\t\t\t onPinchZoomEnd = _props12.onPinchZoomEnd;\n\n\t\t\t// eslint-disable-next-line no-unused-vars\n\n\t\t\tvar _state$pinchZoomStart2 = this.state.pinchZoomStart,\n\t\t\t chartsToPan = _state$pinchZoomStart2.chartsToPan,\n\t\t\t initialPinch = _objectWithoutProperties(_state$pinchZoomStart2, [\"chartsToPan\"]);\n\n\t\t\tif (zoomEnabled && onPinchZoomEnd) {\n\t\t\t\tonPinchZoomEnd(initialPinch, e);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tpinchZoomStart: null\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"setCursorClass\",\n\t\tvalue: function setCursorClass(cursorOverrideClass) {\n\t\t\tif (cursorOverrideClass !== this.state.cursorOverrideClass) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tcursorOverrideClass: cursorOverrideClass\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props13 = this.props,\n\t\t\t height = _props13.height,\n\t\t\t width = _props13.width,\n\t\t\t disableInteraction = _props13.disableInteraction,\n\t\t\t useCrossHairStyleCursor = _props13.useCrossHairStyleCursor;\n\n\t\t\tvar className = this.state.cursorOverrideClass != null ? this.state.cursorOverrideClass : !useCrossHairStyleCursor ? \"\" : this.state.panInProgress ? \"react-stockcharts-grabbing-cursor\" : \"react-stockcharts-crosshair-cursor\";\n\n\t\t\tvar interactionProps = disableInteraction || {\n\t\t\t\tonWheel: this.handleWheel,\n\t\t\t\tonMouseDown: this.handleMouseDown,\n\t\t\t\tonClick: this.handleClick,\n\t\t\t\tonContextMenu: this.handleRightClick,\n\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\tonTouchMove: this.handleTouchMove\n\t\t\t};\n\n\t\t\treturn React.createElement(\"rect\", _extends({ ref: this.saveNode,\n\t\t\t\tclassName: className,\n\t\t\t\twidth: width,\n\t\t\t\theight: height,\n\t\t\t\tstyle: { opacity: 0 }\n\t\t\t}, interactionProps));\n\t\t}\n\t}]);\n\n\treturn EventCapture;\n}(Component);\n\n// \t\t\t\tonMouseEnter={this.handleEnter}\n//\t\t\t\tonMouseLeave={this.handleLeave}\n\n\nEventCapture.propTypes = {\n\tmouseMove: PropTypes.bool.isRequired,\n\tzoom: PropTypes.bool.isRequired,\n\tpan: PropTypes.bool.isRequired,\n\tpanSpeedMultiplier: PropTypes.number.isRequired,\n\tfocus: PropTypes.bool.isRequired,\n\tuseCrossHairStyleCursor: PropTypes.bool.isRequired,\n\n\twidth: PropTypes.number.isRequired,\n\theight: PropTypes.number.isRequired,\n\tchartConfig: PropTypes.array,\n\txScale: PropTypes.func.isRequired,\n\txAccessor: PropTypes.func.isRequired,\n\tdisableInteraction: PropTypes.bool.isRequired,\n\n\tgetAllPanConditions: PropTypes.func.isRequired,\n\n\tonMouseMove: PropTypes.func,\n\tonMouseEnter: PropTypes.func,\n\tonMouseLeave: PropTypes.func,\n\tonZoom: PropTypes.func,\n\tonPinchZoom: PropTypes.func,\n\tonPinchZoomEnd: PropTypes.func.isRequired,\n\tonPan: PropTypes.func,\n\tonPanEnd: PropTypes.func,\n\tonDragStart: PropTypes.func,\n\tonDrag: PropTypes.func,\n\tonDragComplete: PropTypes.func,\n\n\tonClick: PropTypes.func,\n\tonDoubleClick: PropTypes.func,\n\tonContextMenu: PropTypes.func,\n\tonMouseDown: PropTypes.func,\n\tchildren: PropTypes.node\n};\n\nEventCapture.defaultProps = {\n\tmouseMove: false,\n\tzoom: false,\n\tpan: false,\n\tpanSpeedMultiplier: 1,\n\tfocus: false,\n\tonDragComplete: noop,\n\tdisableInteraction: false\n};\n\nexport default EventCapture;\n","\nimport React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { isDefined, getLogger } from \"./utils\";\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\nvar log = getLogger(\"CanvasContainer\");\n\nvar CanvasContainer = function (_Component) {\n\t_inherits(CanvasContainer, _Component);\n\n\tfunction CanvasContainer(props) {\n\t\t_classCallCheck(this, CanvasContainer);\n\n\t\tvar _this = _possibleConstructorReturn(this, (CanvasContainer.__proto__ || Object.getPrototypeOf(CanvasContainer)).call(this, props));\n\n\t\t_this.setDrawCanvas = _this.setDrawCanvas.bind(_this);\n\t\t_this.drawCanvas = {};\n\t\treturn _this;\n\t}\n\n\t_createClass(CanvasContainer, [{\n\t\tkey: \"setDrawCanvas\",\n\t\tvalue: function setDrawCanvas(node) {\n\t\t\tif (isDefined(node)) this.drawCanvas[node.id] = node.getContext(\"2d\");else this.drawCanvas = {};\n\t\t}\n\t}, {\n\t\tkey: \"getCanvasContexts\",\n\t\tvalue: function getCanvasContexts() {\n\t\t\tif (isDefined(this.drawCanvas.axes)) {\n\t\t\t\treturn this.drawCanvas;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t height = _props.height,\n\t\t\t width = _props.width,\n\t\t\t type = _props.type,\n\t\t\t zIndex = _props.zIndex,\n\t\t\t ratio = _props.ratio;\n\n\t\t\tif (type === \"svg\") return null;\n\n\t\t\tlog(\"using ratio \", ratio);\n\n\t\t\treturn React.createElement(\n\t\t\t\t\"div\",\n\t\t\t\t{ style: { position: \"absolute\", zIndex: zIndex } },\n\t\t\t\tReact.createElement(\"canvas\", { id: \"bg\", ref: this.setDrawCanvas, width: width * ratio, height: height * ratio,\n\t\t\t\t\tstyle: { position: \"absolute\", width: width, height: height } }),\n\t\t\t\tReact.createElement(\"canvas\", { id: \"axes\", ref: this.setDrawCanvas, width: width * ratio, height: height * ratio,\n\t\t\t\t\tstyle: { position: \"absolute\", width: width, height: height } }),\n\t\t\t\tReact.createElement(\"canvas\", { id: \"mouseCoord\", ref: this.setDrawCanvas, width: width * ratio, height: height * ratio,\n style: { position: \"absolute\", width: width, height: height } }),\n React.createElement(\"canvas\", { id: \"mouseHover\", ref: this.setDrawCanvas, width: width * ratio, height: height * ratio,\n\t\t\t\t\tstyle: { position: \"absolute\", width: width, height: height } }),\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn CanvasContainer;\n}(Component);\n/*\n\t\t\t\t\n*/\n\n\nCanvasContainer.propTypes = {\n\twidth: PropTypes.number.isRequired,\n\theight: PropTypes.number.isRequired,\n\ttype: PropTypes.string.isRequired,\n\tzIndex: PropTypes.number,\n\tratio: PropTypes.number.isRequired\n};\n\nexport default CanvasContainer;\n","import { head, last, getClosestItemIndexes, isDefined, isNotDefined, getLogger } from \"../utils\";\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar log = getLogger(\"evaluator\");\n\nfunction getNewEnd(fallbackEnd, xAccessor, initialXScale, start) {\n\tvar lastItem = fallbackEnd.lastItem,\n\t lastItemX = fallbackEnd.lastItemX;\n\n\tvar lastItemXValue = xAccessor(lastItem);\n\n\tvar _initialXScale$range = initialXScale.range(),\n\t _initialXScale$range2 = _slicedToArray(_initialXScale$range, 2),\n\t rangeStart = _initialXScale$range2[0],\n\t rangeEnd = _initialXScale$range2[1];\n\n\tvar newEnd = (rangeEnd - rangeStart) / (lastItemX - rangeStart) * (lastItemXValue - start) + start;\n\treturn newEnd;\n}\n\nfunction extentsWrapper(useWholeData, clamp, pointsPerPxThreshold, minPointsPerPxThreshold, flipXScale) {\n\tfunction filterData(data, inputDomain, xAccessor, initialXScale) {\n\t\tvar _ref = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},\n\t\t currentPlotData = _ref.currentPlotData,\n\t\t currentDomain = _ref.currentDomain,\n\t\t fallbackStart = _ref.fallbackStart,\n\t\t fallbackEnd = _ref.fallbackEnd;\n\n\t\tif (useWholeData) {\n\t\t\treturn { plotData: data, domain: inputDomain };\n\t\t}\n\n\t\tvar left = head(inputDomain);\n\t\tvar right = last(inputDomain);\n\t\tvar clampedDomain = inputDomain;\n\n\t\tvar filteredData = getFilteredResponse(data, left, right, xAccessor);\n\n\t\tif (filteredData.length === 1 && isDefined(fallbackStart)) {\n\t\t\tleft = fallbackStart;\n\t\t\tright = getNewEnd(fallbackEnd, xAccessor, initialXScale, left);\n\n\t\t\tclampedDomain = [left, right];\n\t\t\tfilteredData = getFilteredResponse(data, left, right, xAccessor);\n\t\t}\n\n\t\tif (typeof clamp === \"function\") {\n\t\t\tclampedDomain = clamp(clampedDomain, [xAccessor(head(data)), xAccessor(last(data))]);\n\t\t} else {\n\t\t\tif (clamp === \"left\" || clamp === \"both\" || clamp === true) {\n\t\t\t\tclampedDomain = [Math.max(left, xAccessor(head(data))), clampedDomain[1]];\n\t\t\t}\n\n\t\t\tif (clamp === \"right\" || clamp === \"both\" || clamp === true) {\n\t\t\t\tclampedDomain = [clampedDomain[0], Math.min(right, xAccessor(last(data)))];\n\t\t\t}\n\t\t}\n\n\t\tif (clampedDomain !== inputDomain) {\n\t\t\tfilteredData = getFilteredResponse(data, clampedDomain[0], clampedDomain[1], xAccessor);\n\t\t}\n\n\t\tvar realInputDomain = clampedDomain;\n\t\t// [xAccessor(head(filteredData)), xAccessor(last(filteredData))];\n\n\t\tvar xScale = initialXScale.copy().domain(realInputDomain);\n\n\t\tvar width = Math.floor(xScale(xAccessor(last(filteredData))) - xScale(xAccessor(head(filteredData))));\n\n\t\t// prevent negative width when flipXScale\n\t\tif (flipXScale && width < 0) {\n\t\t\twidth = width * -1;\n\t\t}\n\n\t\tvar plotData = void 0,\n\t\t domain = void 0;\n\n\t\tvar chartWidth = last(xScale.range()) - head(xScale.range());\n\n\t\tlog(\"Trying to show \" + filteredData.length + \" points in \" + width + \"px,\" + (\" I can show up to \" + (showMaxThreshold(width, pointsPerPxThreshold) - 1) + \" points in that width. \") + (\"Also FYI the entire chart width is \" + chartWidth + \"px and pointsPerPxThreshold is \" + pointsPerPxThreshold));\n\n\t\tif (canShowTheseManyPeriods(width, filteredData.length, pointsPerPxThreshold, minPointsPerPxThreshold)) {\n\t\t\tplotData = filteredData;\n\t\t\tdomain = realInputDomain;\n\t\t\tlog(\"AND IT WORKED\");\n\t\t} else {\n\t\t\tif (chartWidth > showMaxThreshold(width, pointsPerPxThreshold) && isDefined(fallbackEnd)) {\n\t\t\t\tplotData = filteredData;\n\t\t\t\tvar newEnd = getNewEnd(fallbackEnd, xAccessor, initialXScale, head(realInputDomain));\n\t\t\t\tdomain = [head(realInputDomain), newEnd];\n\t\t\t\t// plotData = currentPlotData || filteredData.slice(filteredData.length - showMax(width, pointsPerPxThreshold));\n\t\t\t\t// domain = currentDomain || [xAccessor(head(plotData)), xAccessor(last(plotData))];\n\n\t\t\t\tvar newXScale = xScale.copy().domain(domain);\n\t\t\t\tvar newWidth = Math.floor(newXScale(xAccessor(last(plotData))) - newXScale(xAccessor(head(plotData))));\n\n\t\t\t\tlog(\"and ouch, that is too much, so instead showing \" + plotData.length + \" in \" + newWidth + \"px\");\n\t\t\t} else {\n\t\t\t\tplotData = currentPlotData || filteredData.slice(filteredData.length - showMax(width, pointsPerPxThreshold));\n\t\t\t\tdomain = currentDomain || [xAccessor(head(plotData)), xAccessor(last(plotData))];\n\n\t\t\t\tvar _newXScale = xScale.copy().domain(domain);\n\t\t\t\tvar _newWidth = Math.floor(_newXScale(xAccessor(last(plotData))) - _newXScale(xAccessor(head(plotData))));\n\n\t\t\t\tlog(\"and ouch, that is too much, so instead showing \" + plotData.length + \" in \" + _newWidth + \"px\");\n\t\t\t}\n\t\t}\n\t\treturn { plotData: plotData, domain: domain };\n\t}\n\treturn { filterData: filterData };\n}\n\nfunction canShowTheseManyPeriods(width, arrayLength, maxThreshold, minThreshold) {\n\treturn arrayLength > showMinThreshold(width, minThreshold) && arrayLength < showMaxThreshold(width, maxThreshold);\n}\n\nfunction showMinThreshold(width, threshold) {\n\treturn Math.max(1, Math.ceil(width * threshold));\n}\n\nfunction showMaxThreshold(width, threshold) {\n\treturn Math.floor(width * threshold);\n}\n\nfunction showMax(width, threshold) {\n\treturn Math.floor(showMaxThreshold(width, threshold) * 0.97);\n}\n\nfunction getFilteredResponse(data, left, right, xAccessor) {\n\tvar newLeftIndex = getClosestItemIndexes(data, left, xAccessor).right;\n\tvar newRightIndex = getClosestItemIndexes(data, right, xAccessor).left;\n\n\tvar filteredData = data.slice(newLeftIndex, newRightIndex + 1);\n\t// console.log(right, newRightIndex, dataForInterval.length);\n\n\treturn filteredData;\n}\n\nexport default function (_ref2) {\n\tvar xScale = _ref2.xScale,\n\t useWholeData = _ref2.useWholeData,\n\t clamp = _ref2.clamp,\n\t pointsPerPxThreshold = _ref2.pointsPerPxThreshold,\n\t minPointsPerPxThreshold = _ref2.minPointsPerPxThreshold,\n\t flipXScale = _ref2.flipXScale;\n\n\treturn extentsWrapper(useWholeData || isNotDefined(xScale.invert), clamp, pointsPerPxThreshold, minPointsPerPxThreshold, flipXScale);\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { extent as d3Extent, min, max } from \"d3-array\";\n\nimport { head, last, isDefined, isNotDefined, clearCanvas, shallowEqual, identity, noop, functor, getLogger } from \"./utils\";\n\n/* eslint-disable no-unused-vars */\nimport { mouseBasedZoomAnchor, lastVisibleItemBasedZoomAnchor, rightDomainBasedZoomAnchor } from \"./utils/zoomBehavior\";\n/* eslint-enable no-unused-vars */\n\nimport { getNewChartConfig, getChartConfigWithUpdatedYScales, getCurrentCharts, getCurrentItem } from \"./utils/ChartDataUtil\";\n\nimport EventCapture from \"./EventCapture\";\n\nimport CanvasContainer from \"./CanvasContainer\";\nimport evaluator from \"./scale/evaluator\";\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nvar log = getLogger(\"ChartCanvas\");\n\nvar CANDIDATES_FOR_RESET = [\"seriesName\"];\n\nfunction shouldResetChart(thisProps, nextProps) {\n\treturn !CANDIDATES_FOR_RESET.every(function (key) {\n\t\tvar result = shallowEqual(thisProps[key], nextProps[key]);\n\t\t// console.log(key, result);\n\t\treturn result;\n\t});\n}\n\nfunction getCursorStyle() {\n\tvar tooltipStyle = \"\\n\\t.react-stockcharts-grabbing-cursor {\\n\\t\\tpointer-events: all;\\n\\t\\tcursor: -moz-grabbing;\\n\\t\\tcursor: -webkit-grabbing;\\n\\t\\tcursor: grabbing;\\n\\t}\\n\\t.react-stockcharts-crosshair-cursor {\\n\\t\\tpointer-events: all;\\n\\t\\tcursor: crosshair;\\n\\t}\\n\\t.react-stockcharts-tooltip-hover {\\n\\t\\tpointer-events: all;\\n\\t\\tcursor: pointer;\\n\\t}\\n\\t.react-stockcharts-avoid-interaction {\\n\\t\\tpointer-events: none;\\n\\t}\\n\\t.react-stockcharts-enable-interaction {\\n\\t\\tpointer-events: all;\\n\\t}\\n\\t.react-stockcharts-tooltip {\\n\\t\\tpointer-events: all;\\n\\t\\tcursor: pointer;\\n\\t}\\n\\t.react-stockcharts-default-cursor {\\n\\t\\tcursor: default;\\n\\t}\\n\\t.react-stockcharts-move-cursor {\\n\\t\\tcursor: move;\\n\\t}\\n\\t.react-stockcharts-pointer-cursor {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\t.react-stockcharts-ns-resize-cursor {\\n\\t\\tcursor: ns-resize;\\n\\t}\\n\\t.react-stockcharts-ew-resize-cursor {\\n\\t\\tcursor: ew-resize;\\n\\t}\";\n\treturn React.createElement(\n\t\t\"style\",\n\t\t{ type: \"text/css\" },\n\t\ttooltipStyle\n\t);\n}\n\nfunction getDimensions(props) {\n\treturn {\n\t\theight: props.height - props.margin.top - props.margin.bottom,\n\t\twidth: props.width - props.margin.left - props.margin.right\n\t};\n}\n\nfunction getXScaleDirection(flipXScale) {\n\treturn flipXScale ? -1 : 1;\n}\n\nfunction calculateFullData(props) {\n\tvar fullData = props.data,\n\t plotFull = props.plotFull,\n\t xScale = props.xScale,\n\t clamp = props.clamp,\n\t pointsPerPxThreshold = props.pointsPerPxThreshold,\n\t flipXScale = props.flipXScale;\n\tvar xAccessor = props.xAccessor,\n\t displayXAccessor = props.displayXAccessor,\n\t minPointsPerPxThreshold = props.minPointsPerPxThreshold;\n\n\n\tvar useWholeData = isDefined(plotFull) ? plotFull : xAccessor === identity;\n\n\tvar _evaluator = evaluator({\n\t\txScale: xScale,\n\t\tuseWholeData: useWholeData,\n\t\tclamp: clamp,\n\t\tpointsPerPxThreshold: pointsPerPxThreshold,\n\t\tminPointsPerPxThreshold: minPointsPerPxThreshold,\n\t\tflipXScale: flipXScale\n\t}),\n\t filterData = _evaluator.filterData;\n\n\treturn {\n\t\txAccessor: xAccessor,\n\t\tdisplayXAccessor: displayXAccessor || xAccessor,\n\t\txScale: xScale.copy(),\n\t\tfullData: fullData,\n\t\tfilterData: filterData\n\t};\n}\n\nvar firstTime = 0;\n\nfunction resetChart(props) {\n\tvar firstCalculation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tif (!firstCalculation) log(\"CHART RESET\");\n\t}\n\n\tvar state = calculateState(props);\n\tvar xAccessor = state.xAccessor,\n\t displayXAccessor = state.displayXAccessor,\n\t fullData = state.fullData;\n\tvar initialPlotData = state.plotData,\n\t xScale = state.xScale;\n\tvar postCalculator = props.postCalculator,\n\t children = props.children;\n\n\n var plotData = postCalculator(initialPlotData);\n\tvar dimensions = getDimensions(props);\n\tvar chartConfig = getChartConfigWithUpdatedYScales(getNewChartConfig(dimensions, children), { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, xScale.domain());\n\n\treturn _extends({}, state, {\n\t\txScale: xScale,\n\t\tplotData: plotData,\n\t\tchartConfig: chartConfig\n\t});\n}\n\nfunction updateChart(newState, initialXScale, props, lastItemWasVisible, initialChartConfig) {\n\tvar fullData = newState.fullData,\n\t xScale = newState.xScale,\n\t xAccessor = newState.xAccessor,\n\t displayXAccessor = newState.displayXAccessor,\n\t filterData = newState.filterData;\n\n\n\tvar lastItem = last(fullData);\n\n\tvar _initialXScale$domain = initialXScale.domain(),\n\t _initialXScale$domain2 = _slicedToArray(_initialXScale$domain, 2),\n\t start = _initialXScale$domain2[0],\n\t end = _initialXScale$domain2[1];\n\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tlog(\"TRIVIAL CHANGE\");\n\t}\n\n\tvar postCalculator = props.postCalculator,\n\t children = props.children,\n\t padding = props.padding,\n\t flipXScale = props.flipXScale;\n\tvar maintainPointsPerPixelOnResize = props.maintainPointsPerPixelOnResize;\n\n\tvar direction = getXScaleDirection(flipXScale);\n\tvar dimensions = getDimensions(props);\n\n\tvar updatedXScale = setXRange(xScale, dimensions, padding, direction);\n\n\t// console.log(\"lastItemWasVisible =\", lastItemWasVisible, end, xAccessor(lastItem), end >= xAccessor(lastItem));\n\tvar initialPlotData = void 0;\n\tif (!lastItemWasVisible || end >= xAccessor(lastItem)) {\n\t\t// resize comes here...\n\t\tvar _initialXScale$range = initialXScale.range(),\n\t\t _initialXScale$range2 = _slicedToArray(_initialXScale$range, 2),\n\t\t rangeStart = _initialXScale$range2[0],\n\t\t rangeEnd = _initialXScale$range2[1];\n\n\t\tvar _updatedXScale$range = updatedXScale.range(),\n\t\t _updatedXScale$range2 = _slicedToArray(_updatedXScale$range, 2),\n\t\t newRangeStart = _updatedXScale$range2[0],\n\t\t newRangeEnd = _updatedXScale$range2[1];\n\n\t\tvar newDomainExtent = (newRangeEnd - newRangeStart) / (rangeEnd - rangeStart) * (end - start);\n\t\tvar newStart = maintainPointsPerPixelOnResize ? end - newDomainExtent : start;\n\n\t\tvar lastItemX = initialXScale(xAccessor(lastItem));\n\t\t// console.log(\"pointsPerPixel => \", newStart, start, end, updatedXScale(end));\n\t\tvar response = filterData(fullData, [newStart, end], xAccessor, updatedXScale, { fallbackStart: start, fallbackEnd: { lastItem: lastItem, lastItemX: lastItemX } });\n\t\tinitialPlotData = response.plotData;\n\t\tupdatedXScale.domain(response.domain);\n\t\t// console.log(\"HERE!!!!!\", start, end);\n\t} else if (lastItemWasVisible && end < xAccessor(lastItem)) {\n\t\t// this is when a new item is added and last item was visible\n\t\t// so slide over and show the new item also\n\n\t\t// get plotData between [xAccessor(l) - (end - start), xAccessor(l)] and DO change the domain\n\t\tvar dx = initialXScale(xAccessor(lastItem)) - initialXScale.range()[1];\n\n\t\tvar _initialXScale$range$ = initialXScale.range().map(function (x) {\n\t\t\treturn x + dx;\n\t\t}).map(initialXScale.invert),\n\t\t _initialXScale$range$2 = _slicedToArray(_initialXScale$range$, 2),\n\t\t _newStart = _initialXScale$range$2[0],\n\t\t newEnd = _initialXScale$range$2[1];\n\n\t\tvar _response = filterData(fullData, [_newStart, newEnd], xAccessor, updatedXScale);\n\t\tinitialPlotData = _response.plotData;\n\t\tupdatedXScale.domain(_response.domain); // if last item was visible, then shift\n\t}\n\t// plotData = getDataOfLength(fullData, showingInterval, plotData.length)\n\tvar plotData = postCalculator(initialPlotData);\n\tvar chartConfig = getChartConfigWithUpdatedYScales(getNewChartConfig(dimensions, children, initialChartConfig), { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedXScale.domain());\n\n\treturn {\n\t\txScale: updatedXScale,\n\t\txAccessor: xAccessor,\n\t\tchartConfig: chartConfig,\n\t\tplotData: plotData,\n\t\tfullData: fullData,\n\t\tfilterData: filterData\n\t};\n}\n\nfunction calculateState(props) {\n\tvar inputXAccesor = props.xAccessor,\n\t xExtentsProp = props.xExtents,\n\t data = props.data,\n\t padding = props.padding,\n\t flipXScale = props.flipXScale;\n\n\n\tif (process.env.NODE_ENV !== \"production\" && isDefined(props.xScale.invert)) {\n\t\tfor (var i = 1; i < data.length; i++) {\n\t\t\tvar prev = data[i - 1];\n\t\t\tvar curr = data[i];\n\t\t\tif (inputXAccesor(prev) > inputXAccesor(curr)) {\n\t\t\t\tthrow new Error(\"'data' is not sorted on 'xAccessor', send 'data' sorted in ascending order of 'xAccessor'\");\n\t\t\t}\n\t\t}\n\t}\n\n\tvar direction = getXScaleDirection(flipXScale);\n\tvar dimensions = getDimensions(props);\n\n\tvar extent = typeof xExtentsProp === \"function\" ? xExtentsProp(data) : d3Extent(xExtentsProp.map(function (d) {\n\t\treturn functor(d);\n\t}).map(function (each) {\n\t\treturn each(data, inputXAccesor);\n\t}));\n\n\tvar _calculateFullData = calculateFullData(props),\n\t xAccessor = _calculateFullData.xAccessor,\n\t displayXAccessor = _calculateFullData.displayXAccessor,\n\t xScale = _calculateFullData.xScale,\n\t fullData = _calculateFullData.fullData,\n\t filterData = _calculateFullData.filterData;\n\n\tvar updatedXScale = setXRange(xScale, dimensions, padding, direction);\n\n\tvar _filterData = filterData(fullData, extent, inputXAccesor, updatedXScale),\n\t plotData = _filterData.plotData,\n\t domain = _filterData.domain;\n\n\tif (process.env.NODE_ENV !== \"production\" && plotData.length <= 1) {\n\t\tthrow new Error(\"Showing \" + plotData.length + \" datapoints, review the 'xExtents' prop of ChartCanvas\");\n\t}\n\treturn {\n\t\tplotData: plotData,\n\t\txScale: updatedXScale.domain(domain),\n\t\txAccessor: xAccessor,\n\t\tdisplayXAccessor: displayXAccessor,\n\t\tfullData: fullData,\n\t\tfilterData: filterData\n\t};\n}\n\nfunction setXRange(xScale, dimensions, padding) {\n\tvar direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n\tif (xScale.rangeRoundPoints) {\n\t\tif (isNaN(padding)) throw new Error(\"padding has to be a number for ordinal scale\");\n\t\txScale.rangeRoundPoints([0, dimensions.width], padding);\n\t} else if (xScale.padding) {\n\t\tif (isNaN(padding)) throw new Error(\"padding has to be a number for ordinal scale\");\n\t\txScale.range([0, dimensions.width]);\n\t\txScale.padding(padding / 2);\n\t} else {\n\t\tvar _ref = isNaN(padding) ? padding : { left: padding, right: padding },\n\t\t left = _ref.left,\n\t\t right = _ref.right;\n\n\t\tif (direction > 0) {\n\t\t\txScale.range([left, dimensions.width - right]);\n\t\t} else {\n\t\t\txScale.range([dimensions.width - right, left]);\n\t\t}\n\t}\n\treturn xScale;\n}\n\nfunction pinchCoordinates(pinch) {\n\tvar touch1Pos = pinch.touch1Pos,\n\t touch2Pos = pinch.touch2Pos;\n\n\n\treturn {\n\t\ttopLeft: [Math.min(touch1Pos[0], touch2Pos[0]), Math.min(touch1Pos[1], touch2Pos[1])],\n\t\tbottomRight: [Math.max(touch1Pos[0], touch2Pos[0]), Math.max(touch1Pos[1], touch2Pos[1])]\n\t};\n}\n\nvar ChartCanvas = function (_Component) {\n\t_inherits(ChartCanvas, _Component);\n\n\tfunction ChartCanvas() {\n\t\t_classCallCheck(this, ChartCanvas);\n\n\t\tvar _this = _possibleConstructorReturn(this, (ChartCanvas.__proto__ || Object.getPrototypeOf(ChartCanvas)).call(this));\n\n\t\t_this.getDataInfo = _this.getDataInfo.bind(_this);\n\t\t_this.getCanvasContexts = _this.getCanvasContexts.bind(_this);\n\n\t\t_this.handleMouseMove = _this.handleMouseMove.bind(_this);\n\t\t_this.handleMouseEnter = _this.handleMouseEnter.bind(_this);\n\t\t_this.handleMouseLeave = _this.handleMouseLeave.bind(_this);\n\t\t_this.handleZoom = _this.handleZoom.bind(_this);\n\t\t_this.handlePinchZoom = _this.handlePinchZoom.bind(_this);\n\t\t_this.handlePinchZoomEnd = _this.handlePinchZoomEnd.bind(_this);\n\t\t_this.handlePan = _this.handlePan.bind(_this);\n\t\t_this.handlePanEnd = _this.handlePanEnd.bind(_this);\n\t\t_this.handleClick = _this.handleClick.bind(_this);\n\t\t_this.handleMouseDown = _this.handleMouseDown.bind(_this);\n\t\t_this.handleDoubleClick = _this.handleDoubleClick.bind(_this);\n\t\t_this.handleContextMenu = _this.handleContextMenu.bind(_this);\n\t\t_this.handleDragStart = _this.handleDragStart.bind(_this);\n\t\t_this.handleDrag = _this.handleDrag.bind(_this);\n\t\t_this.handleDragEnd = _this.handleDragEnd.bind(_this);\n\n\t\t_this.panHelper = _this.panHelper.bind(_this);\n\t\t_this.pinchZoomHelper = _this.pinchZoomHelper.bind(_this);\n\t\t_this.xAxisZoom = _this.xAxisZoom.bind(_this);\n\t\t_this.yAxisZoom = _this.yAxisZoom.bind(_this);\n\t\t_this.resetYDomain = _this.resetYDomain.bind(_this);\n\t\t_this.calculateStateForDomain = _this.calculateStateForDomain.bind(_this);\n\t\t_this.generateSubscriptionId = _this.generateSubscriptionId.bind(_this);\n\t\t_this.draw = _this.draw.bind(_this);\n\t\t_this.redraw = _this.redraw.bind(_this);\n\t\t_this.getAllPanConditions = _this.getAllPanConditions.bind(_this);\n\n\t\t_this.subscriptions = [];\n\t\t_this.subscribe = _this.subscribe.bind(_this);\n\t\t_this.unsubscribe = _this.unsubscribe.bind(_this);\n\t\t_this.amIOnTop = _this.amIOnTop.bind(_this);\n\t\t_this.saveEventCaptureNode = _this.saveEventCaptureNode.bind(_this);\n\t\t_this.saveCanvasContainerNode = _this.saveCanvasContainerNode.bind(_this);\n\t\t_this.setCursorClass = _this.setCursorClass.bind(_this);\n\t\t_this.getMutableState = _this.getMutableState.bind(_this);\n\t\t// this.canvasDrawCallbackList = [];\n\t\t_this.interactiveState = [];\n\t\t_this.panInProgress = false;\n\n\t\t_this.state = {};\n\t\t_this.mutableState = {};\n\t\t_this.lastSubscriptionId = 0;\n\t\treturn _this;\n\t}\n\n\t_createClass(ChartCanvas, [{\n\t\tkey: \"saveEventCaptureNode\",\n\t\tvalue: function saveEventCaptureNode(node) {\n\t\t\tthis.eventCaptureNode = node;\n\t\t}\n\t}, {\n\t\tkey: \"saveCanvasContainerNode\",\n\t\tvalue: function saveCanvasContainerNode(node) {\n\t\t\tthis.canvasContainerNode = node;\n\t\t}\n\t}, {\n\t\tkey: \"getMutableState\",\n\t\tvalue: function getMutableState() {\n\t\t\treturn this.mutableState;\n\t\t}\n\t}, {\n\t\tkey: \"getDataInfo\",\n\t\tvalue: function getDataInfo() {\n\t\t\treturn _extends({}, this.state, {\n\t\t\t\tfullData: this.fullData\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"getCanvasContexts\",\n\t\tvalue: function getCanvasContexts() {\n\t\t\tif (this.canvasContainerNode) {\n\t\t\t\treturn this.canvasContainerNode.getCanvasContexts();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"generateSubscriptionId\",\n\t\tvalue: function generateSubscriptionId() {\n\t\t\tthis.lastSubscriptionId++;\n\t\t\treturn this.lastSubscriptionId;\n\t\t}\n\t}, {\n\t\tkey: \"clearBothCanvas\",\n\t\tvalue: function clearBothCanvas() {\n\t\t\tvar canvases = this.getCanvasContexts();\n\t\t\tif (canvases && canvases.axes) {\n\t\t\t\tclearCanvas([canvases.axes,\n\t\t\t\t// canvases.hover,\n\t\t\t\tcanvases.mouseCoord, canvases.mouseHover], this.props.ratio);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"clearMouseCanvas\",\n\t\tvalue: function clearMouseCanvas() {\n\t\t\tvar canvases = this.getCanvasContexts();\n\t\t\tif (canvases && canvases.mouseCoord) {\n\t\t\t\tclearCanvas([canvases.mouseCoord, canvases.mouseHover], this.props.ratio);\n }\n\t\t}\n\t}, {\n\t\tkey: \"clearThreeCanvas\",\n\t\tvalue: function clearThreeCanvas() {\n\t\t\tvar canvases = this.getCanvasContexts();\n\t\t\tif (canvases && canvases.axes) {\n\t\t\t\tclearCanvas([canvases.axes,\n\t\t\t\tcanvases.mouseCoord, canvases.bg, canvases.mouseHover], this.props.ratio);\n\t\t\t}\n\t\t}\n }, {\n\t\tkey: \"clearAll\",\n\t\tvalue: function clearAll() {\n\t\t\tvar canvases = this.getCanvasContexts();\n\t\t\tif (canvases && canvases.axes) {\n\t\t\t\tclearCanvas([canvases.axes,\n\t\t\t\tcanvases.mouseCoord, canvases.bg, canvases.mouseHover], this.props.ratio);\n\t\t\t}\n\t\t}\n\t},{\n\t\tkey: \"subscribe\",\n\t\tvalue: function subscribe(id, rest) {\n\t\t\tvar _rest$getPanCondition = rest.getPanConditions,\n\t\t\t getPanConditions = _rest$getPanCondition === undefined ? functor({\n\t\t\t\tdraggable: false,\n\t\t\t\tpanEnabled: true\n\t\t\t}) : _rest$getPanCondition;\n\n\t\t\tthis.subscriptions = this.subscriptions.concat(_extends({\n\t\t\t\tid: id\n\t\t\t}, rest, {\n\t\t\t\tgetPanConditions: getPanConditions\n\t\t\t}));\n\t\t}\n\t}, {\n\t\tkey: \"unsubscribe\",\n\t\tvalue: function unsubscribe(id) {\n\t\t\tthis.subscriptions = this.subscriptions.filter(function (each) {\n\t\t\t\treturn each.id !== id;\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"getAllPanConditions\",\n\t\tvalue: function getAllPanConditions() {\n\t\t\treturn this.subscriptions.map(function (each) {\n\t\t\t\treturn each.getPanConditions();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"setCursorClass\",\n\t\tvalue: function setCursorClass(className) {\n\t\t\tif (this.eventCaptureNode != null) {\n\t\t\t\tthis.eventCaptureNode.setCursorClass(className);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"amIOnTop\",\n\t\tvalue: function amIOnTop(id) {\n\t\t\tvar dragableComponents = this.subscriptions.filter(function (each) {\n\t\t\t\treturn each.getPanConditions().draggable;\n\t\t\t});\n\n\t\t\treturn dragableComponents.length > 0 && last(dragableComponents).id === id;\n\t\t}\n\t}, {\n\t\tkey: \"handleContextMenu\",\n\t\tvalue: function handleContextMenu(mouseXY, e) {\n\t\t\tvar _state = this.state,\n\t\t\t xAccessor = _state.xAccessor,\n\t\t\t chartConfig = _state.chartConfig,\n\t\t\t plotData = _state.plotData,\n\t\t\t xScale = _state.xScale;\n\n\n\t\t\tvar currentCharts = getCurrentCharts(chartConfig, mouseXY);\n\t\t\tvar currentItem = getCurrentItem(xScale, xAccessor, mouseXY, plotData);\n\n\t\t\tthis.triggerEvent(\"contextmenu\", {\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tcurrentItem: currentItem,\n\t\t\t\tcurrentCharts: currentCharts\n\t\t\t}, e);\n\t\t}\n\t}, {\n\t\tkey: \"calculateStateForDomain\",\n\t\tvalue: function calculateStateForDomain(newDomain) {\n\t\t\tvar _state2 = this.state,\n\t\t\t xAccessor = _state2.xAccessor,\n\t\t\t displayXAccessor = _state2.displayXAccessor,\n\t\t\t initialXScale = _state2.xScale,\n\t\t\t initialChartConfig = _state2.chartConfig,\n\t\t\t initialPlotData = _state2.plotData;\n\t\t\tvar filterData = this.state.filterData;\n\t\t\tvar fullData = this.fullData;\n\t\t\tvar postCalculator = this.props.postCalculator;\n\n\t\t\tvar _filterData2 = filterData(fullData, newDomain, xAccessor, initialXScale, {\n\t\t\t\tcurrentPlotData: initialPlotData,\n\t\t\t\tcurrentDomain: initialXScale.domain()\n\t\t\t}),\n\t\t\t beforePlotData = _filterData2.plotData,\n\t\t\t domain = _filterData2.domain;\n\n\t\t\tvar plotData = postCalculator(beforePlotData);\n\t\t\tvar updatedScale = initialXScale.copy().domain(domain);\n\t\t\tvar chartConfig = getChartConfigWithUpdatedYScales(initialChartConfig, { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedScale.domain());\n\n\t\t\treturn {\n\t\t\t\txScale: updatedScale,\n\t\t\t\tplotData: plotData,\n\t\t\t\tchartConfig: chartConfig\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"pinchZoomHelper\",\n\t\tvalue: function pinchZoomHelper(initialPinch, finalPinch) {\n\t\t\tvar initialPinchXScale = initialPinch.xScale;\n\t\t\tvar _state3 = this.state,\n\t\t\t initialXScale = _state3.xScale,\n\t\t\t initialChartConfig = _state3.chartConfig,\n\t\t\t initialPlotData = _state3.plotData,\n\t\t\t xAccessor = _state3.xAccessor,\n\t\t\t displayXAccessor = _state3.displayXAccessor;\n\t\t\tvar filterData = this.state.filterData;\n\t\t\tvar fullData = this.fullData;\n\t\t\tvar postCalculator = this.props.postCalculator;\n\n\t\t\tvar _pinchCoordinates = pinchCoordinates(initialPinch),\n\t\t\t iTL = _pinchCoordinates.topLeft,\n\t\t\t iBR = _pinchCoordinates.bottomRight;\n\n\t\t\tvar _pinchCoordinates2 = pinchCoordinates(finalPinch),\n\t\t\t fTL = _pinchCoordinates2.topLeft,\n\t\t\t fBR = _pinchCoordinates2.bottomRight;\n\n\t\t\tvar e = initialPinchXScale.range()[1];\n\n\t\t\tvar xDash = Math.round(-(iBR[0] * fTL[0] - iTL[0] * fBR[0]) / (iTL[0] - iBR[0]));\n\t\t\tvar yDash = Math.round(e + ((e - iBR[0]) * (e - fTL[0]) - (e - iTL[0]) * (e - fBR[0])) / (e - iTL[0] - (e - iBR[0])));\n\n\t\t\tvar x = Math.round(-xDash * iTL[0] / (-xDash + fTL[0]));\n\t\t\tvar y = Math.round(e - (yDash - e) * (e - iTL[0]) / (yDash + (e - fTL[0])));\n\n\t\t\tvar newDomain = [x, y].map(initialPinchXScale.invert);\n\t\t\t// var domainR = initial.right + right;\n\n\t\t\tvar _filterData3 = filterData(fullData, newDomain, xAccessor, initialPinchXScale, {\n\t\t\t\tcurrentPlotData: initialPlotData,\n\t\t\t\tcurrentDomain: initialXScale.domain()\n\t\t\t}),\n\t\t\t beforePlotData = _filterData3.plotData,\n\t\t\t domain = _filterData3.domain;\n\n\t\t\tvar plotData = postCalculator(beforePlotData);\n\t\t\tvar updatedScale = initialXScale.copy().domain(domain);\n\n\t\t\tvar mouseXY = finalPinch.touch1Pos;\n\t\t\tvar chartConfig = getChartConfigWithUpdatedYScales(initialChartConfig, { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedScale.domain());\n\t\t\tvar currentItem = getCurrentItem(updatedScale, xAccessor, mouseXY, plotData);\n\n\t\t\treturn {\n\t\t\t\tchartConfig: chartConfig,\n\t\t\t\txScale: updatedScale,\n\t\t\t\tplotData: plotData,\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tcurrentItem: currentItem\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"cancelDrag\",\n\t\tvalue: function cancelDrag() {\n\t\t\tthis.eventCaptureNode.cancelDrag();\n\t\t\tthis.triggerEvent(\"dragcancel\");\n\t\t}\n\t}, {\n\t\tkey: \"handlePinchZoom\",\n\t\tvalue: function handlePinchZoom(initialPinch, finalPinch, e) {\n\t\t\tvar _this2 = this;\n\n\t\t\tif (!this.waitingForPinchZoomAnimationFrame) {\n\t\t\t\tthis.waitingForPinchZoomAnimationFrame = true;\n\t\t\t\tvar state = this.pinchZoomHelper(initialPinch, finalPinch);\n\n\t\t\t\tthis.triggerEvent(\"pinchzoom\", state, e);\n\n\t\t\t\tthis.finalPinch = finalPinch;\n\n\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t_this2.clearBothCanvas();\n\t\t\t\t\t_this2.draw({ trigger: \"pinchzoom\" });\n\t\t\t\t\t_this2.waitingForPinchZoomAnimationFrame = false;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handlePinchZoomEnd\",\n\t\tvalue: function handlePinchZoomEnd(initialPinch, e) {\n\t\t\tvar xAccessor = this.state.xAccessor;\n\n\n\t\t\tif (this.finalPinch) {\n\t\t\t\tvar state = this.pinchZoomHelper(initialPinch, this.finalPinch);\n\t\t\t\tvar xScale = state.xScale;\n\n\t\t\t\tthis.triggerEvent(\"pinchzoom\", state, e);\n\n\t\t\t\tthis.finalPinch = null;\n\n\t\t\t\tthis.clearThreeCanvas();\n\n\t\t\t\tvar fullData = this.fullData;\n\n\t\t\t\tvar firstItem = head(fullData);\n\n\t\t\t\tvar start = head(xScale.domain());\n\t\t\t\tvar end = xAccessor(firstItem);\n\t\t\t\tvar onLoadMore = this.props.onLoadMore;\n\n\n\t\t\t\tthis.setState(state, function () {\n\t\t\t\t\tif (start < end) {\n\t\t\t\t\t\tonLoadMore(start, end);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleZoom\",\n\t\tvalue: function handleZoom(zoomDirection, mouseXY, e) {\n\t\t\tif (this.panInProgress) return;\n\t\t\t// console.log(\"zoomDirection \", zoomDirection, \" mouseXY \", mouseXY);\n\t\t\tvar _state4 = this.state,\n\t\t\t xAccessor = _state4.xAccessor,\n\t\t\t initialXScale = _state4.xScale,\n\t\t\t initialPlotData = _state4.plotData;\n\t\t\tvar _props = this.props,\n\t\t\t zoomMultiplier = _props.zoomMultiplier,\n\t\t\t zoomAnchor = _props.zoomAnchor;\n\t\t\tvar fullData = this.fullData;\n\n\t\t\tvar item = zoomAnchor({\n\t\t\t\txScale: initialXScale,\n\t\t\t\txAccessor: xAccessor,\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tplotData: initialPlotData,\n\t\t\t\tfullData: fullData\n\t\t\t});\n\n\t\t\tvar cx = initialXScale(item);\n\t\t\tvar c = zoomDirection > 0 ? 1 * zoomMultiplier : 1 / zoomMultiplier;\n\t\t\tvar newDomain = initialXScale.range().map(function (x) {\n\t\t\t\treturn cx + (x - cx) * c;\n\t\t\t}).map(initialXScale.invert);\n\n\t\t\tvar _calculateStateForDom = this.calculateStateForDomain(newDomain),\n\t\t\t xScale = _calculateStateForDom.xScale,\n\t\t\t plotData = _calculateStateForDom.plotData,\n\t\t\t chartConfig = _calculateStateForDom.chartConfig;\n\n\t\t\tvar currentItem = getCurrentItem(xScale, xAccessor, mouseXY, plotData);\n\t\t\tvar currentCharts = getCurrentCharts(chartConfig, mouseXY);\n\n\t\t\tthis.clearThreeCanvas();\n\n\t\t\tvar firstItem = head(fullData);\n\n\t\t\tvar start = head(xScale.domain());\n\t\t\tvar end = xAccessor(firstItem);\n\t\t\tvar onLoadMore = this.props.onLoadMore;\n\n\n\t\t\tthis.mutableState = {\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tcurrentItem: currentItem,\n\t\t\t\tcurrentCharts: currentCharts\n\t\t\t};\n\n\t\t\tthis.triggerEvent(\"zoom\", {\n\t\t\t\txScale: xScale,\n\t\t\t\tplotData: plotData,\n\t\t\t\tchartConfig: chartConfig,\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tcurrentCharts: currentCharts,\n\t\t\t\tcurrentItem: currentItem,\n\t\t\t\tshow: true\n\t\t\t}, e);\n\n\t\t\tthis.setState({\n\t\t\t\txScale: xScale,\n\t\t\t\tplotData: plotData,\n\t\t\t\tchartConfig: chartConfig\n\t\t\t}, function () {\n onLoadMore(start, end);\n\t\t\t\tif (start < end) {\n\t\t\t\t\tonLoadMore(start, end);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"xAxisZoom\",\n\t\tvalue: function xAxisZoom(newDomain) {\n\t\t\tvar _calculateStateForDom2 = this.calculateStateForDomain(newDomain),\n\t\t\t xScale = _calculateStateForDom2.xScale,\n\t\t\t plotData = _calculateStateForDom2.plotData,\n\t\t\t chartConfig = _calculateStateForDom2.chartConfig;\n\n\t\t\tthis.clearThreeCanvas();\n\n\t\t\tvar xAccessor = this.state.xAccessor;\n\t\t\tvar fullData = this.fullData;\n\n\t\t\tvar firstItem = head(fullData);\n\t\t\tvar start = head(xScale.domain());\n\t\t\tvar end = xAccessor(firstItem);\n\t\t\tvar onLoadMore = this.props.onLoadMore;\n\n\n\t\t\tthis.setState({\n\t\t\t\txScale: xScale,\n\t\t\t\tplotData: plotData,\n\t\t\t\tchartConfig: chartConfig\n\t\t\t}, function () {\n\t\t\t\tif (start < end) onLoadMore(start, end);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"yAxisZoom\",\n\t\tvalue: function yAxisZoom(chartId, newDomain) {\n\t\t\tthis.clearThreeCanvas();\n\t\t\tvar initialChartConfig = this.state.chartConfig;\n\n\t\t\tvar chartConfig = initialChartConfig.map(function (each) {\n\t\t\t\tif (each.id === chartId) {\n\t\t\t\t\tvar yScale = each.yScale;\n\n\t\t\t\t\treturn _extends({}, each, {\n\t\t\t\t\t\tyScale: yScale.copy().domain(newDomain),\n\t\t\t\t\t\tyPanEnabled: true\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn each;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.setState({\n\t\t\t\tchartConfig: chartConfig\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"triggerEvent\",\n\t\tvalue: function triggerEvent(type, props, e) {\n\t\t\tvar _this3 = this;\n\n\t\t\t// console.log(\"triggering ->\", type);\n\n\t\t\tthis.subscriptions.forEach(function (each) {\n\t\t\t\tvar state = _extends({}, _this3.state, {\n\t\t\t\t\tfullData: _this3.fullData,\n\t\t\t\t\tsubscriptions: _this3.subscriptions\n\t\t\t\t});\n\t\t\t\teach.listener(type, props, state, e);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"draw\",\n\t\tvalue: function draw(props) {\n\t\t\tthis.subscriptions.forEach(function (each) {\n\t\t\t\tif (isDefined(each.draw)) each.draw(props);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"redraw\",\n\t\tvalue: function redraw() {\n\t\t\tthis.clearThreeCanvas();\n\t\t\tthis.draw({ force: true });\n\t\t}\n\t}, {\n\t\tkey: \"panHelper\",\n\t\tvalue: function panHelper(mouseXY, initialXScale, _ref2, chartsToPan) {\n\t\t\tvar dx = _ref2.dx,\n\t\t\t dy = _ref2.dy;\n\t\t\tvar _state5 = this.state,\n\t\t\t xAccessor = _state5.xAccessor,\n\t\t\t displayXAccessor = _state5.displayXAccessor,\n\t\t\t initialChartConfig = _state5.chartConfig;\n\t\t\tvar filterData = this.state.filterData;\n\t\t\tvar fullData = this.fullData;\n\t\t\tvar postCalculator = this.props.postCalculator;\n\n\t\t\t// console.log(dx, dy);\n\n\t\t\tif (isNotDefined(initialXScale.invert)) throw new Error(\"xScale provided does not have an invert() method.\" + \"You are likely using an ordinal scale. This scale does not support zoom, pan\");\n\n\t\t\tvar newDomain = initialXScale.range().map(function (x) {\n\t\t\t\treturn x - dx;\n\t\t\t}).map(initialXScale.invert);\n\n\t\t\tvar _filterData4 = filterData(fullData, newDomain, xAccessor, initialXScale, {\n\t\t\t\tcurrentPlotData: this.hackyWayToStopPanBeyondBounds__plotData,\n\t\t\t\tcurrentDomain: this.hackyWayToStopPanBeyondBounds__domain\n\t\t\t}),\n\t\t\t beforePlotData = _filterData4.plotData,\n\t\t\t domain = _filterData4.domain;\n\n\t\t\tvar updatedScale = initialXScale.copy().domain(domain);\n\t\t\tvar plotData = postCalculator(beforePlotData);\n\t\t\t// console.log(last(plotData));\n\n\t\t\tvar currentItem = getCurrentItem(updatedScale, xAccessor, mouseXY, plotData);\n\t\t\tvar chartConfig = getChartConfigWithUpdatedYScales(initialChartConfig, { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedScale.domain(), dy, chartsToPan);\n\t\t\tvar currentCharts = getCurrentCharts(chartConfig, mouseXY);\n\n\t\t\t// console.log(initialXScale.domain(), newDomain, updatedScale.domain());\n\t\t\treturn {\n\t\t\t\txScale: updatedScale,\n\t\t\t\tplotData: plotData,\n\t\t\t\tchartConfig: chartConfig,\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tcurrentCharts: currentCharts,\n\t\t\t\tcurrentItem: currentItem\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"handlePan\",\n\t\tvalue: function handlePan(mousePosition, panStartXScale, dxdy, chartsToPan, e) {\n\t\t\tvar _this4 = this;\n\n\t\t\tif (!this.waitingForPanAnimationFrame) {\n\t\t\t\tthis.waitingForPanAnimationFrame = true;\n\n\t\t\t\tthis.hackyWayToStopPanBeyondBounds__plotData = this.hackyWayToStopPanBeyondBounds__plotData || this.state.plotData;\n\t\t\t\tthis.hackyWayToStopPanBeyondBounds__domain = this.hackyWayToStopPanBeyondBounds__domain || this.state.xScale.domain();\n\n\t\t\t\tvar state = this.panHelper(mousePosition, panStartXScale, dxdy, chartsToPan);\n\t\t\t\tthis.hackyWayToStopPanBeyondBounds__plotData = state.plotData;\n\t\t\t\tthis.hackyWayToStopPanBeyondBounds__domain = state.xScale.domain();\n\n\t\t\t\tthis.panInProgress = true;\n\t\t\t\t// console.log(panStartXScale.domain(), state.xScale.domain());\n\n\t\t\t\tthis.triggerEvent(\"pan\", state, e);\n\n\t\t\t\tthis.mutableState = {\n\t\t\t\t\tmouseXY: state.mouseXY,\n\t\t\t\t\tcurrentItem: state.currentItem,\n\t\t\t\t\tcurrentCharts: state.currentCharts\n\t\t\t\t};\n\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t_this4.waitingForPanAnimationFrame = false;\n\t\t\t\t\t_this4.clearBothCanvas();\n\t\t\t\t\t_this4.draw({ trigger: \"pan\" });\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handlePanEnd\",\n\t\tvalue: function handlePanEnd(mousePosition, panStartXScale, dxdy, chartsToPan, e) {\n var _this5 = this;\n \n\t\t\tvar state = this.panHelper(mousePosition, panStartXScale, dxdy, chartsToPan);\n\t\t\t// console.log(this.canvasDrawCallbackList.map(d => d.type));\n\t\t\tthis.hackyWayToStopPanBeyondBounds__plotData = null;\n\t\t\tthis.hackyWayToStopPanBeyondBounds__domain = null;\n\n\t\t\tthis.panInProgress = false;\n\n\t\t\t// console.log(\"PANEND\", panEnd++);\n\t\t\tvar xScale = state.xScale,\n\t\t\t plotData = state.plotData,\n\t\t\t chartConfig = state.chartConfig;\n\n\n\t\t\tthis.triggerEvent(\"panend\", state, e);\n\n\t\t\trequestAnimationFrame(function () {\n\t\t\t\tvar xAccessor = _this5.state.xAccessor;\n\t\t\t\tvar fullData = _this5.fullData;\n\n\n\t\t\t\tvar firstItem = head(fullData);\n\t\t\t\tvar start = head(xScale.domain());\n\t\t\t\tvar end = xAccessor(firstItem);\n\t\t\t\t// console.log(start, end, start < end ? \"Load more\" : \"I have it\");\n\n\t\t\t\tvar onLoadMore = _this5.props.onLoadMore;\n\n\n\t\t\t\t_this5.clearThreeCanvas();\n\n\t\t\t\t_this5.setState({\n\t\t\t\t\txScale: xScale,\n\t\t\t\t\tplotData: plotData,\n\t\t\t\t\tchartConfig: chartConfig\n\t\t\t\t}, function () {\n\t\t\t\t\tif (start < end) onLoadMore(start, end);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleMouseDown\",\n\t\tvalue: function handleMouseDown(mousePosition, currentCharts, e) {\n\t\t\tthis.triggerEvent(\"mousedown\", this.mutableState, e);\n\t\t}\n\t}, {\n\t\tkey: \"handleMouseEnter\",\n\t\tvalue: function handleMouseEnter(e) {\n\t\t\tthis.triggerEvent(\"mouseenter\", {\n\t\t\t\tshow: true\n\t\t\t}, e);\n\t\t}\n\t}, {\n\t\tkey: \"handleMouseMove\",\n\t\tvalue: function handleMouseMove(mouseXY, inputType, e) {\n\t\t\tvar _this6 = this;\n\n\t\t\tif (!this.waitingForMouseMoveAnimationFrame) {\n\t\t\t\tthis.waitingForMouseMoveAnimationFrame = true;\n\n\t\t\t\tvar _state6 = this.state,\n\t\t\t\t chartConfig = _state6.chartConfig,\n\t\t\t\t plotData = _state6.plotData,\n\t\t\t\t xScale = _state6.xScale,\n\t\t\t\t xAccessor = _state6.xAccessor;\n\n\t\t\t\tvar currentCharts = getCurrentCharts(chartConfig, mouseXY);\n\t\t\t\tvar currentItem = getCurrentItem(xScale, xAccessor, mouseXY, plotData);\n\t\t\t\tthis.triggerEvent(\"mousemove\", {\n\t\t\t\t\tshow: true,\n\t\t\t\t\tmouseXY: mouseXY,\n\t\t\t\t\t// prevMouseXY is used in interactive components\n\t\t\t\t\tprevMouseXY: this.prevMouseXY,\n\t\t\t\t\tcurrentItem: currentItem,\n\t\t\t\t\tcurrentCharts: currentCharts\n\t\t\t\t}, e);\n\n\t\t\t\tthis.prevMouseXY = mouseXY;\n\t\t\t\tthis.mutableState = {\n\t\t\t\t\tmouseXY: mouseXY,\n\t\t\t\t\tcurrentItem: currentItem,\n\t\t\t\t\tcurrentCharts: currentCharts\n\t\t\t\t};\n\n\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t_this6.clearMouseCanvas();\n\t\t\t\t\t_this6.draw({ trigger: \"mousemove\" });\n\t\t\t\t\t_this6.waitingForMouseMoveAnimationFrame = false;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"handleMouseLeave\",\n\t\tvalue: function handleMouseLeave(e) {\n\t\t\tthis.triggerEvent(\"mouseleave\", { show: false }, e);\n\t\t\tthis.clearMouseCanvas();\n\t\t\tthis.draw({ trigger: \"mouseleave\" });\n\t\t}\n\t}, {\n\t\tkey: \"handleDragStart\",\n\t\tvalue: function handleDragStart(_ref3, e) {\n\t\t\tvar startPos = _ref3.startPos;\n\t\t\tthis.triggerEvent(\"dragstart\", { startPos: startPos }, e);\n\t\t}\n\t}, {\n\t\tkey: \"handleDrag\",\n\t\tvalue: function handleDrag(_ref4, e) {\n \n\t\t\tvar _this7 = this;\n\n\t\t\tvar startPos = _ref4.startPos,\n\t\t\t mouseXY = _ref4.mouseXY;\n\t\t\tvar _state7 = this.state,\n\t\t\t chartConfig = _state7.chartConfig,\n\t\t\t plotData = _state7.plotData,\n\t\t\t xScale = _state7.xScale,\n\t\t\t xAccessor = _state7.xAccessor;\n\n\t\t\tvar currentCharts = getCurrentCharts(chartConfig, mouseXY);\n\t\t\tvar currentItem = getCurrentItem(xScale, xAccessor, mouseXY, plotData);\n\t\t\tthis.triggerEvent(\"drag\", {\n\t\t\t\tstartPos: startPos,\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tcurrentItem: currentItem,\n\t\t\t\tcurrentCharts: currentCharts\n\t\t\t}, e);\n\n\t\t\tthis.mutableState = {\n\t\t\t\tmouseXY: mouseXY,\n\t\t\t\tcurrentItem: currentItem,\n\t\t\t\tcurrentCharts: currentCharts\n\t\t\t};\n \n\t\t\trequestAnimationFrame(function () {\n\t\t\t\t_this7.clearMouseCanvas();\n\t\t\t\t_this7.draw({ trigger: \"drag\" });\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDragEnd\",\n\t\tvalue: function handleDragEnd(_ref5, e) {\n\t\t\tvar _this8 = this;\n\n\t\t\tvar mouseXY = _ref5.mouseXY;\n\n\t\t\tthis.triggerEvent(\"dragend\", { mouseXY: mouseXY }, e);\n\n\t\t\trequestAnimationFrame(function () {\n\t\t\t\t_this8.clearMouseCanvas();\n\t\t\t\t_this8.draw({ trigger: \"dragend\" });\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleClick\",\n\t\tvalue: function handleClick(mousePosition, e) {\n\t\t\tvar _this9 = this;\n\n\t\t\tthis.triggerEvent(\"click\", this.mutableState, e);\n\n\t\t\trequestAnimationFrame(function () {\n\t\t\t\t_this9.clearMouseCanvas();\n\t\t\t\t_this9.draw({ trigger: \"click\" });\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"handleDoubleClick\",\n\t\tvalue: function handleDoubleClick(mousePosition, e) {\n\t\t\tthis.triggerEvent(\"dblclick\", {}, e);\n\t\t}\n\t}, {\n\t\tkey: \"getChildContext\",\n\t\tvalue: function getChildContext() {\n\t\t\tvar dimensions = getDimensions(this.props);\n\t\t\treturn {\n\t\t\t\tfullData: this.fullData,\n\t\t\t\tplotData: this.state.plotData,\n\t\t\t\twidth: dimensions.width,\n\t\t\t\theight: dimensions.height,\n\t\t\t\tchartConfig: this.state.chartConfig,\n\t\t\t\txScale: this.state.xScale,\n\t\t\t\txAccessor: this.state.xAccessor,\n\t\t\t\tdisplayXAccessor: this.state.displayXAccessor,\n\t\t\t\tchartCanvasType: this.props.type,\n\t\t\t\tmargin: this.props.margin,\n\t\t\t\tratio: this.props.ratio,\n\t\t\t\txAxisZoom: this.xAxisZoom,\n\t\t\t\tyAxisZoom: this.yAxisZoom,\n\t\t\t\tgetCanvasContexts: this.getCanvasContexts,\n\t\t\t\tredraw: this.redraw,\n\t\t\t\tsubscribe: this.subscribe,\n\t\t\t\tunsubscribe: this.unsubscribe,\n\t\t\t\tgenerateSubscriptionId: this.generateSubscriptionId,\n\t\t\t\tgetMutableState: this.getMutableState,\n\t\t\t\tamIOnTop: this.amIOnTop,\n\t\t\t\tsetCursorClass: this.setCursorClass\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tvar _resetChart = resetChart(this.props, true),\n\t\t\t fullData = _resetChart.fullData,\n\t\t\t state = _objectWithoutProperties(_resetChart, [\"fullData\"]);\n\n\t\t\tthis.setState(state);\n\t\t\tthis.fullData = fullData;\n\t\t}\n\t}, {\n\t\tkey: \"componentWillReceiveProps\",\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tvar reset = shouldResetChart(this.props, nextProps);\n\n\t\t\tvar interaction = isInteractionEnabled(this.state.xScale, this.state.xAccessor, this.state.plotData);\n\t\t\tvar initialChartConfig = this.state.chartConfig;\n\n\n\t\t\tvar newState = void 0;\n\t\t\tif (!interaction || reset || !shallowEqual(this.props.xExtents, nextProps.xExtents)) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\t\tif (!interaction) log(\"RESET CHART, changes to a non interactive chart\");else if (reset) log(\"RESET CHART, one or more of these props changed\", CANDIDATES_FOR_RESET);else log(\"xExtents changed\");\n\t\t\t\t}\n\t\t\t\t// do reset\n\t\t\t\tnewState = resetChart(nextProps);\n\t\t\t\tthis.mutableState = {};\n\t\t\t} else {\n\t\t\t\tvar _state$xScale$domain = this.state.xScale.domain(),\n\t\t\t\t _state$xScale$domain2 = _slicedToArray(_state$xScale$domain, 2),\n\t\t\t\t start = _state$xScale$domain2[0],\n\t\t\t\t end = _state$xScale$domain2[1];\n\n\t\t\t\tvar prevLastItem = last(this.fullData);\n\n\t\t\t\tvar calculatedState = calculateFullData(nextProps);\n\t\t\t\tvar xAccessor = calculatedState.xAccessor;\n\n\t\t\t\tvar lastItemWasVisible = xAccessor(prevLastItem) <= end && xAccessor(prevLastItem) >= start;\n\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\t\tif (this.props.data !== nextProps.data) log(\"data is changed but seriesName did not, change the seriesName if you wish to reset the chart and lastItemWasVisible = \", lastItemWasVisible);else log(\"Trivial change, may be width/height or type changed, but that does not matter\");\n\t\t\t\t}\n\n\t\t\t\tnewState = updateChart(calculatedState, this.state.xScale, nextProps, lastItemWasVisible, initialChartConfig);\n\t\t\t}\n\n\t\t\tvar _newState = newState,\n\t\t\t fullData = _newState.fullData,\n\t\t\t state = _objectWithoutProperties(_newState, [\"fullData\"]);\n\n\t\t\tif (this.panInProgress) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\t\tlog(\"Pan is in progress\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t/*\n if (!reset) {\n \tstate.chartConfig\n \t\t.forEach((each) => {\n \t\t\t// const sourceChartConfig = initialChartConfig.filter(d => d.id === each.id);\n \t\t\tconst prevChartConfig = find(initialChartConfig, d => d.id === each.id);\n \t\t\tif (isDefined(prevChartConfig) && prevChartConfig.yPanEnabled) {\n \t\t\t\teach.yScale.domain(prevChartConfig.yScale.domain());\n \t\t\t\teach.yPanEnabled = prevChartConfig.yPanEnabled;\n \t\t\t}\n \t\t});\n }\n */\n\t\t\t\tthis.clearThreeCanvas();\n\n\t\t\t\tthis.setState(state);\n\t\t\t}\n\t\t\tthis.fullData = fullData;\n\t\t}\n\t\t/*\n componentDidUpdate(prevProps, prevState) {\n \tconsole.error(this.state.chartConfig, this.state.chartConfig.map(d => d.yScale.domain()));\n }\n */\n\n\t}, {\n\t\tkey: \"resetYDomain\",\n\t\tvalue: function resetYDomain(chartId) {\n\t\t\tvar chartConfig = this.state.chartConfig;\n\n\t\t\tvar changed = false;\n\t\t\tvar newChartConfig = chartConfig.map(function (each) {\n\t\t\t\tif ((isNotDefined(chartId) || each.id === chartId) && !shallowEqual(each.yScale.domain(), each.realYDomain)) {\n\t\t\t\t\tchanged = true;\n\t\t\t\t\treturn _extends({}, each, {\n\t\t\t\t\t\tyScale: each.yScale.domain(each.realYDomain),\n\t\t\t\t\t\tyPanEnabled: false\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn each;\n\t\t\t});\n\n\t\t\tif (changed) {\n\t\t\t\tthis.clearThreeCanvas();\n\t\t\t\tthis.setState({\n\t\t\t\t\tchartConfig: newChartConfig\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"shouldComponentUpdate\",\n\t\tvalue: function shouldComponentUpdate() {\n\t\t\t// console.log(\"Happneing.....\", !this.panInProgress)\n\t\t\treturn !this.panInProgress;\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props2 = this.props,\n\t\t\t type = _props2.type,\n\t\t\t height = _props2.height,\n\t\t\t width = _props2.width,\n\t\t\t margin = _props2.margin,\n\t\t\t className = _props2.className,\n\t\t\t zIndex = _props2.zIndex,\n\t\t\t defaultFocus = _props2.defaultFocus,\n\t\t\t ratio = _props2.ratio,\n\t\t\t mouseMoveEvent = _props2.mouseMoveEvent,\n\t\t\t panEvent = _props2.panEvent,\n\t\t\t zoomEvent = _props2.zoomEvent;\n\t\t\tvar _props3 = this.props,\n\t\t\t useCrossHairStyleCursor = _props3.useCrossHairStyleCursor,\n\t\t\t onSelect = _props3.onSelect;\n\t\t\tvar _state8 = this.state,\n\t\t\t plotData = _state8.plotData,\n\t\t\t xScale = _state8.xScale,\n\t\t\t xAccessor = _state8.xAccessor,\n\t\t\t chartConfig = _state8.chartConfig;\n\n\t\t\tvar dimensions = getDimensions(this.props);\n\n\t\t\tvar interaction = isInteractionEnabled(xScale, xAccessor, plotData);\n\n\t\t\tvar cursorStyle = useCrossHairStyleCursor && interaction;\n\t\t\tvar cursor = getCursorStyle();\n\t\t\treturn React.createElement(\n\t\t\t\t\"div\",\n\t\t\t\t{ style: { position: \"relative\", width: width, height: height }, className: className, onClick: onSelect },\n\t\t\t\tReact.createElement(CanvasContainer, { ref: this.saveCanvasContainerNode,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tratio: ratio,\n\t\t\t\t\twidth: width, height: height, zIndex: zIndex }),\n\t\t\t\tReact.createElement(\n\t\t\t\t\t\"svg\",\n\t\t\t\t\t{ className: className, width: width, height: height, style: { position: \"absolute\", zIndex: zIndex + 5 } },\n\t\t\t\t\tcursor,\n\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t\"defs\",\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t\t\"clipPath\",\n\t\t\t\t\t\t\t{ id: \"chart-area-clip\" },\n\t\t\t\t\t\t\tReact.createElement(\"rect\", { x: \"0\", y: \"0\", width: dimensions.width, height: dimensions.height })\n\t\t\t\t\t\t),\n\t\t\t\t\t\tchartConfig.map(function (each, idx) {\n\t\t\t\t\t\t\treturn React.createElement(\n\t\t\t\t\t\t\t\t\"clipPath\",\n\t\t\t\t\t\t\t\t{ key: idx, id: \"chart-area-clip-\" + each.id },\n\t\t\t\t\t\t\t\tReact.createElement(\"rect\", { x: \"0\", y: \"0\", width: each.width, height: each.height })\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t),\n\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t\"g\",\n\t\t\t\t\t\t{ transform: \"translate(\" + (margin.left + 0.5) + \", \" + (margin.top + 0.5) + \")\" },\n\t\t\t\t\t\tReact.createElement(EventCapture, {\n\t\t\t\t\t\t\tref: this.saveEventCaptureNode,\n\t\t\t\t\t\t\tuseCrossHairStyleCursor: cursorStyle,\n\t\t\t\t\t\t\tmouseMove: mouseMoveEvent && interaction,\n\t\t\t\t\t\t\tzoom: zoomEvent && interaction,\n\t\t\t\t\t\t\tpan: panEvent && interaction,\n\n\t\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\t\tchartConfig: chartConfig,\n\t\t\t\t\t\t\txScale: xScale,\n\t\t\t\t\t\t\txAccessor: xAccessor,\n\t\t\t\t\t\t\tfocus: defaultFocus,\n\t\t\t\t\t\t\tdisableInteraction: this.props.disableInteraction,\n\n\t\t\t\t\t\t\tgetAllPanConditions: this.getAllPanConditions,\n\t\t\t\t\t\t\tonContextMenu: this.handleContextMenu,\n\t\t\t\t\t\t\tonClick: this.handleClick,\n\t\t\t\t\t\t\tonDoubleClick: this.handleDoubleClick,\n\t\t\t\t\t\t\tonMouseDown: this.handleMouseDown,\n\t\t\t\t\t\t\tonMouseMove: this.handleMouseMove,\n\t\t\t\t\t\t\tonMouseEnter: this.handleMouseEnter,\n\t\t\t\t\t\t\tonMouseLeave: this.handleMouseLeave,\n\n\t\t\t\t\t\t\tonDragStart: this.handleDragStart,\n\t\t\t\t\t\t\tonDrag: this.handleDrag,\n\t\t\t\t\t\t\tonDragComplete: this.handleDragEnd,\n\n\t\t\t\t\t\t\tonZoom: this.handleZoom,\n\t\t\t\t\t\t\tonPinchZoom: this.handlePinchZoom,\n\t\t\t\t\t\t\tonPinchZoomEnd: this.handlePinchZoomEnd,\n\t\t\t\t\t\t\tonPan: this.handlePan,\n\t\t\t\t\t\t\tonPanEnd: this.handlePanEnd\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t\t\"g\",\n\t\t\t\t\t\t\t{ className: \"react-stockcharts-avoid-interaction\" },\n\t\t\t\t\t\t\tthis.props.children\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn ChartCanvas;\n}(Component);\n\nfunction isInteractionEnabled(xScale, xAccessor, data) {\n\tvar interaction = !isNaN(xScale(xAccessor(head(data)))) && isDefined(xScale.invert);\n\treturn interaction;\n}\n\nChartCanvas.propTypes = {\n\twidth: PropTypes.number.isRequired,\n\theight: PropTypes.number.isRequired,\n\tmargin: PropTypes.object,\n\tratio: PropTypes.number.isRequired,\n\t// interval: PropTypes.oneOf([\"D\", \"W\", \"M\"]), // ,\"m1\", \"m5\", \"m15\", \"W\", \"M\"\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]),\n\tpointsPerPxThreshold: PropTypes.number,\n\tminPointsPerPxThreshold: PropTypes.number,\n\tdata: PropTypes.array.isRequired,\n\t// initialDisplay: PropTypes.number,\n\txAccessor: PropTypes.func,\n\txExtents: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n\tzoomAnchor: PropTypes.func,\n\n\tclassName: PropTypes.string,\n\tseriesName: PropTypes.string.isRequired,\n\tzIndex: PropTypes.number,\n\tchildren: PropTypes.node.isRequired,\n\txScale: PropTypes.func.isRequired,\n\tpostCalculator: PropTypes.func,\n\tflipXScale: PropTypes.bool,\n\tuseCrossHairStyleCursor: PropTypes.bool,\n\tpadding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n\t\tleft: PropTypes.number,\n\t\tright: PropTypes.number\n\t})]),\n\tdefaultFocus: PropTypes.bool,\n\tzoomMultiplier: PropTypes.number,\n\tonLoadMore: PropTypes.func,\n\tdisplayXAccessor: function displayXAccessor(props, propName /* , componentName */) {\n\t\tif (isNotDefined(props[propName])) {\n\t\t\tconsole.warn(\"`displayXAccessor` is not defined,\" + \" will use the value from `xAccessor` as `displayXAccessor`.\" + \" This might be ok if you do not use a discontinuous scale\" + \" but if you do, provide a `displayXAccessor` prop to `ChartCanvas`\");\n\t\t} else if (typeof props[propName] !== \"function\") {\n\t\t\treturn new Error(\"displayXAccessor has to be a function\");\n\t\t}\n\t},\n\tmouseMoveEvent: PropTypes.bool,\n\tpanEvent: PropTypes.bool,\n\tclamp: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.func]),\n\tzoomEvent: PropTypes.bool,\n\tonSelect: PropTypes.func,\n\tmaintainPointsPerPixelOnResize: PropTypes.bool,\n\tdisableInteraction: PropTypes.bool\n};\n\nChartCanvas.defaultProps = {\n\tmargin: { top: 20, right: 30, bottom: 30, left: 80 },\n\ttype: \"hybrid\",\n\tpointsPerPxThreshold: 2,\n\tminPointsPerPxThreshold: 1 / 100,\n\tclassName: \"react-stockchart\",\n\tzIndex: 1,\n\txExtents: [min, max],\n\tpostCalculator: identity,\n\tpadding: 0,\n\txAccessor: identity,\n\tflipXScale: false,\n\tuseCrossHairStyleCursor: true,\n\tdefaultFocus: true,\n\tonLoadMore: noop,\n\tonSelect: noop,\n\tmouseMoveEvent: true,\n\tpanEvent: true,\n\tzoomEvent: true,\n\tzoomMultiplier: 1.1,\n\tclamp: false,\n\tzoomAnchor: mouseBasedZoomAnchor,\n\tmaintainPointsPerPixelOnResize: true,\n\t// ratio: 2,\n\tdisableInteraction: false\n};\n\nChartCanvas.childContextTypes = {\n\tplotData: PropTypes.array,\n\tfullData: PropTypes.array,\n\tchartConfig: PropTypes.arrayOf(PropTypes.shape({\n\t\tid: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\t\torigin: PropTypes.arrayOf(PropTypes.number).isRequired,\n\t\tpadding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n\t\t\ttop: PropTypes.number,\n\t\t\tbottom: PropTypes.number\n\t\t})]),\n\t\tyExtents: PropTypes.arrayOf(PropTypes.func),\n\t\tyExtentsProvider: PropTypes.func,\n\t\tyScale: PropTypes.func.isRequired,\n\t\tmouseCoordinates: PropTypes.shape({\n\t\t\tat: PropTypes.string,\n\t\t\tformat: PropTypes.func\n\t\t}),\n\t\twidth: PropTypes.number.isRequired,\n\t\theight: PropTypes.number.isRequired\n\t})).isRequired,\n\txScale: PropTypes.func.isRequired,\n\txAccessor: PropTypes.func.isRequired,\n\tdisplayXAccessor: PropTypes.func.isRequired,\n\twidth: PropTypes.number.isRequired,\n\theight: PropTypes.number.isRequired,\n\tchartCanvasType: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n\tmargin: PropTypes.object.isRequired,\n\tratio: PropTypes.number.isRequired,\n\tgetCanvasContexts: PropTypes.func,\n\txAxisZoom: PropTypes.func,\n\tyAxisZoom: PropTypes.func,\n\tamIOnTop: PropTypes.func,\n\tredraw: PropTypes.func,\n\tsubscribe: PropTypes.func,\n\tunsubscribe: PropTypes.func,\n\tsetCursorClass: PropTypes.func,\n\tgenerateSubscriptionId: PropTypes.func,\n\tgetMutableState: PropTypes.func\n};\n\nChartCanvas.ohlcv = function (d) {\n\treturn { date: d.date, open: d.open, high: d.high, low: d.low, close: d.close, volume: d.volume };\n};\n\nexport default ChartCanvas;\n","import { getCurrentItem } from \"./ChartDataUtil\";\n\nimport { last } from \"./index\";\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n\n/* eslint-disable no-unused-vars */\n\nexport function mouseBasedZoomAnchor(_ref) {\n\tvar xScale = _ref.xScale,\n\t xAccessor = _ref.xAccessor,\n\t mouseXY = _ref.mouseXY,\n\t plotData = _ref.plotData,\n\t fullData = _ref.fullData;\n\n\tvar currentItem = getCurrentItem(xScale, xAccessor, mouseXY, plotData);\n\treturn xAccessor(currentItem);\n}\n\nexport function lastVisibleItemBasedZoomAnchor(_ref2) {\n\tvar xScale = _ref2.xScale,\n\t xAccessor = _ref2.xAccessor,\n\t mouseXY = _ref2.mouseXY,\n\t plotData = _ref2.plotData,\n\t fullData = _ref2.fullData;\n\n\tvar lastItem = last(plotData);\n\treturn xAccessor(lastItem);\n}\n\nexport function rightDomainBasedZoomAnchor(_ref3) {\n\tvar xScale = _ref3.xScale,\n\t xAccessor = _ref3.xAccessor,\n\t mouseXY = _ref3.mouseXY,\n\t plotData = _ref3.plotData,\n\t fullData = _ref3.fullData;\n\n\tvar _xScale$domain = xScale.domain(),\n\t _xScale$domain2 = _slicedToArray(_xScale$domain, 2),\n\t end = _xScale$domain2[1];\n\n\treturn end;\n}\n/* eslint-enable no-unused-vars */\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { isNotDefined, isDefined, noop, functor, identity } from \"./utils\";\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar aliases = {\n\tmouseleave: \"mousemove\", // to draw interactive after mouse exit\n\tpanend: \"pan\",\n\tpinchzoom: \"pan\",\n\tmousedown: \"mousemove\",\n\tclick: \"mousemove\",\n\tcontextmenu: \"mousemove\",\n\tdblclick: \"mousemove\",\n\tdragstart: \"drag\",\n\tdragend: \"drag\",\n\tdragcancel: \"drag\"\n};\n\nvar GenericComponent = function (_Component) {\n\t_inherits(GenericComponent, _Component);\n\n\tfunction GenericComponent(props, context) {\n\t\t_classCallCheck(this, GenericComponent);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GenericComponent.__proto__ || Object.getPrototypeOf(GenericComponent)).call(this, props, context));\n\n\t\t_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);\n\t\t_this.getMoreProps = _this.getMoreProps.bind(_this);\n\t\t_this.listener = _this.listener.bind(_this);\n\t\t_this.draw = _this.draw.bind(_this);\n\t\t_this.updateMoreProps = _this.updateMoreProps.bind(_this);\n\t\t_this.evaluateType = _this.evaluateType.bind(_this);\n\t\t_this.isHover = _this.isHover.bind(_this);\n\t\t_this.preCanvasDraw = _this.preCanvasDraw.bind(_this);\n\t\t_this.postCanvasDraw = _this.postCanvasDraw.bind(_this);\n\t\t_this.getPanConditions = _this.getPanConditions.bind(_this);\n\t\t_this.shouldTypeProceed = _this.shouldTypeProceed.bind(_this);\n\t\t_this.preEvaluate = _this.preEvaluate.bind(_this);\n\n\t\tvar generateSubscriptionId = context.generateSubscriptionId;\n\n\t\t_this.suscriberId = generateSubscriptionId();\n\n\t\t_this.moreProps = {};\n\n\t\t_this.state = {\n\t\t\tupdateCount: 0\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(GenericComponent, [{\n\t\tkey: \"updateMoreProps\",\n\t\tvalue: function updateMoreProps(moreProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\tObject.keys(moreProps).forEach(function (key) {\n\t\t\t\t_this2.moreProps[key] = moreProps[key];\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"shouldTypeProceed\",\n\t\tvalue: function shouldTypeProceed() {\n\t\t\treturn true;\n\t\t}\n\t}, {\n\t\tkey: \"preEvaluate\",\n\t\tvalue: function preEvaluate() {}\n\t}, {\n\t\tkey: \"listener\",\n\t\tvalue: function listener(type, moreProps, state, e) {\n\t\t\t// console.log(e.shiftKey)\n\t\t\tif (isDefined(moreProps)) {\n\t\t\t\tthis.updateMoreProps(moreProps);\n\t\t\t}\n\t\t\tthis.evaluationInProgress = true;\n\t\t\tthis.evaluateType(type, e);\n\t\t\tthis.evaluationInProgress = false;\n\t\t}\n\t}, {\n\t\tkey: \"evaluateType\",\n\t\tvalue: function evaluateType(type, e) {\n\t\t\tvar newType = aliases[type] || type;\n\t\t\tvar proceed = this.props.drawOn.indexOf(newType) > -1;\n\n\t\t\t// console.log(\"type ->\", type, proceed);\n\n\t\t\tif (!proceed) return;\n\t\t\t// const moreProps = this.getMoreProps();\n\t\t\tthis.preEvaluate(type, this.moreProps, e);\n\t\t\tif (!this.shouldTypeProceed(type, this.moreProps)) return;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase \"zoom\":\n\t\t\t\tcase \"mouseenter\":\n\t\t\t\t\t// DO NOT DRAW FOR THESE EVENTS\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"mouseleave\":\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moreProps.hovering = false;\n\t\t\t\t\t\tvar moreProps = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.props.onUnHover) {\n\t\t\t\t\t\t\tthis.props.onUnHover(moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"contextmenu\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onContextMenu) {\n\t\t\t\t\t\t\tthis.props.onContextMenu(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.moreProps.hovering && this.props.onContextMenuWhenHover) {\n\t\t\t\t\t\t\tthis.props.onContextMenuWhenHover(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"mousedown\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onMouseDown) {\n\t\t\t\t\t\t\tthis.props.onMouseDown(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"click\":\n\t\t\t\t\t{\n\t\t\t\t\t\tvar _moreProps = this.getMoreProps();\n\t\t\t\t\t\tif (this.moreProps.hovering) {\n\t\t\t\t\t\t\t// console.error(\"TODO use this only for SAR, Line series\")\n\t\t\t\t\t\t\tthis.props.onClickWhenHover(_moreProps, e);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.props.onClickOutside(_moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.props.onClick) {\n\t\t\t\t\t\t\tthis.props.onClick(_moreProps, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"mousemove\":\n\t\t\t\t\t{\n\n\t\t\t\t\t\tvar prevHover = this.moreProps.hovering;\n\t\t\t\t\t\tthis.moreProps.hovering = this.isHover(e);\n\n\t\t\t\t\t\tvar _context = this.context,\n\t\t\t\t\t\t amIOnTop = _context.amIOnTop,\n\t\t\t\t\t\t setCursorClass = _context.setCursorClass;\n\n\n\t\t\t\t\t\tif (this.moreProps.hovering && !this.props.selected\n\t\t\t\t\t\t/* && !prevHover */\n\t\t\t\t\t\t&& amIOnTop(this.suscriberId) && isDefined(this.props.onHover)) {\n\t\t\t\t\t\t\tsetCursorClass(\"react-stockcharts-pointer-cursor\");\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\t\t} else if (this.moreProps.hovering && this.props.selected && amIOnTop(this.suscriberId)) {\n\t\t\t\t\t\t\tsetCursorClass(this.props.interactiveCursorClass);\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\t\t} else if (prevHover && !this.moreProps.hovering && this.iSetTheCursorClass) {\n\t\t\t\t\t\t\tthis.iSetTheCursorClass = false;\n\t\t\t\t\t\t\tsetCursorClass(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar _moreProps2 = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.moreProps.hovering && !prevHover) {\n\t\t\t\t\t\t\tif (this.props.onHover) {\n\t\t\t\t\t\t\t\tthis.props.onHover(_moreProps2, e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (prevHover && !this.moreProps.hovering) {\n\t\t\t\t\t\t\tif (this.props.onUnHover) {\n\t\t\t\t\t\t\t\tthis.props.onUnHover(_moreProps2, e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.props.onMouseMove) {\n\t\t\t\t\t\t\tthis.props.onMouseMove(_moreProps2, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dblclick\":\n\t\t\t\t\t{\n\t\t\t\t\t\tvar _moreProps3 = this.getMoreProps();\n\n\t\t\t\t\t\tif (this.props.onDoubleClick) {\n\t\t\t\t\t\t\tthis.props.onDoubleClick(_moreProps3, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.moreProps.hovering && this.props.onDoubleClickWhenHover) {\n\t\t\t\t\t\t\tthis.props.onDoubleClickWhenHover(_moreProps3, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"pan\":\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moreProps.hovering = false;\n\t\t\t\t\t\tif (this.props.onPan) {\n\t\t\t\t\t\t\tthis.props.onPan(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"panend\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.props.onPanEnd) {\n\t\t\t\t\t\t\tthis.props.onPanEnd(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragstart\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.getPanConditions().draggable) {\n\t\t\t\t\t\t\tvar _amIOnTop = this.context.amIOnTop;\n\n\t\t\t\t\t\t\tif (_amIOnTop(this.suscriberId)) {\n\t\t\t\t\t\t\t\tthis.dragInProgress = true;\n\t\t\t\t\t\t\t\tthis.props.onDragStart(this.getMoreProps(), e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.someDragInProgress = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"drag\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress && this.props.onDrag) {\n\t\t\t\t\t\t\tthis.props.onDrag(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragend\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress && this.props.onDragComplete) {\n\t\t\t\t\t\t\tthis.props.onDragComplete(this.getMoreProps(), e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.dragInProgress = false;\n\t\t\t\t\t\tthis.someDragInProgress = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"dragcancel\":\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.dragInProgress || this.iSetTheCursorClass) {\n\t\t\t\t\t\t\tvar _setCursorClass = this.context.setCursorClass;\n\n\t\t\t\t\t\t\t_setCursorClass(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n }\n default:\n break;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"isHover\",\n\t\tvalue: function isHover(e) {\n\t\t\treturn isDefined(this.props.isHover) ? this.props.isHover(this.getMoreProps(), e) : false;\n\t\t}\n\t}, {\n\t\tkey: \"getPanConditions\",\n\t\tvalue: function getPanConditions() {\n\t\t\tvar draggable = !!(this.props.selected && this.moreProps.hovering) || this.props.enableDragOnHover && this.moreProps.hovering;\n\n\t\t\treturn {\n\t\t\t\tdraggable: draggable,\n\t\t\t\tpanEnabled: !this.props.disablePan\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"draw\",\n\t\tvalue: function draw() {\n\t\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { force: false },\n\t\t\t trigger = _ref.trigger,\n\t\t\t force = _ref.force;\n\n\t\t\tvar type = aliases[trigger] || trigger;\n\t\t\tvar proceed = this.props.drawOn.indexOf(type) > -1;\n\n\t\t\tif (proceed || this.props.selected /* this is to draw as soon as you select */\n\t\t\t|| force) {\n\t\t\t\tvar chartCanvasType = this.context.chartCanvasType;\n\t\t\t\tvar canvasDraw = this.props.canvasDraw;\n\n\n\t\t\t\tif (isNotDefined(canvasDraw) || chartCanvasType === \"svg\") {\n\t\t\t\t\tvar updateCount = this.state.updateCount;\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tupdateCount: updateCount + 1\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.drawOnCanvas();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillMount\",\n\t\tvalue: function componentWillMount() {\n\t\t\tvar _context2 = this.context,\n\t\t\t subscribe = _context2.subscribe,\n\t\t\t chartId = _context2.chartId;\n\t\t\tvar _props = this.props,\n\t\t\t clip = _props.clip,\n\t\t\t edgeClip = _props.edgeClip;\n\n\n\t\t\tsubscribe(this.suscriberId, {\n\t\t\t\tchartId: chartId, clip: clip, edgeClip: edgeClip,\n\t\t\t\tlistener: this.listener,\n\t\t\t\tdraw: this.draw,\n\t\t\t\tgetPanConditions: this.getPanConditions\n\t\t\t});\n\t\t\tthis.componentWillReceiveProps(this.props, this.context);\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\tvar unsubscribe = this.context.unsubscribe;\n\n\t\t\tunsubscribe(this.suscriberId);\n\t\t\tif (this.iSetTheCursorClass) {\n\t\t\t\tvar setCursorClass = this.context.setCursorClass;\n\n\t\t\t\tsetCursorClass(null);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.componentDidUpdate(this.props);\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate(prevProps) {\n\t\t\tvar chartCanvasType = this.context.chartCanvasType;\n\t\t\tvar _props2 = this.props,\n\t\t\t canvasDraw = _props2.canvasDraw,\n\t\t\t selected = _props2.selected,\n\t\t\t interactiveCursorClass = _props2.interactiveCursorClass;\n\n\n\t\t\tif (prevProps.selected !== selected) {\n\t\t\t\tvar setCursorClass = this.context.setCursorClass;\n\n\t\t\t\tif (selected && this.moreProps.hovering) {\n\t\t\t\t\tthis.iSetTheCursorClass = true;\n\t\t\t\t\tsetCursorClass(interactiveCursorClass);\n\t\t\t\t} else {\n\t\t\t\t\tthis.iSetTheCursorClass = false;\n\t\t\t\t\tsetCursorClass(null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isDefined(canvasDraw) && !this.evaluationInProgress\n\t\t\t// && !(this.someDragInProgress && this.props.selected)\n\t\t\t/*\n prevent double draw of interactive elements\n during dragging / hover / click etc.\n */\n\t\t\t&& chartCanvasType !== \"svg\") {\n\n\t\t\t\tthis.updateMoreProps(this.moreProps);\n\t\t\t\tthis.drawOnCanvas();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillReceiveProps\",\n\t\tvalue: function componentWillReceiveProps(nextProps, nextContext) {\n\t\t\tvar xScale = nextContext.xScale,\n\t\t\t plotData = nextContext.plotData,\n\t\t\t chartConfig = nextContext.chartConfig,\n\t\t\t getMutableState = nextContext.getMutableState;\n\n\n\t\t\tthis.props.debug(nextContext);\n\t\t\tthis.moreProps = _extends({}, this.moreProps, getMutableState(), {\n\t\t\t\t/*\n ^ this is so\n mouseXY, currentCharts, currentItem are available to\n newly created components like MouseHoverText which\n is created right after a new interactive object is drawn\n */\n\t\t\t\txScale: xScale, plotData: plotData, chartConfig: chartConfig\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: \"getMoreProps\",\n\t\tvalue: function getMoreProps() {\n\t\t\tvar _context3 = this.context,\n\t\t\t xScale = _context3.xScale,\n\t\t\t plotData = _context3.plotData,\n\t\t\t chartConfig = _context3.chartConfig,\n\t\t\t morePropsDecorator = _context3.morePropsDecorator,\n\t\t\t xAccessor = _context3.xAccessor,\n\t\t\t displayXAccessor = _context3.displayXAccessor,\n\t\t\t width = _context3.width,\n\t\t\t height = _context3.height;\n\t\t\tvar _context4 = this.context,\n\t\t\t chartId = _context4.chartId,\n\t\t\t fullData = _context4.fullData;\n\n\n\t\t\tvar moreProps = _extends({\n\t\t\t\txScale: xScale, plotData: plotData, chartConfig: chartConfig,\n\t\t\t\txAccessor: xAccessor, displayXAccessor: displayXAccessor,\n\t\t\t\twidth: width, height: height,\n\t\t\t\tchartId: chartId,\n\t\t\t\tfullData: fullData\n\t\t\t}, this.moreProps);\n\n\t\t\treturn (morePropsDecorator || identity)(moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"preCanvasDraw\",\n\t\tvalue: function preCanvasDraw() {\n\t\t\t// do nothing\n\t\t}\n\t}, {\n\t\tkey: \"postCanvasDraw\",\n\t\tvalue: function postCanvasDraw() {}\n\t}, {\n\t\tkey: \"drawOnCanvas\",\n\t\tvalue: function drawOnCanvas() {\n\t\t\tvar _props3 = this.props,\n\t\t\t canvasDraw = _props3.canvasDraw,\n\t\t\t canvasToDraw = _props3.canvasToDraw;\n\t\t\tvar getCanvasContexts = this.context.getCanvasContexts;\n\n\n\t\t\tvar moreProps = this.getMoreProps();\n\n\t\t\tvar ctx = canvasToDraw(getCanvasContexts());\n\n\t\t\tthis.preCanvasDraw(ctx, moreProps);\n\t\t\tcanvasDraw(ctx, moreProps);\n\t\t\tthis.postCanvasDraw(ctx, moreProps);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _context5 = this.context,\n\t\t\t chartCanvasType = _context5.chartCanvasType,\n\t\t\t chartId = _context5.chartId;\n\t\t\tvar _props4 = this.props,\n\t\t\t canvasDraw = _props4.canvasDraw,\n\t\t\t clip = _props4.clip,\n\t\t\t svgDraw = _props4.svgDraw;\n\n\n\t\t\tif (isDefined(canvasDraw) && chartCanvasType !== \"svg\") {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar suffix = isDefined(chartId) ? \"-\" + chartId : \"\";\n\n\t\t\tvar style = clip ? { \"clipPath\": \"url(#chart-area-clip\" + suffix + \")\" } : null;\n\n\t\t\treturn React.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ style: style },\n\t\t\t\tsvgDraw(this.getMoreProps())\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn GenericComponent;\n}(Component);\n\nGenericComponent.propTypes = {\n\tsvgDraw: PropTypes.func.isRequired,\n\tcanvasDraw: PropTypes.func,\n\n\tdrawOn: PropTypes.array.isRequired,\n\n\tclip: PropTypes.bool.isRequired,\n\tedgeClip: PropTypes.bool.isRequired,\n\tinteractiveCursorClass: PropTypes.string,\n\n\tselected: PropTypes.bool.isRequired,\n\tenableDragOnHover: PropTypes.bool.isRequired,\n\tdisablePan: PropTypes.bool.isRequired,\n\n\tcanvasToDraw: PropTypes.func.isRequired,\n\n\tisHover: PropTypes.func,\n\n\tonClick: PropTypes.func,\n\tonClickWhenHover: PropTypes.func,\n\tonClickOutside: PropTypes.func,\n\n\tonPan: PropTypes.func,\n\tonPanEnd: PropTypes.func,\n\tonDragStart: PropTypes.func,\n\tonDrag: PropTypes.func,\n\tonDragComplete: PropTypes.func,\n\tonDoubleClick: PropTypes.func,\n\tonDoubleClickWhenHover: PropTypes.func,\n\tonContextMenu: PropTypes.func,\n\tonContextMenuWhenHover: PropTypes.func,\n\tonMouseMove: PropTypes.func,\n\tonMouseDown: PropTypes.func,\n\tonHover: PropTypes.func,\n\tonUnHover: PropTypes.func,\n\n\tdebug: PropTypes.func\n\t// owner: PropTypes.string.isRequired,\n};\n\nGenericComponent.defaultProps = {\n\tsvgDraw: functor(null),\n\tdraw: [],\n\tcanvasToDraw: function canvasToDraw(contexts) {\n\t\treturn contexts.mouseCoord;\n\t},\n\tclip: true,\n\tedgeClip: false,\n\tselected: false,\n\tdisablePan: false,\n\tenableDragOnHover: false,\n\n\tonClickWhenHover: noop,\n\tonClickOutside: noop,\n\tonDragStart: noop,\n\tonMouseMove: noop,\n\tonMouseDown: noop,\n\tdebug: noop\n};\n\nGenericComponent.contextTypes = {\n\twidth: PropTypes.number.isRequired,\n\theight: PropTypes.number.isRequired,\n\tmargin: PropTypes.object.isRequired,\n\tchartId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\tgetCanvasContexts: PropTypes.func,\n\n\tchartCanvasType: PropTypes.string,\n\txScale: PropTypes.func.isRequired,\n\txAccessor: PropTypes.func.isRequired,\n\tdisplayXAccessor: PropTypes.func.isRequired,\n\tplotData: PropTypes.array.isRequired,\n\tfullData: PropTypes.array.isRequired,\n\n\tchartConfig: PropTypes.oneOfType([PropTypes.array, PropTypes.object]).isRequired,\n\n\tmorePropsDecorator: PropTypes.func,\n\tgenerateSubscriptionId: PropTypes.func,\n\tgetMutableState: PropTypes.func.isRequired,\n\n\tamIOnTop: PropTypes.func.isRequired,\n\tsubscribe: PropTypes.func.isRequired,\n\tunsubscribe: PropTypes.func.isRequired,\n\tsetCursorClass: PropTypes.func.isRequired\n};\n\nexport default GenericComponent;\n\nexport function getAxisCanvas(contexts) {\n\treturn contexts.axes;\n}\n\nexport function getMouseCanvas(contexts) {\n\treturn contexts.mouseCoord;\n}\n","import PropTypes from \"prop-types\";\nimport GenericComponent from \"./GenericComponent\";\nimport { isDefined, find } from \"./utils\";\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\nvar ALWAYS_TRUE_TYPES = [\"drag\", \"dragend\"];\n\nvar GenericChartComponent = function (_GenericComponent) {\n\t_inherits(GenericChartComponent, _GenericComponent);\n\n\tfunction GenericChartComponent(props, context) {\n\t\t_classCallCheck(this, GenericChartComponent);\n\n\t\tvar _this = _possibleConstructorReturn(this, (GenericChartComponent.__proto__ || Object.getPrototypeOf(GenericChartComponent)).call(this, props, context));\n\n\t\t_this.preCanvasDraw = _this.preCanvasDraw.bind(_this);\n\t\t_this.postCanvasDraw = _this.postCanvasDraw.bind(_this);\n\t\t_this.shouldTypeProceed = _this.shouldTypeProceed.bind(_this);\n\t\t_this.preEvaluate = _this.preEvaluate.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(GenericChartComponent, [{\n\t\tkey: \"preCanvasDraw\",\n\t\tvalue: function preCanvasDraw(ctx, moreProps) {\n\t\t\t_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), \"preCanvasDraw\", this).call(this, ctx, moreProps);\n\t\t\tctx.save();\n\t\t\tvar _context = this.context,\n\t\t\t margin = _context.margin,\n\t\t\t ratio = _context.ratio;\n\t\t\tvar chartConfig = moreProps.chartConfig;\n\n\n\t\t\tvar canvasOriginX = 0.5 * ratio + chartConfig.origin[0] + margin.left;\n\t\t\tvar canvasOriginY = 0.5 * ratio + chartConfig.origin[1] + margin.top;\n\n\t\t\tvar _moreProps$chartConfi = moreProps.chartConfig,\n\t\t\t width = _moreProps$chartConfi.width,\n\t\t\t height = _moreProps$chartConfi.height;\n\t\t\tvar _props = this.props,\n\t\t\t clip = _props.clip,\n\t\t\t edgeClip = _props.edgeClip;\n\n\n\t\t\tctx.setTransform(1, 0, 0, 1, 0, 0);\n\t\t\tctx.scale(ratio, ratio);\n\t\t\tif (edgeClip) {\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.rect(-1, canvasOriginY - 10, width + margin.left + margin.right + 1, height + 20);\n\t\t\t\tctx.clip();\n\t\t\t}\n\n\t\t\tctx.translate(canvasOriginX, canvasOriginY);\n\n\t\t\tif (clip) {\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.rect(-1, -1, width + 1, height + 1);\n\t\t\t\tctx.clip();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"postCanvasDraw\",\n\t\tvalue: function postCanvasDraw(ctx, moreProps) {\n\t\t\t_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), \"postCanvasDraw\", this).call(this, ctx, moreProps);\n\t\t\tctx.restore();\n\t\t}\n\t}, {\n\t\tkey: \"updateMoreProps\",\n\t\tvalue: function updateMoreProps(moreProps) {\n\t\t\t_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), \"updateMoreProps\", this).call(this, moreProps);\n\t\t\tvar chartConfigList = moreProps.chartConfig;\n\n\n\t\t\tif (chartConfigList && Array.isArray(chartConfigList)) {\n\t\t\t\tvar chartId = this.context.chartId;\n\n\t\t\t\tvar chartConfig = find(chartConfigList, function (each) {\n\t\t\t\t\treturn each.id === chartId;\n\t\t\t\t});\n\t\t\t\tthis.moreProps.chartConfig = chartConfig;\n\t\t\t}\n\t\t\tif (isDefined(this.moreProps.chartConfig)) {\n\t\t\t\tvar _moreProps$chartConfi2 = _slicedToArray(this.moreProps.chartConfig.origin, 2),\n\t\t\t\t ox = _moreProps$chartConfi2[0],\n\t\t\t\t oy = _moreProps$chartConfi2[1];\n\n\t\t\t\tif (isDefined(moreProps.mouseXY)) {\n\t\t\t\t\tvar _moreProps$mouseXY = _slicedToArray(moreProps.mouseXY, 2),\n\t\t\t\t\t x = _moreProps$mouseXY[0],\n\t\t\t\t\t y = _moreProps$mouseXY[1];\n\n\t\t\t\t\tthis.moreProps.mouseXY = [x - ox, y - oy];\n\t\t\t\t}\n\t\t\t\tif (isDefined(moreProps.startPos)) {\n\t\t\t\t\tvar _moreProps$startPos = _slicedToArray(moreProps.startPos, 2),\n\t\t\t\t\t _x = _moreProps$startPos[0],\n\t\t\t\t\t _y = _moreProps$startPos[1];\n\n\t\t\t\t\tthis.moreProps.startPos = [_x - ox, _y - oy];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"preEvaluate\",\n\t\tvalue: function preEvaluate() /* type, moreProps */{\n\t\t\t/* if (\n \ttype === \"mousemove\"\n \t&& this.props.onMouseMove\n \t&& isDefined(moreProps)\n \t&& isDefined(moreProps.currentCharts)\n ) {\n \tif (moreProps.currentCharts.indexOf(this.context.chartId) === -1) {\n \t\tmoreProps.show = false;\n \t}\n } */\n\t\t}\n\t}, {\n\t\tkey: \"shouldTypeProceed\",\n\t\tvalue: function shouldTypeProceed(type, moreProps) {\n\t\t\tif ((type === \"mousemove\" || type === \"click\") && this.props.disablePan) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (ALWAYS_TRUE_TYPES.indexOf(type) === -1 && isDefined(moreProps) && isDefined(moreProps.currentCharts)) {\n\t\t\t\treturn moreProps.currentCharts.indexOf(this.context.chartId) > -1;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t}]);\n\n\treturn GenericChartComponent;\n}(GenericComponent);\n\nGenericChartComponent.propTypes = GenericComponent.propTypes;\n\nGenericChartComponent.defaultProps = GenericComponent.defaultProps;\n\nGenericChartComponent.contextTypes = _extends({}, GenericComponent.contextTypes, {\n\tcanvasOriginX: PropTypes.number,\n\tcanvasOriginY: PropTypes.number,\n\tchartId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\tchartConfig: PropTypes.object.isRequired,\n\tratio: PropTypes.number.isRequired\n});\n\nexport default GenericChartComponent;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport PureComponent from \"./utils/PureComponent\";\n\nimport { hexToRGBA, isDefined } from \"./utils\";\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\nvar BackgroundText = function (_PureComponent) {\n\t_inherits(BackgroundText, _PureComponent);\n\n\tfunction BackgroundText() {\n\t\t_classCallCheck(this, BackgroundText);\n\n\t\treturn _possibleConstructorReturn(this, (BackgroundText.__proto__ || Object.getPrototypeOf(BackgroundText)).apply(this, arguments));\n\t}\n\n\t_createClass(BackgroundText, [{\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tif (this.context.chartCanvasType !== \"svg\" && isDefined(this.context.getCanvasContexts)) {\n\t\t\t\tvar contexts = this.context.getCanvasContexts();\n\t\t\t\tif (contexts) BackgroundText.drawOnCanvas(contexts.bg, this.props, this.context, this.props.children);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate() {\n\t\t\tthis.componentDidMount();\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar chartCanvasType = this.context.chartCanvasType;\n\n\n\t\t\tif (chartCanvasType !== \"svg\") return null;\n\n\t\t\tvar _props = this.props,\n\t\t\t x = _props.x,\n\t\t\t y = _props.y,\n\t\t\t fill = _props.fill,\n\t\t\t opacity = _props.opacity,\n\t\t\t stroke = _props.stroke,\n\t\t\t strokeOpacity = _props.strokeOpacity,\n\t\t\t fontFamily = _props.fontFamily,\n\t\t\t fontSize = _props.fontSize,\n\t\t\t textAnchor = _props.textAnchor;\n\n\t\t\tvar props = { x: x, y: y, fill: fill, opacity: opacity, stroke: stroke, strokeOpacity: strokeOpacity, fontFamily: fontFamily, fontSize: fontSize, textAnchor: textAnchor };\n\t\t\treturn React.createElement(\n\t\t\t\t\"text\",\n\t\t\t\tprops,\n\t\t\t\t\"this.props.children(interval)\"\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn BackgroundText;\n}(PureComponent);\n\nBackgroundText.drawOnCanvas = function (ctx, props, _ref, getText) {\n\tvar interval = _ref.interval;\n\n\tctx.clearRect(-1, -1, ctx.canvas.width + 2, ctx.canvas.height + 2);\n\tctx.save();\n\n\tctx.setTransform(1, 0, 0, 1, 0, 0);\n\tctx.translate(0.5, 0.5);\n\n\tvar x = props.x,\n\t y = props.y,\n\t fill = props.fill,\n\t opacity = props.opacity,\n\t stroke = props.stroke,\n\t strokeOpacity = props.strokeOpacity,\n\t fontFamily = props.fontFamily,\n\t fontSize = props.fontSize,\n\t textAnchor = props.textAnchor;\n\n\n\tvar text = getText(interval);\n\n\tctx.strokeStyle = hexToRGBA(stroke, strokeOpacity);\n\n\tctx.font = fontSize + \"px \" + fontFamily;\n\tctx.fillStyle = hexToRGBA(fill, opacity);\n\tctx.textAlign = textAnchor === \"middle\" ? \"center\" : textAnchor;\n\n\tif (stroke !== \"none\") ctx.strokeText(text, x, y);\n\tctx.fillText(text, x, y);\n\n\tctx.restore();\n};\n\nBackgroundText.propTypes = {\n\tx: PropTypes.number.isRequired,\n\ty: PropTypes.number.isRequired,\n\tfontFamily: PropTypes.string,\n\tfontSize: PropTypes.number.isRequired,\n\tfill: PropTypes.string,\n\tstroke: PropTypes.string,\n\topacity: PropTypes.number,\n\tstrokeOpacity: PropTypes.number,\n\ttextAnchor: PropTypes.string,\n\tchildren: PropTypes.func\n};\n\nBackgroundText.defaultProps = {\n\topacity: 0.3,\n\tfill: \"#9E7523\",\n\tstroke: \"#9E7523\",\n\tstrokeOpacity: 1,\n\tfontFamily: \"Helvetica Neue, Helvetica, Arial, sans-serif\",\n\tfontSize: 12,\n\ttextAnchor: \"middle\"\n};\n\nBackgroundText.contextTypes = {\n\tinterval: PropTypes.string.isRequired,\n\tgetCanvasContexts: PropTypes.func,\n\tchartCanvasType: PropTypes.string\n};\n\nexport default BackgroundText;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n// import { mean } from \"d3-array\";\n\nimport { path as d3Path } from \"d3-path\";\nimport { interpolateNumber } from \"d3-interpolate\";\n\nimport { last, noop } from \"./utils\";\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nvar ZoomButtons = function (_Component) {\n\t_inherits(ZoomButtons, _Component);\n\n\tfunction ZoomButtons(props) {\n\t\t_classCallCheck(this, ZoomButtons);\n\n\t\tvar _this = _possibleConstructorReturn(this, (ZoomButtons.__proto__ || Object.getPrototypeOf(ZoomButtons)).call(this, props));\n\n\t\t_this.handleZoomOut = _this.handleZoomOut.bind(_this);\n\t\t_this.handleZoomIn = _this.handleZoomIn.bind(_this);\n\t\t_this.zoom = _this.zoom.bind(_this);\n\t\treturn _this;\n\t}\n\n\t_createClass(ZoomButtons, [{\n\t\tkey: \"zoom\",\n\t\tvalue: function zoom(direction) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar _context = this.context,\n\t\t\t xAxisZoom = _context.xAxisZoom,\n\t\t\t xScale = _context.xScale,\n\t\t\t plotData = _context.plotData,\n\t\t\t xAccessor = _context.xAccessor;\n\n\t\t\tvar cx = xScale(xAccessor(last(plotData)));\n\t\t\t// mean(xScale.range());\n\t\t\tvar zoomMultiplier = this.props.zoomMultiplier;\n\n\n\t\t\tvar c = direction > 0 ? 1 * zoomMultiplier : 1 / zoomMultiplier;\n\n\t\t\tvar _xScale$domain = xScale.domain(),\n\t\t\t _xScale$domain2 = _slicedToArray(_xScale$domain, 2),\n\t\t\t start = _xScale$domain2[0],\n\t\t\t end = _xScale$domain2[1];\n\n\t\t\tvar _xScale$range$map$map = xScale.range().map(function (x) {\n\t\t\t\treturn cx + (x - cx) * c;\n\t\t\t}).map(xScale.invert),\n\t\t\t _xScale$range$map$map2 = _slicedToArray(_xScale$range$map$map, 2),\n\t\t\t newStart = _xScale$range$map$map2[0],\n\t\t\t newEnd = _xScale$range$map$map2[1];\n\n\t\t\tvar left = interpolateNumber(start, newStart);\n\t\t\tvar right = interpolateNumber(end, newEnd);\n\n\t\t\tvar foo = [0.25, 0.3, 0.5, 0.6, 0.75, 1].map(function (i) {\n\t\t\t\treturn [left(i), right(i)];\n\t\t\t});\n\n\t\t\tthis.interval = setInterval(function () {\n\t\t\t\txAxisZoom(foo.shift());\n\t\t\t\tif (foo.length === 0) {\n\t\t\t\t\tclearInterval(_this2.interval);\n\t\t\t\t\tdelete _this2.interval;\n\t\t\t\t}\n\t\t\t}, 10);\n\t\t}\n\t}, {\n\t\tkey: \"handleZoomOut\",\n\t\tvalue: function handleZoomOut() {\n\t\t\tif (this.interval) return;\n\t\t\tthis.zoom(1);\n\t\t}\n\t}, {\n\t\tkey: \"handleZoomIn\",\n\t\tvalue: function handleZoomIn() {\n\t\t\tif (this.interval) return;\n\t\t\tthis.zoom(-1);\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar chartConfig = this.context.chartConfig;\n\t\t\tvar width = chartConfig.width,\n\t\t\t height = chartConfig.height;\n\t\t\tvar _props = this.props,\n\t\t\t size = _props.size,\n\t\t\t heightFromBase = _props.heightFromBase,\n\t\t\t rx = _props.rx,\n\t\t\t ry = _props.ry;\n\t\t\tvar _props2 = this.props,\n\t\t\t stroke = _props2.stroke,\n\t\t\t strokeOpacity = _props2.strokeOpacity,\n\t\t\t fill = _props2.fill,\n\t\t\t strokeWidth = _props2.strokeWidth,\n\t\t\t fillOpacity = _props2.fillOpacity;\n\t\t\tvar _props3 = this.props,\n\t\t\t textFill = _props3.textFill,\n\t\t\t textStrokeWidth = _props3.textStrokeWidth;\n\t\t\tvar onReset = this.props.onReset;\n\n\t\t\tvar centerX = Math.round(width / 2);\n //var y = height - heightFromBase;\n var y = -20;\n\n\t\t\tvar _size = _slicedToArray(size, 2),\n\t\t\t w = _size[0],\n\t\t\t h = _size[1];\n\n\t\t\tvar hLength = 5;\n\t\t\tvar wLength = 6;\n\n\t\t\tvar textY = Math.round(y + h / 2);\n\n\t\t\tvar resetX = centerX;\n\t\t\tvar zoomOut = d3Path();\n\t\t\tvar zoomOutX = centerX - w - 2 * strokeWidth;\n\t\t\tzoomOut.moveTo(zoomOutX - wLength, textY);\n\t\t\tzoomOut.lineTo(zoomOutX + wLength, textY);\n\t\t\tzoomOut.closePath();\n\n\t\t\tvar zoomIn = d3Path();\n\t\t\tvar zoomInX = centerX + w + 2 * strokeWidth;\n\n\t\t\tzoomIn.moveTo(zoomInX - wLength, textY);\n\t\t\tzoomIn.lineTo(zoomInX + wLength, textY);\n\n\t\t\tzoomIn.moveTo(zoomInX, textY - hLength);\n\t\t\tzoomIn.lineTo(zoomInX, textY + hLength);\n\t\t\t// zoomIn.closePath();\n\n\t\t\treturn React.createElement(\n\t\t\t\t\"g\",\n\t\t\t\t{ className: \"react-stockcharts-zoom-button\" },\n\t\t\t\tReact.createElement(\"rect\", {\n\t\t\t\t\tx: zoomOutX - w / 2,\n\t\t\t\t\ty: y,\n\t\t\t\t\trx: rx,\n\t\t\t\t\try: ry,\n\t\t\t\t\theight: h,\n\t\t\t\t\twidth: w,\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tstrokeWidth: strokeWidth\n\t\t\t\t}),\n\t\t\t\tReact.createElement(\"path\", { d: zoomOut.toString(),\n\t\t\t\t\tstroke: textFill,\n\t\t\t\t\tstrokeWidth: textStrokeWidth\n\t\t\t\t}),\n\t\t\t\tReact.createElement(\"rect\", {\n\t\t\t\t\tx: resetX - w / 2,\n\t\t\t\t\ty: y,\n\t\t\t\t\trx: rx,\n\t\t\t\t\try: ry,\n\t\t\t\t\theight: h,\n\t\t\t\t\twidth: w,\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tstrokeWidth: strokeWidth\n\t\t\t\t}),\n\t\t\t\tReact.createElement(\n\t\t\t\t\t\"g\",\n\t\t\t\t\t{ transform: \"translate (\" + resetX + \", \" + (y + h / 4) + \") scale(.14)\" },\n\t\t\t\t\tReact.createElement(\"path\", { d: \"M31 13C23.4 5.3 12.8.5 1.1.5c-23.3 0-42.3 19-42.3 42.5s18.9 42.5 42.3 42.5c13.8 0 26-6.6 33.7-16.9l-16.5-1.8C13.5 70.4 7.5 72.5 1 72.5c-16.2 0-29.3-13.2-29.3-29.4S-15.2 13.7 1 13.7c8.1 0 15.4 3.3 20.7 8.6l-10.9 11h32.5V.5L31 13z\",\n\t\t\t\t\t\tfill: textFill\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t\tReact.createElement(\"rect\", {\n\t\t\t\t\tx: zoomInX - w / 2,\n\t\t\t\t\ty: y,\n\t\t\t\t\trx: rx,\n\t\t\t\t\try: ry,\n\t\t\t\t\theight: h,\n\t\t\t\t\twidth: w,\n\t\t\t\t\tfill: fill,\n\t\t\t\t\tfillOpacity: fillOpacity,\n\t\t\t\t\tstroke: stroke,\n\t\t\t\t\tstrokeOpacity: strokeOpacity,\n\t\t\t\t\tstrokeWidth: strokeWidth\n\t\t\t\t}),\n\t\t\t\tReact.createElement(\"path\", { d: zoomIn.toString(),\n\t\t\t\t\tstroke: textFill,\n\t\t\t\t\tstrokeWidth: textStrokeWidth\n\t\t\t\t}),\n\t\t\t\tReact.createElement(\"rect\", { className: \"react-stockcharts-enable-interaction out\",\n\t\t\t\t\tonClick: this.handleZoomOut,\n\t\t\t\t\tx: zoomOutX - w / 2,\n\t\t\t\t\ty: y,\n\t\t\t\t\trx: rx,\n\t\t\t\t\try: ry,\n\t\t\t\t\theight: h,\n\t\t\t\t\twidth: w,\n\t\t\t\t\tfill: \"none\"\n\t\t\t\t}),\n\t\t\t\tReact.createElement(\"rect\", { className: \"react-stockcharts-enable-interaction reset\",\n\t\t\t\t\tonClick: onReset,\n\t\t\t\t\tx: resetX - w / 2,\n\t\t\t\t\ty: y,\n\t\t\t\t\trx: rx,\n\t\t\t\t\try: ry,\n\t\t\t\t\theight: h,\n\t\t\t\t\twidth: w,\n\t\t\t\t\tfill: \"none\"\n\t\t\t\t}),\n\t\t\t\tReact.createElement(\"rect\", { className: \"react-stockcharts-enable-interaction in\",\n\t\t\t\t\tonClick: this.handleZoomIn,\n\t\t\t\t\tx: zoomInX - w / 2,\n\t\t\t\t\ty: y,\n\t\t\t\t\trx: rx,\n\t\t\t\t\try: ry,\n\t\t\t\t\theight: h,\n\t\t\t\t\twidth: w,\n\t\t\t\t\tfill: \"none\"\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn ZoomButtons;\n}(Component);\n\nZoomButtons.propTypes = {\n\tzoomMultiplier: PropTypes.number.isRequired,\n\tsize: PropTypes.array.isRequired,\n\theightFromBase: PropTypes.number.isRequired,\n\trx: PropTypes.number.isRequired,\n\try: PropTypes.number.isRequired,\n\tstroke: PropTypes.string.isRequired,\n\tstrokeWidth: PropTypes.number.isRequired,\n\tstrokeOpacity: PropTypes.number.isRequired,\n\tfill: PropTypes.string.isRequired,\n\tfillOpacity: PropTypes.number.isRequired,\n\tfontSize: PropTypes.number.isRequired,\n\ttextDy: PropTypes.string.isRequired,\n\ttextFill: PropTypes.string.isRequired,\n\ttextStrokeWidth: PropTypes.number.isRequired,\n\tonReset: PropTypes.func\n};\n\nZoomButtons.defaultProps = {\n\tsize: [30, 24],\n\theightFromBase: 50,\n\trx: 3,\n\try: 3,\n\tstroke: \"#000000\",\n\tstrokeOpacity: 0.3,\n\tstrokeWidth: 1,\n\tfill: \"#D6D6D6\",\n\tfillOpacity: 0.4,\n\tfontSize: 16,\n\ttextDy: \".3em\",\n\ttextFill: \"#000000\",\n\ttextStrokeWidth: 2,\n\tzoomMultiplier: 1.5,\n\tonReset: noop\n};\n\nZoomButtons.contextTypes = {\n\txScale: PropTypes.func.isRequired,\n\tchartConfig: PropTypes.object.isRequired,\n\tplotData: PropTypes.array.isRequired,\n\txAccessor: PropTypes.func.isRequired,\n\txAxisZoom: PropTypes.func.isRequired\n};\n\nexport default ZoomButtons;\n","\r\nimport { format } from \"d3-format\";\r\nimport { timeFormat } from \"d3-time-format\";\r\n\r\nimport React from \"react\";\r\n\r\nimport PropTypes from \"prop-types\";\r\nimport { Chart, ChartCanvas } from \"./component/react-stockcharts\";\r\n\r\nimport {\r\n\tBarSeries,\r\n\tOHLCSeries,\r\n\tLineSeries,\r\n MACDSeries,\r\n AreaSeries,\r\n CandlestickSeries,\r\n SARSeries,\r\n BollingerSeries,\r\n StochasticSeries,\r\n AlternatingFillAreaSeries,\r\n StraightLine,\r\n ElderRaySeries,\r\n RSISeries,\r\n} from \"./component/react-stockcharts/lib/series\";\r\nimport { XAxis, YAxis } from \"./component/react-stockcharts/lib/axes\";\r\nimport {\r\n\tCrossHairCursor,\r\n\tCurrentCoordinate,\r\n\tMouseCoordinateX,\r\n MouseCoordinateY,\r\n EdgeIndicator,\r\n PriceCoordinate,\r\n} from \"./component/react-stockcharts/lib/coordinates\";\r\n\r\nimport { discontinuousTimeScaleProviderBuilder } from \"./component/react-stockcharts/lib/scale\";\r\nimport { OHLCTooltip, MovingAverageTooltip, HoverTooltip, MACDTooltip, SingleValueTooltip, BollingerBandTooltip, StochasticTooltip, RSITooltip} from \"./component/react-stockcharts/lib/tooltip\";\r\nimport { sma,ema, macd, change, elderImpulse, tma, sar, bollingerBand, atr, rsi, stochasticOscillator, forceIndex, elderRay } from \"./component/react-stockcharts/lib/indicator\";\r\nimport { fitWidth } from \"./component/react-stockcharts/lib/helper\";\r\nimport { InteractiveText, InteractiveYCoordinate, TrendLine, DrawingObjectSelector, FibonacciRetracement, ClickCallback } from \"./component/react-stockcharts/lib/interactive\";\r\nimport { head, last, toObject } from \"./component/react-stockcharts/lib/utils\";\r\nimport { getMorePropsForChart } from \"react-stockcharts/lib/interactive/utils\";\r\nimport shortid from \"shortid\";\r\n\r\nimport {\r\n saveInteractiveNodes,\r\n getInteractiveNodes,\r\n getSelected\r\n} from \"./utils/interactiveutils\";\r\n\r\nconst elder = elderRay();\r\n\r\nconst dateFormat = timeFormat(\"%Y-%m-%d\");\r\nconst numberFormat = format(\".2f\");\r\n\r\nconst stoAppearance = {\r\n\tstroke: Object.assign({},\r\n\t\tStochasticSeries.defaultProps.stroke)\r\n};\r\n\r\nfunction getMaxUndefined(calculators) {\r\n\treturn calculators.map(each => each.undefinedLength()).reduce((a, b) => Math.max(a, b));\r\n}\r\n\r\n\r\n\r\nconst bbStroke = {\r\n top: \"#00ff00\",\r\n middle: \"#0000ff\",\r\n bottom: \"#ff0000\",\r\n};\r\nconst bbFill = \"#d1d1d1\";\r\n\r\nconst s1 = {\r\n\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate,\r\n\tstroke: \"#FF0000\",\r\n\ttextFill: \"#FF0000\",\r\n\ttext: \"S1\",\r\n\tedge: {\r\n\t\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate.edge,\r\n strokeOpacity: 0,\r\n fillOpacity: 0,\r\n\t}\r\n};\r\nconst s2 = {\r\n\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate,\r\n\tstroke: \"#FF0000\",\r\n\ttextFill: \"#FF0000\",\r\n\ttext: \"S2\",\r\n\tedge: {\r\n\t\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate.edge,\r\n strokeOpacity: 0,\r\n fillOpacity: 0,\r\n \r\n\t}\r\n};\r\nconst r1 = {\r\n\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate,\r\n\tstroke: \"#0000FF\",\r\n\ttextFill: \"#0000FF\",\r\n text: \"R1\",\r\n id: shortid.generate(),\r\n yValue: 20,\r\n\tedge: {\r\n\t\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate.edge,\r\n\t\tstrokeOpacity: 0,\r\n\t}\r\n};\r\nconst r2 = {\r\n\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate,\r\n\tstroke: \"#0000FF\",\r\n\ttextFill: \"#0000FF\",\r\n text: \"R2\",\r\n id: shortid.generate(),\r\n yValue: -12,\r\n\tedge: {\r\n\t\t...InteractiveYCoordinate.defaultProps.defaultPriceCoordinate.edge,\r\n\t\tstrokeOpacity: 0,\r\n\t}\r\n};\r\n\r\nconst fi = forceIndex()\r\n\t\t\t.merge((d, c) => {d.fi = c;})\r\n\t\t\t.accessor(d => d.fi);\r\n\r\nconst fiEMA13 = ema()\r\n .id(1)\r\n .options({ windowSize: 13, sourcePath: \"fi\" })\r\n .merge((d, c) => {d.fiEMA13 = c;})\r\n .accessor(d => d.fiEMA13);\r\n \r\nconst coordinateList_3 = [r1, r2];\r\nconst ema12 = ema()\r\n\t\t\t.id(1)\r\n\t\t\t.options({ windowSize: 12 })\r\n\t\t\t.merge((d, c) => { d.ema12 = c; })\r\n\t\t\t.accessor(d => d.ema12);\r\n\r\nconst macdCalculator = macd()\r\n .options({\r\n fast: 12,\r\n slow: 26,\r\n signal: 9,\r\n })\r\n .merge((d, c) => { d.macd = c; })\r\n .accessor(d => d.macd);\r\n\r\nconst fullSTO = stochasticOscillator()\r\n .options({ windowSize: 14, kWindowSize: 3, dWindowSize: 4 })\r\n .merge((d, c) => {d.fullSTO = c;})\r\n .accessor(d => d.fullSTO);\r\n\r\nconst elderImpulseCalculator = elderImpulse()\r\n .macdSource(macdCalculator.accessor())\r\n .emaSource(ema12.accessor());\r\nconst rsiCalculator = rsi()\r\n .options({ windowSize: 14 })\r\n .merge((d, c) => {d.rsi = c;})\r\n .accessor(d => d.rsi);\r\nconst atrCalculator = atr()\r\n .options({ windowSize: 14 })\r\n .merge((d, c) => {d.atr14 = c;})\r\n .accessor(d => d.atr14);\r\nconst changeCalculator = change();\r\n\r\nconst accelerationFactor = .02;\r\nconst maxAccelerationFactor = .2;\r\n\r\nconst sarCalculator = sar()\r\n .options({\r\n accelerationFactor, maxAccelerationFactor\r\n })\r\n .merge((d, c) => {d.sar = c;})\r\n .accessor(d => d.sar);\r\n\r\nconst bbCalculator = bollingerBand()\r\n .merge((d, c) => {d.bb = c;})\r\n .accessor(d => d.bb);\r\n\r\nfunction tooltipContent(ys) {\r\n\treturn ({ currentItem, xAccessor }) => {\r\n \r\n\t\treturn {\r\n\t\t\tx: dateFormat(xAccessor(currentItem)),\r\n\t\t\ty: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"open\",\r\n\t\t\t\t\tvalue: currentItem.open && numberFormat(currentItem.open)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"high\",\r\n\t\t\t\t\tvalue: currentItem.high && numberFormat(currentItem.high)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"low\",\r\n\t\t\t\t\tvalue: currentItem.low && numberFormat(currentItem.low)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: currentItem.label === undefined ? \"close\" : currentItem.label,\r\n\t\t\t\t\tvalue: currentItem.close && numberFormat(currentItem.close)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t\t.concat(\r\n\t\t\t\t\tys.map(each => {\r\n if(each.value(currentItem) < currentItem.high * 10 && currentItem.close != 0)\r\n return {\r\n label: each.label,\r\n value: each.value(currentItem),\r\n stroke: each.stroke\r\n }\r\n\t\t\t\t\t })\r\n\t\t\t\t)\r\n\t\t};\r\n\t};\r\n}\r\n\r\nfunction tooltipContentForTMTI(ys) {\r\n\treturn ({ currentItem, xAccessor }) => {\r\n\t\treturn {\r\n\t\t\tx: dateFormat(xAccessor(currentItem)),\r\n\t\t\ty: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"open\",\r\n\t\t\t\t\tvalue: currentItem.open && numberFormat(currentItem.open)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"high\",\r\n\t\t\t\t\tvalue: currentItem.high && numberFormat(currentItem.high)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"low\",\r\n\t\t\t\t\tvalue: currentItem.low && numberFormat(currentItem.low)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"close\",\r\n\t\t\t\t\tvalue: currentItem.close && numberFormat(currentItem.close)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t\t.concat(\r\n\t\t\t\t\tys.map(each => {\r\n if(currentItem.mri !== undefined)\r\n return {\r\n label: each.label,\r\n value: currentItem.mri,\r\n stroke: each.stroke\r\n }\r\n\t\t\t\t\t})\r\n\t\t\t\t)\r\n\t\t};\r\n\t};\r\n}\r\nfunction tooltipContentForStochastic() {\r\n\treturn ({ currentItem, xAccessor }) => {\r\n if(currentItem.fullSTO === undefined)\r\n return {\r\n x: dateFormat(xAccessor(currentItem)),\r\n y: [\r\n {\r\n label: \"open\",\r\n value: currentItem.open && numberFormat(currentItem.open)\r\n },\r\n {\r\n label: \"high\",\r\n value: currentItem.high && numberFormat(currentItem.high)\r\n },\r\n {\r\n label: \"low\",\r\n value: currentItem.low && numberFormat(currentItem.low)\r\n },\r\n {\r\n label: \"close\",\r\n value: currentItem.close && numberFormat(currentItem.close)\r\n }\r\n ]\r\n };\r\n\t\treturn {\r\n\t\t\tx: dateFormat(xAccessor(currentItem)),\r\n\t\t\ty: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"open\",\r\n\t\t\t\t\tvalue: currentItem.open && numberFormat(currentItem.open)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"high\",\r\n\t\t\t\t\tvalue: currentItem.high && numberFormat(currentItem.high)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"low\",\r\n\t\t\t\t\tvalue: currentItem.low && numberFormat(currentItem.low)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"close\",\r\n\t\t\t\t\tvalue: currentItem.close && numberFormat(currentItem.close)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t\t.concat(\r\n\t\t\t\t\t[{\r\n label: \"K\",\r\n value: numberFormat(currentItem.fullSTO.K),\r\n stroke: '#A6E45B',\r\n },\r\n {\r\n label: \"D\",\r\n value: numberFormat(currentItem.fullSTO.D),\r\n stroke: '#C846C8',\r\n }]\r\n\t\t\t\t)\r\n\t\t};\r\n\t};\r\n}\r\nfunction tooltipContentForForceIndex() {\r\n\treturn ({ currentItem, xAccessor }) => {\r\n if(currentItem.fullSTO === undefined)\r\n return {\r\n x: dateFormat(xAccessor(currentItem)),\r\n y: [\r\n {\r\n label: \"open\",\r\n value: currentItem.open && numberFormat(currentItem.open)\r\n },\r\n {\r\n label: \"high\",\r\n value: currentItem.high && numberFormat(currentItem.high)\r\n },\r\n {\r\n label: \"low\",\r\n value: currentItem.low && numberFormat(currentItem.low)\r\n },\r\n {\r\n label: \"close\",\r\n value: currentItem.close && numberFormat(currentItem.close)\r\n }\r\n ]\r\n };\r\n\t\treturn {\r\n\t\t\tx: dateFormat(xAccessor(currentItem)),\r\n\t\t\ty: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"open\",\r\n\t\t\t\t\tvalue: currentItem.open && numberFormat(currentItem.open)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"high\",\r\n\t\t\t\t\tvalue: currentItem.high && numberFormat(currentItem.high)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"low\",\r\n\t\t\t\t\tvalue: currentItem.low && numberFormat(currentItem.low)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"close\",\r\n\t\t\t\t\tvalue: currentItem.close && numberFormat(currentItem.close)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t\t.concat(\r\n\t\t\t\t\t[{\r\n label: \"FI\",\r\n value: numberFormat(currentItem.fi),\r\n stroke: '#699AC3',\r\n },\r\n {\r\n label: \"FIEMA13\",\r\n value: numberFormat(currentItem.fiEMA13),\r\n stroke: currentItem.fiEMA13 < 0 ? '#E43935' : '#38C172',\r\n }]\r\n\t\t\t\t)\r\n\t\t};\r\n\t};\r\n}\r\n\r\nfunction tooltipContentForElderray() {\r\n\treturn ({ currentItem, xAccessor }) => {\r\n if(currentItem.fullSTO === undefined)\r\n return {\r\n x: dateFormat(xAccessor(currentItem)),\r\n y: [\r\n {\r\n label: \"open\",\r\n value: currentItem.open && numberFormat(currentItem.open)\r\n },\r\n {\r\n label: \"high\",\r\n value: currentItem.high && numberFormat(currentItem.high)\r\n },\r\n {\r\n label: \"low\",\r\n value: currentItem.low && numberFormat(currentItem.low)\r\n },\r\n {\r\n label: \"close\",\r\n value: currentItem.close && numberFormat(currentItem.close)\r\n }\r\n ]\r\n };\r\n\t\treturn {\r\n\t\t\tx: dateFormat(xAccessor(currentItem)),\r\n\t\t\ty: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"open\",\r\n\t\t\t\t\tvalue: currentItem.open && numberFormat(currentItem.open)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"high\",\r\n\t\t\t\t\tvalue: currentItem.high && numberFormat(currentItem.high)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"low\",\r\n\t\t\t\t\tvalue: currentItem.low && numberFormat(currentItem.low)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"close\",\r\n\t\t\t\t\tvalue: currentItem.close && numberFormat(currentItem.close)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t\t.concat(\r\n\t\t\t\t\t[{\r\n label: \"BULL\",\r\n value: numberFormat(currentItem.elderRay.bullPower),\r\n stroke: '#8DBBA0',\r\n },\r\n {\r\n label: \"BEAR\",\r\n value: numberFormat(currentItem.elderRay.bearPower),\r\n stroke: '#FF2B2B',\r\n }]\r\n\t\t\t\t)\r\n\t\t};\r\n\t};\r\n}\r\n\r\nfunction tooltipContentForMACD() {\r\n\treturn ({ currentItem, xAccessor }) => {\r\n if(currentItem.macd.macd === undefined || currentItem.macd.divergence === undefined || currentItem.macd.signal === undefined)\r\n return {\r\n x: dateFormat(xAccessor(currentItem)),\r\n y: [\r\n {\r\n label: \"open\",\r\n value: currentItem.open && numberFormat(currentItem.open)\r\n },\r\n {\r\n label: \"high\",\r\n value: currentItem.high && numberFormat(currentItem.high)\r\n },\r\n {\r\n label: \"low\",\r\n value: currentItem.low && numberFormat(currentItem.low)\r\n },\r\n {\r\n label: \"close\",\r\n value: currentItem.close && numberFormat(currentItem.close)\r\n }\r\n ]\r\n };\r\n\t\treturn {\r\n\t\t\tx: dateFormat(xAccessor(currentItem)),\r\n\t\t\ty: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"open\",\r\n\t\t\t\t\tvalue: currentItem.open && numberFormat(currentItem.open)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"high\",\r\n\t\t\t\t\tvalue: currentItem.high && numberFormat(currentItem.high)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"low\",\r\n\t\t\t\t\tvalue: currentItem.low && numberFormat(currentItem.low)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"close\",\r\n\t\t\t\t\tvalue: currentItem.close && numberFormat(currentItem.close)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t\t.concat(\r\n\t\t\t\t\t[{\r\n label: \"MACD\",\r\n value: numberFormat(currentItem.macd.macd),\r\n stroke: '#ff0000',\r\n },\r\n {\r\n label: 'SIGNAL',\r\n value: numberFormat(currentItem.macd.signal),\r\n stroke: '#50F750',\r\n },\r\n {\r\n label: 'DIVERGENCE',\r\n value: numberFormat(currentItem.macd.divergence),\r\n stroke: '#6597C1',\r\n }]\r\n\t\t\t\t)\r\n\t\t};\r\n\t};\r\n}\r\n\r\nfunction mobilecheck() {\r\n var check = false;\r\n (function(a){if(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);\r\n return check;\r\n};\r\n\r\nfunction tooltipContentForRsiAtr() {\r\n\treturn ({ currentItem, xAccessor }) => {\r\n if(currentItem.rsi === undefined || currentItem.atr14 === undefined)\r\n return {\r\n x: dateFormat(xAccessor(currentItem)),\r\n y: [\r\n {\r\n label: \"open\",\r\n value: currentItem.open && numberFormat(currentItem.open)\r\n },\r\n {\r\n label: \"high\",\r\n value: currentItem.high && numberFormat(currentItem.high)\r\n },\r\n {\r\n label: \"low\",\r\n value: currentItem.low && numberFormat(currentItem.low)\r\n },\r\n {\r\n label: \"close\",\r\n value: currentItem.close && numberFormat(currentItem.close)\r\n }\r\n ]\r\n };\r\n\t\treturn {\r\n\t\t\tx: dateFormat(xAccessor(currentItem)),\r\n\t\t\ty: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"open\",\r\n\t\t\t\t\tvalue: currentItem.open && numberFormat(currentItem.open)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"high\",\r\n\t\t\t\t\tvalue: currentItem.high && numberFormat(currentItem.high)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"low\",\r\n\t\t\t\t\tvalue: currentItem.low && numberFormat(currentItem.low)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"close\",\r\n\t\t\t\t\tvalue: currentItem.close && numberFormat(currentItem.close)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t\t.concat(\r\n\t\t\t\t\t[{\r\n label: \"RSI\",\r\n value: numberFormat(currentItem.rsi),\r\n stroke: '#C846C8',\r\n },\r\n {\r\n label: 'ATR',\r\n value: numberFormat(currentItem.atr14),\r\n stroke: '#FFA14E',\r\n }]\r\n\t\t\t\t)\r\n\t\t};\r\n\t};\r\n}\r\n\r\n\r\n\r\n\r\nconst dis = {\r\n \"GAB\": 0.15,\r\n \"AMZN\": 50,\r\n \"AAPL\": 8,\r\n \"INTC\": 1,\r\n \"DIA\": 5,\r\n}\r\n\r\nconst macdAppearance = {\r\n\tstroke: {\r\n\t\tmacd: \"#FF0000\",\r\n\t\tsignal: \"#00F300\",\r\n\t},\r\n\tfill: {\r\n\t\tdivergence: \"#4682B4\"\r\n\t},\r\n};\r\n\r\nlet edgeValue = 0, todayClosePrice = 0;\r\n\r\nvar topValue, bottomValue;\r\n\r\nconst sma50 = sma()\r\n .options({ windowSize: 50 })\r\n .merge((d, c) => {d.sma50 = c;})\r\n .accessor(d => d.sma50)\r\n .stroke(\"red\");\r\n\r\nconst sma200 = sma()\r\n .options({ windowSize: 200 })\r\n .merge((d, c) => {d.sma200 = c;})\r\n .accessor(d => d.sma200)\r\n .stroke(\"blue\");\r\nconst sma20 = sma()\r\n .options({ windowSize: 20 })\r\n .merge((d, c) => {d.sma20 = c;})\r\n .accessor(d => d.sma20)\r\nconst tma20 = tma()\r\n .options({ windowSize: 20 })\r\n .merge((d, c) => {d.tma20 = c;})\r\n .accessor(d => d.tma20)\r\n .stroke(\"green\");\r\nconst ema20 = ema()\r\n .options({ windowSize: 20 })\r\n .merge((d, c) => {d.ema20 = c;})\r\n .accessor(d => d.ema20)\r\n .stroke(\"#ED39D7\");\r\nconst ema50 = ema()\r\n .options({ windowSize: 50 })\r\n .merge((d, c) => {d.ema50 = c;})\r\n .accessor(d => d.ema50)\r\n .stroke(\"#39EDDF\");\r\nconst smaVolume50 = sma()\r\n .id(3)\r\n .options({\r\n windowSize: 50,\r\n sourcePath: \"volume\",\r\n })\r\n .merge((d, c) => {d.smaVolume50 = c;})\r\n .accessor(d => d.smaVolume50);\r\n\r\nclass CustomizedStockChart extends React.Component {\r\n\tconstructor(props) {\r\n super(props);\r\n const { data: inputData, additionalData, width } = props;\r\n this.isDrag = false;\r\n \r\n\r\n const maxWindowSize = getMaxUndefined([\r\n sma50,\r\n sma200,\r\n smaVolume50,\r\n ]);\r\n topValue = 0;\r\n bottomValue = 1000000000;\r\n inputData.map((data, index) => {\r\n topValue = topValue < data.high ? data.high : topValue;\r\n bottomValue = bottomValue > data.low ? data.low : bottomValue;\r\n if(index == 0)\r\n data.before = 1000000;\r\n else\r\n data.before = inputData[index - 1].close;\r\n })\r\n\r\n edgeValue = inputData[inputData.length - 1].mri;\r\n todayClosePrice = inputData[inputData.length - 1].close;\r\n\r\n const dataToCalculate = inputData;\r\n \r\n const calculatedData = elder(fiEMA13(fi(fullSTO(macdCalculator(atrCalculator(rsiCalculator(bbCalculator(sarCalculator(ema50(ema20(tma20(sma20(sma50(sma200(smaVolume50(elderImpulseCalculator(ema12(changeCalculator(dataToCalculate)))))))))))))))))));\r\n const indexCalculator = discontinuousTimeScaleProviderBuilder().inputDateAccessor(d => d.date).initialIndex(0).indexCalculator();\r\n const { index } = indexCalculator(calculatedData);\r\n \r\n\r\n const xScaleProvider = discontinuousTimeScaleProviderBuilder().inputDateAccessor(d => d.date)\r\n .withIndex(index);\r\n \r\n const { data: linearData, xScale, xAccessor, displayXAccessor } = xScaleProvider(calculatedData);\r\n \r\n var textlist = [];\r\n \r\n /* adding asterisk to the chart */\r\n if(additionalData !== undefined){\r\n linearData.map((data, index) => {\r\n var offset = (topValue - bottomValue) * 0.03, interval = offset, overDuplicate = 0, underDuplicate = 0;\r\n for(var i = 0; i< additionalData.marks.length;i ++)\r\n {\r\n const mark = additionalData.marks[i];\r\n if(mark.date.getTime() === data.date.getTime())\r\n {\r\n var textitem = {\r\n text:mark.text,\r\n bgFill: mark.bgcolor,\r\n textFill: mark.color,\r\n hoverText: {\r\n text: mark.mouseover,\r\n color: mark.color,\r\n bgHeight: mark.color === \"#000000\" ? (mark.text.length === 1 ? 90 : 90) : mark.text.length === 1 && mark.text !== \"*\" ? 90 : 90,\r\n bgWidth: 140,\r\n bgFill: '#ffffff',\r\n bgStroke: '#cecece',\r\n },\r\n date: mark.date\r\n }\r\n \r\n if(mark.direction === \"over\"){\r\n overDuplicate ++;\r\n offset = interval * overDuplicate * 1.3;\r\n textitem.position = [index, data.high + offset];\r\n }else{\r\n underDuplicate ++;\r\n offset = interval * underDuplicate;\r\n textitem.position = [index, data.low - offset * 2];\r\n }\r\n \r\n textlist.push(textitem);\r\n }\r\n }\r\n })\r\n\r\n /* adding asterisk to the chart */\r\n\r\n /* adding R1, R2, S1, S2 to the chart */\r\n var coordinate = [];\r\n if(additionalData.R1 != null){\r\n coordinate.push(\r\n {\r\n ...r1,\r\n yValue: additionalData.R1,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n if(additionalData.R2 != null){\r\n coordinate.push(\r\n {\r\n ...r2,\r\n yValue: additionalData.R2,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n if(additionalData.S1 != null){\r\n coordinate.push(\r\n {\r\n ...s1,\r\n yValue: additionalData.S1,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n if(additionalData.S2 != null){\r\n coordinate.push(\r\n {\r\n ...s2,\r\n yValue: additionalData.S2,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n /* adding R1, R2, S1, S2 to the chart */\r\n }\r\n\r\n this.state = {\r\n sma20,\r\n sma50,\r\n sma200,\r\n smaVolume50,\r\n tma20,\r\n ema20,\r\n ema50,\r\n trends_1: [],\r\n retracements_1: [],\r\n data: linearData,\r\n length: xAccessor(linearData[0]),\r\n xScale,\r\n xAccessor,\r\n displayXAccessor,\r\n textList_1: textlist,\r\n hoveredInteractiveText: false,\r\n yCoordinateList_1 : coordinate,\r\n suffix: 1\r\n };\r\n this.saveInteractiveNodes = saveInteractiveNodes.bind(this);\r\n this.getInteractiveNodes = getInteractiveNodes.bind(this);\r\n this.handleDownloadMore = this.handleDownloadMore.bind(this);\r\n this.handleHoverInteractiveText = this.handleHoverInteractiveText.bind(this);\r\n this.handleDelete = this.handleDelete.bind(this);\r\n this.handleReset = this.handleReset.bind(this);\r\n }\r\n\r\n CandleColor = (d) => {\r\n if(d.close === 0 )\r\n return '#DEDEDE';\r\n if(this.props.trend === false){\r\n if(this.props.chartType === 'ohlc')\r\n return '#000000';\r\n if(this.props.chartType === 'candlestick')\r\n {\r\n return d.close > d.open ? \"#6BA583\" : \"#FF0000\";\r\n }\r\n }\r\n\r\n if (((d.close > d.sma20) && (d.close <= d.sma50)) || \r\n ((d.close <= d.sma20) && (d.close > d.sma50)) || \r\n ((d.close < d.sma20) && (d.close >= d.sma50)) ||\r\n ((d.close >= d.sma20) && (d.close < d.sma50)))\r\n return '#0000FF'; //blue\r\n \r\n if ((d.close > d.sma20) && (d.close > d.sma50))\r\n return '#00FF00'; //green\r\n \r\n if ((d.close < d.sma20) && (d.close < d.sma50))\r\n return '#FF0000'; //red\r\n return '#FF0000'; //red\r\n }\r\n\r\n componentWillReceiveProps(nextProps){\r\n\r\n const {additionalData} = nextProps;\r\n const {data: linearData} = this.state;\r\n let { data: inputData } = this.props;\r\n var textlist = [];\r\n if(linearData === undefined)\r\n return;\r\n if(additionalData === undefined)\r\n return;\r\n\r\n const calculatedData = elder(fiEMA13(fi(fullSTO(macdCalculator(atrCalculator(rsiCalculator(bbCalculator(sarCalculator(ema50(ema20(tma20(sma20(sma50(sma200(smaVolume50(elderImpulseCalculator(ema12(changeCalculator(inputData)))))))))))))))))));\r\n const indexCalculator = discontinuousTimeScaleProviderBuilder().inputDateAccessor(d => d.date).initialIndex(0).indexCalculator();\r\n const { index } = indexCalculator(calculatedData);\r\n \r\n\r\n const xScaleProvider = discontinuousTimeScaleProviderBuilder().inputDateAccessor(d => d.date)\r\n .withIndex(index);\r\n \r\n let { data: newData } = xScaleProvider(calculatedData);\r\n\r\n this.setState({data: newData});\r\n \r\n \r\n linearData.map((data, index) => {\r\n var offset = (topValue - bottomValue) * 0.03, interval = offset, overDuplicate = 0, underDuplicate = 0;\r\n for(var i = 0; i< additionalData.marks.length;i ++)\r\n {\r\n const mark = additionalData.marks[i];\r\n if(mark.date.getTime() === data.date.getTime())\r\n {\r\n var textitem = {\r\n text:mark.text,\r\n bgFill: mark.bgcolor,\r\n textFill: mark.color,\r\n hoverText: {\r\n text: mark.mouseover,\r\n color: mark.color,\r\n /* bgHeight: mark.color === \"#000000\" ? (mark.text.length === 1 ? 90 : 90) : mark.text.length === 1 && mark.text !== \"*\" ? 90 : 90, */\r\n bgWidth: 140,\r\n bgFill: '#ffffff',\r\n bgStroke: '#cecece',\r\n },\r\n date: mark.date\r\n }\r\n \r\n if(mark.direction === \"over\"){\r\n overDuplicate ++;\r\n offset = interval * overDuplicate * 1.3;\r\n textitem.position = [index, data.high + offset];\r\n }else{\r\n underDuplicate ++;\r\n offset = interval * underDuplicate;\r\n textitem.position = [index, data.low - offset * 2];\r\n }\r\n\r\n textlist.push(textitem);\r\n }\r\n }\r\n })\r\n\r\n /* adding asterisk to the chart */\r\n\r\n /* adding R1, R2, S1, S2 to the chart */\r\n \r\n var coordinate = [];\r\n if(additionalData.R1 != null){\r\n coordinate.push(\r\n {\r\n ...r1,\r\n yValue: additionalData.R1,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n if(additionalData.R2 != null){\r\n coordinate.push(\r\n {\r\n ...r2,\r\n yValue: additionalData.R2,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n if(additionalData.S1 != null){\r\n coordinate.push(\r\n {\r\n ...s1,\r\n yValue: additionalData.S1,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n if(additionalData.S2 != null){\r\n coordinate.push(\r\n {\r\n ...s2,\r\n yValue: additionalData.S2,\r\n id: shortid.generate(),\r\n draggable: false,\r\n }\r\n )\r\n }\r\n\r\n let trends_1 = [...this.state.trends_1], retracements_1 = [...this.state.retracements_1];\r\n if(nextProps.enableTrendLine === false)\r\n trends_1 = [];\r\n if(nextProps.enableFib === false)\r\n retracements_1 = [];\r\n\r\n\r\n this.setState({\r\n textList_1: textlist,\r\n yCoordinateList_1 : coordinate,\r\n trends_1,\r\n retracements_1\r\n });\r\n }\r\n handleDelete(yCoordinate, moreProps) {\r\n this.setState(state => {\r\n const key = 'yCoordinateList_1';\r\n\r\n const list = state[key];\r\n return {\r\n [key]: list.filter(d => d.id !== yCoordinate.id)\r\n };\r\n });\r\n }\r\n \r\n handleHoverInteractiveText(hovering){\r\n this.setState({hoveredInteractiveText: hovering});\r\n }\r\n\r\n handleReset() {\r\n this.setState({\r\n suffix: this.state.suffix + 1\r\n });\r\n }\r\n saveCanvasNode = (node) => {\r\n this.canvasNode = node;\r\n window.chart = node;\r\n\t}\r\n handleDownloadMore(start, end) {\r\n if (Math.ceil(start) === end) {\r\n return;\r\n }\r\n \r\n const { data: prevData, sma50, sma200, smaVolume50, sma20, tma20, ema20, ema50 } = this.state;\r\n const { data: inputData, additionalData } = this.props;\r\n\r\n if (inputData.length === prevData.length) {\r\n return;\r\n }\r\n\r\n const rowsToDownload = end - Math.ceil(start);\r\n\r\n const maxWindowSize = getMaxUndefined([\r\n sma50,\r\n sma200,\r\n smaVolume50\r\n ]);\r\n\r\n \r\n const dataToCalculate = inputData\r\n .slice(-rowsToDownload - maxWindowSize - prevData.length, - prevData.length);\r\n const calculatedData = elder(fiEMA13(fi(fullSTO(macdCalculator(atrCalculator(rsiCalculator(bbCalculator(sarCalculator(ema50(ema20(tma20(sma20(sma50(sma200(smaVolume50(elderImpulseCalculator(ema12(changeCalculator(dataToCalculate)))))))))))))))))));\r\n const indexCalculator = discontinuousTimeScaleProviderBuilder()\r\n .initialIndex(Math.ceil(start))\r\n .indexCalculator();\r\n const { index } = indexCalculator(\r\n calculatedData\r\n .slice(-rowsToDownload)\r\n .concat([...prevData]));\r\n\r\n const xScaleProvider = discontinuousTimeScaleProviderBuilder()\r\n .initialIndex(Math.ceil(start))\r\n .withIndex(index);\r\n const { data: linearData, xScale, xAccessor, displayXAccessor } = xScaleProvider(calculatedData.slice(-rowsToDownload).concat([...prevData]));\r\n \r\n /* adding asterisk to the chart */\r\n var textlist = [];\r\n if(additionalData !== undefined){\r\n linearData.forEach((data, index) => {\r\n var offset = (topValue - bottomValue) * 0.03, interval = offset, overDuplicate = 0, underDuplicate = 0;\r\n for(var i = 0; i< additionalData.marks.length;i ++)\r\n {\r\n const mark = additionalData.marks[i];\r\n if(mark.date.getTime() === data.date.getTime())\r\n {\r\n var pos = xAccessor(data);\r\n var textitem = {\r\n text:mark.text,\r\n bgFill: mark.bgcolor,\r\n textFill: mark.color,\r\n fontWeight: 'bold',\r\n bgStroke: mark.color,\r\n hoverText: {\r\n text: mark.mouseover,\r\n color: mark.color,\r\n /* bgHeight: mark.color === \"#000000\" ? (mark.text.length === 1 ? 70 : 90) : mark.text.length === 1 && mark.text !== \"*\" ? 70 : 90, */\r\n bgWidth: 140,\r\n bgFill: '#ffffff',\r\n bgStroke: '#cecece',\r\n },\r\n date: mark.date\r\n }\r\n \r\n if(mark.direction === \"over\"){\r\n overDuplicate ++;\r\n offset = interval * overDuplicate * 1.3;\r\n textitem.position = [index, data.high + offset];\r\n }else{\r\n underDuplicate ++;\r\n offset = interval * underDuplicate;\r\n textitem.position = [index, data.low - offset * 2];\r\n }\r\n textlist.push(textitem);\r\n }\r\n }\r\n })\r\n }\r\n /* adding asterisk to the chart */\r\n }\r\n \r\n extentsCalculator = (d) =>{\r\n const {stockType} = this.props;\r\n const offset = (topValue - bottomValue) * 0.1;\r\n return [d.high + offset, d.low - offset];\r\n }\r\n\r\n onDrawCompleteChart1 = (trends_1) => {\r\n \r\n\t\tthis.setState({\r\n\t\t\tenableTrendLine: true,\r\n\t\t\ttrends_1\r\n\t\t});\r\n }\r\n\r\n onFibComplete1 = (retracements_1) => {\r\n\t\tthis.setState({\r\n\t\t\tretracements_1,\r\n\t\t\tenableFib: false\r\n\t\t});\r\n\t}\r\n\r\n renderYCoordinateEdgeValues = () => {\r\n \r\n if(this.state.yCoordinateList_1 !== undefined)\r\n return this.state.yCoordinateList_1.map((coordinate, key) => \r\n coordinate.yValue} fill={d => \"#6BA583\"} key={key} />)\r\n return null;\r\n }\r\n\r\n handleSelect = () => {\r\n \r\n }\r\n\r\n handleSelection = (interactives, moreProps, e) => {\r\n \r\n /* var selected = interactives[0].objects.find(interactive => {\r\n return interactive.selected;\r\n }); \r\n selected = undefined;\r\n if(selected === undefined)\r\n { */\r\n /* console.log(moreProps);\r\n console.log(moreProps.currentItem.date); */\r\n this.props.handleSelectAsterisk(moreProps); \r\n return;\r\n\r\n /* }\r\n this.props.handleSelectAsterisk(selected); */\r\n }\r\n\r\n renderCrossHairs = () => {\r\n if(this.props.crossHairs == null)\r\n return;\r\n return[\r\n ,\r\n ,\r\n ]\r\n }\r\n\r\n handleMouseMove = (moreProps, e) => {\r\n if(!mobilecheck())\r\n return;\r\n\r\n if(e.type == 'touchmove') \r\n {\r\n return;\r\n }\r\n this.props.handleSelectAsterisk(moreProps); \r\n }\r\n\r\n\trender() {\r\n\t\tconst { type, width, ratio, indicator1, indicator2} = this.props;\r\n\t\tconst { data, sma50, sma200, smaVolume50, xScale, xAccessor, displayXAccessor, tma20, ema20, ema50 } = this.state;\r\n const start = xAccessor(last(data));\r\n const end = xAccessor(data[Math.max(0, data.length - this.props.duration)]);\r\n let chartHeight = this.props.chartHeight;\r\n // if(indicator2 === 'forceindex' || indicator2 === 'rsiatr')\r\n // chartHeight = 700;\r\n const gridHeight = chartHeight;\r\n const gridWidth = width - 160;\r\n const yGrid = { innerTickSize: -1 * gridWidth, tickStrokeOpacity: 0.05 };\r\n const xGrid = { innerTickSize: -1 * gridHeight, tickStrokeOpacity: 0.05 };\r\n let tooltip = [], hoverTooltip = {};\r\n // eslint-disable-next-line default-case\r\n switch(indicator1){\r\n case 'sma50_sma200':\r\n tooltip = [{\r\n yAccessor: sma50.accessor(),\r\n type: sma50.type(),\r\n stroke: sma50.stroke(),\r\n ...sma50.options(),\r\n },{\r\n yAccessor: sma200.accessor(),\r\n type: sma200.type(),\r\n stroke: sma200.stroke(),\r\n ...sma200.options(),\r\n }];\r\n hoverTooltip = [{\r\n label: `${sma50.type()}(${sma50.options()\r\n .windowSize})`,\r\n value: d => numberFormat(sma50.accessor()(d)),\r\n stroke: sma50.stroke()\r\n },\r\n {\r\n label: `${sma200.type()}(${sma200.options()\r\n .windowSize})`,\r\n value: d => numberFormat(sma200.accessor()(d)),\r\n stroke: sma200.stroke()\r\n }\r\n ];\r\n break;\r\n case 'tma20':\r\n tooltip = [{\r\n yAccessor: tma20.accessor(),\r\n type: tma20.type(),\r\n stroke: tma20.stroke(),\r\n ...tma20.options(),\r\n }]\r\n hoverTooltip = [{\r\n label: `${tma20.type()}(${tma20.options()\r\n .windowSize})`,\r\n value: d => numberFormat(tma20.accessor()(d)),\r\n stroke: tma20.stroke()\r\n }];\r\n break;\r\n case 'ema20':\r\n tooltip = [{\r\n yAccessor: ema20.accessor(),\r\n type: ema20.type(),\r\n stroke: ema20.stroke(),\r\n ...ema20.options(),\r\n }]\r\n hoverTooltip = [{\r\n label: `${ema20.type()}(${ema20.options()\r\n .windowSize})`,\r\n value: d => numberFormat(ema20.accessor()(d)),\r\n stroke: ema20.stroke()\r\n }];\r\n break;\r\n case 'ema50':\r\n tooltip = [{\r\n yAccessor: ema50.accessor(),\r\n type: ema50.type(),\r\n stroke: ema50.stroke(),\r\n ...ema50.options(),\r\n }]\r\n hoverTooltip = [{\r\n label: `${ema50.type()}(${ema50.options()\r\n .windowSize})`,\r\n value: d => numberFormat(ema50.accessor()(d)),\r\n stroke: ema50.stroke()\r\n }];\r\n break;\r\n case 'sar':\r\n tooltip = [{\r\n label: 'SAR(0.02, 0.2)',\r\n yAccessor: sarCalculator.accessor(),\r\n stroke: '#0000ff'\r\n }]\r\n hoverTooltip = [{\r\n label: 'SAR(0.02, 0.2)',\r\n value: d => numberFormat(sarCalculator.accessor()(d)),\r\n stroke: '#0000ff'\r\n }];\r\n break;\r\n case 'bollingerband':\r\n hoverTooltip = [{\r\n label: 'Top',\r\n value: d => numberFormat(bbCalculator.accessor()(d).top),\r\n stroke: '#00ff00'\r\n },\r\n {\r\n label: 'Middle',\r\n value: d => numberFormat(bbCalculator.accessor()(d).middle),\r\n stroke: '#0000ff'\r\n },\r\n {\r\n label: 'Bottom',\r\n value: d => numberFormat(bbCalculator.accessor()(d).bottom),\r\n stroke: '#ff0000'\r\n }];\r\n break;\r\n case 'none' :\r\n tooltip = [{\r\n yAccessor: sma50.accessor(),\r\n type: sma50.type(),\r\n //stroke: sma50.stroke(),\r\n ...sma50.options(),\r\n },{\r\n yAccessor: sma200.accessor(),\r\n type: sma200.type(),\r\n //stroke: sma200.stroke(),\r\n ...sma200.options(),\r\n }];\r\n hoverTooltip = [{\r\n label: `${sma50.type()}(${sma50.options()\r\n .windowSize})`,\r\n value: d => numberFormat(sma50.accessor()(d)),\r\n //stroke: sma50.stroke()\r\n },\r\n {\r\n label: `${sma200.type()}(${sma200.options()\r\n .windowSize})`,\r\n value: d => numberFormat(sma200.accessor()(d)),\r\n //stroke: sma200.stroke()\r\n }\r\n ];\r\n break;\r\n }\r\n\t\treturn (\r\n\t\t\t window.chart = ref}\r\n ref={this.saveCanvasNode}\r\n >\r\n\t\t\t\t this.extentsCalculator(d), d => sma50.accessor(), d => sma200.accessor()]}\r\n padding={{ top: 30, bottom: 10}}\r\n height={Math.floor(chartHeight/1.75)}\r\n origin={[0, 0]}\r\n >\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n {\r\n\r\n this.renderCrossHairs()\r\n\r\n }\r\n d.close} fill={d => d.close > d.before ? \"#6BA583\" : \"#E3342F\"} />\r\n {\r\n indicator1 === 'sma50_sma200' && \r\n \r\n }\r\n {\r\n indicator1 === 'sma50_sma200' && \r\n \r\n }\r\n {\r\n indicator1 === 'tma20' && \r\n \r\n }\r\n {\r\n indicator1 === 'ema20' && \r\n \r\n }\r\n {\r\n indicator1 === 'ema50' && \r\n \r\n }\r\n {\r\n indicator1 === 'sar' && \r\n d.sar}/>\r\n }\r\n {\r\n indicator1 === 'bollingerband' &&\r\n d.bb} \tstroke={bbStroke} fill={bbFill} />\r\n }\r\n {\r\n indicator1 === 'bollingerband' &&\r\n d.bb}\r\n options={bbCalculator.options()} />\r\n }\r\n \r\n {\r\n \r\n this.props.chartType === \"ohlc\" && \r\n this.CandleColor(d)}\r\n />\r\n }\r\n \r\n { \r\n this.props.chartType === \"candlestick\" && this.CandleColor(d)} fill={d => this.CandleColor(d)} wickStroke={d => this.CandleColor(d)}/>\r\n }\r\n \r\n {\r\n \r\n indicator1 === \"sma50_sma200\" && \r\n \r\n }\r\n {\r\n \r\n indicator1 === \"sma50_sma200\" && \r\n \r\n }\r\n {\r\n \r\n indicator1 === \"tma20\" && \r\n \r\n }\r\n {\r\n \r\n indicator1 === \"ema20\" && \r\n \r\n }\r\n {\r\n \r\n indicator1 === \"ema50\" && \r\n \r\n }\r\n { \r\n indicator1 === \"bollingerband\" && \r\n bbCalculator.accessor()(d).top} fill='#00ff00' />\r\n }\r\n { \r\n indicator1 === \"bollingerband\" && \r\n bbCalculator.accessor()(d).middle} fill='#0000ff' />\r\n }\r\n { \r\n indicator1 === \"bollingerband\" && \r\n bbCalculator.accessor()(d).bottom} fill='#ff0000' />\r\n }\r\n \r\n {\r\n indicator1 !== 'bollingerband' &&\r\n \r\n }\r\n\r\n this.handleHoverInteractiveText(hovering)}\r\n handleSelectAsterisk={this.props.handleSelectAsterisk}\r\n onSelect={this.handleSelect}\r\n />\r\n {\r\n this.props.sr == true &&\r\n \r\n }\r\n \r\n \r\n \r\n\r\n [d.high, d.low]}\r\n\t\t\t\t\t\tonComplete={this.onDrawCompleteChart1}\r\n\t\t\t\t\t\ttrends={this.state.trends_1}\r\n\t\t\t\t\t/>\r\n \r\n {/* */}\r\n { this.props.handleSelectAsterisk(moreProps); } }\r\n onPan={ (moreProps, e) => { this.handleMouseMove(moreProps, e) } }\r\n />\r\n \r\n d.volume, smaVolume50.accessor()]}\r\n height={Math.floor(chartHeight/7)} origin={(w, h) => [0, Math.floor(chartHeight/1.75)]}\r\n >\r\n \r\n \r\n \r\n\r\n d.volume} fill={d => d.close > d.before ? \"#6BA583\" : \"#E3342F\"} data={data}/>\r\n \r\n \r\n\t\t\t\t\r\n {/* [-70, 70] */}\r\n {\r\n indicator2 === 'tmti' &&\r\n [70, -70]}\r\n origin={(w, h) => [0, h - Math.floor(chartHeight/7)]} padding={{ top: 10, bottom: 10 }}\r\n >\t\t\t\t\t\r\n \r\n \r\n \r\n\r\n d.mri} fill={d => \"#6BA583\"}/>\r\n d.mri} stroke=\"#000000\"/>\r\n \r\n \r\n \r\n \r\n d.mri}\r\n yLabel=\"TOTTY MARKET TIMING INDICATOR\"\r\n yDisplayFormat={format(\".4s\")}\r\n origin={[0, 8]}\r\n />\r\n \r\n }\r\n {\r\n indicator2 === 'rsiatr' &&\r\n [0, h - 100]} padding={{ top: 10, bottom: 10 }}\r\n >\t\t\t\t\t\r\n \r\n d.rsi} />\r\n d.rsi}\r\n options={rsiCalculator.options()} />\r\n \r\n }\r\n {\r\n indicator2 === 'rsiatr' &&\r\n [0, h - Math.floor(chartHeight/14)]} padding={{ top: 10, bottom: 10 }}\r\n >\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n indicator2 === 'macd' &&\r\n [0, h - Math.floor(chartHeight/7)]} padding={{ top: 10, bottom: 10 }}\r\n >\t\t\t\t\t\r\n \r\n \r\n \r\n d.macd} {...macdAppearance} />\r\n d.macd}\r\n options={macdCalculator.options()}\r\n appearance={macdAppearance}\r\n />\r\n \r\n \r\n }\r\n {\r\n indicator2 === 'stochastic' &&\r\n [0, h - Math.floor(chartHeight/7)]} padding={{ top: 10, bottom: 10 }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n d.fullSTO}\r\n {...stoAppearance} />\r\n d.fullSTO}\r\n options={fullSTO.options()}\r\n appearance={stoAppearance}\r\n label=\"Full STO\" />\r\n \r\n }\r\n {\r\n indicator2 === 'forceindex' &&\r\n [0, h - Math.floor(chartHeight/7)]} padding={{ top: 10, bottom: 10 }}\r\n >\r\n \r\n scale(0)} yAccessor={fi.accessor()} />\r\n \r\n \r\n \r\n }\r\n {\r\n indicator2 === 'forceindex' &&\r\n [0, h - Math.floor(chartHeight/14)]} padding={{ top: 10, bottom: 10 }}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n indicator2 === 'elderray' && \r\n [0, h - Math.floor(chartHeight/7)]}\r\n padding={{ top: 10, bottom: 10 }}\r\n >\r\n \r\n \r\n\r\n \r\n\r\n \r\n `${format(\".2f\")(d.bullPower)}, ${format(\".2f\")(d.bearPower)}`}\r\n origin={[0, 15]}/>\r\n \r\n }\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nCustomizedStockChart.propTypes = {\r\n\tdata: PropTypes.array.isRequired,\r\n\twidth: PropTypes.number.isRequired,\r\n\tratio: PropTypes.number.isRequired,\r\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\r\n};\r\n\r\nCustomizedStockChart.defaultProps = {\r\n\ttype: \"svg\",\r\n};\r\n\r\nCustomizedStockChart = fitWidth(CustomizedStockChart);\r\n\r\nexport default CustomizedStockChart;\r\n","import { isNotDefined, isDefined } from \"react-stockcharts/lib/utils\";\r\n\r\nexport function saveInteractiveNode(chartId) {\r\n\treturn node => {\r\n\t\tthis[`node_${chartId}`] = node;\r\n\t};\r\n}\r\n\r\nexport function handleSelection(type, chartId) {\r\n\treturn selectionArray => {\r\n\t\tconst key = `${type}_${chartId}`;\r\n\t\tconst interactive = this.state[key].map((each, idx) => {\r\n\t\t\treturn {\r\n\t\t\t\t...each,\r\n\t\t\t\tselected: selectionArray[idx]\r\n\t\t\t};\r\n\t\t});\r\n\t\tthis.setState({\r\n\t\t\t[key]: interactive\r\n\t\t});\r\n\t};\r\n}\r\n\r\nexport function saveInteractiveNodes(type, chartId) {\r\n\treturn node => {\r\n\t\tif (isNotDefined(this.interactiveNodes)) {\r\n\t\t\tthis.interactiveNodes = {};\r\n\t\t}\r\n\t\tconst key = `${type}_${chartId}`;\r\n\t\tif (isDefined(node) || isDefined(this.interactiveNodes[key])) {\r\n\t\t\tthis.interactiveNodes = {\r\n\t\t\t\t...this.interactiveNodes,\r\n\t\t\t\t[key]: { type, chartId, node },\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n}\r\n\r\nexport function getInteractiveNodes() {\r\n\treturn this.interactiveNodes;\r\n}","\r\nimport { tsvParse } from \"d3-dsv\";\r\nimport { timeParse } from \"d3-time-format\";\r\n\r\nfunction parseData(parse) {\r\n\treturn function(d) {\r\n\t\td.date = parse(d.date);\r\n\t\td.open = +d.open;\r\n\t\td.high = +d.high;\r\n\t\td.low = +d.low;\r\n\t\td.close = +d.close;\r\n\t\td.volume = +d.volume;\r\n\t\treturn d;\r\n\t};\r\n}\r\n\r\n\r\nconst parseDate = timeParse(\"%Y-%m-%d\");\r\n\r\nexport function getData(variable, level) {\r\n let apiUrl = level === '' ? `https://www.buysellorhold.com/api/history/tsv?symbol=${variable}` : `https://www.buysellorhold.com/api/history/tsv?symbol=${variable}&level=${level}`;\r\n const promiseMSFT = fetch(apiUrl)\r\n\t\t.then(response => response.text())\r\n .then(data => tsvParse(data, parseData(parseDate)))\r\n\treturn promiseMSFT;\r\n}\r\nexport function getAdditionalData(variable, level) {\r\n let apiUrl = level === '' ? `https://www.buysellorhold.com/api/data?sym=${variable}` : `https://www.buysellorhold.com/api/data?sym=${variable}&level=${level}`;\r\n const promiseMark = fetch(apiUrl)\r\n .then(response => response.text())\r\n .then(data => JSON.parse(data))\r\n\treturn promiseMark;\r\n}\r\n\r\nexport function getMRIData() {\r\n const promisMRI = fetch(`https://www.buysellorhold.com/api/mri`)\r\n\t\t.then(response => response.text())\r\n .then(data => JSON.parse(data))\r\n\treturn promisMRI;\r\n}\r\n\r\nexport function getDailyOpinionData(variable, level, day)\r\n{\r\n var date = `${day.getMonth() + 1}/${day.getDate()}/${day.getFullYear()}`;\r\n let apiUrl = level === '' ? `https://www.buysellorhold.com/api/data?sym=${variable}&date=${date}` : `https://www.buysellorhold.com/api/data?sym=${variable}&level=${level}&date=${date}`;\r\n const promiseMark = fetch(apiUrl)\r\n .then(response => response.text())\r\n .then(data => JSON.parse(data));\r\n\treturn promiseMark;\r\n}","\r\nimport React, {Component} from 'react'\r\nimport { ClipLoader } from 'react-spinners'\r\nimport { css } from '@emotion/core';\r\n//import './DailyOpinionBox.css'\r\n\r\nvar parse = require('html-react-parser');\r\nconst override = \"display: block;margin: auto auto;border-color: red; width: 100px; height: 100px;\"\r\n\r\n\r\nvar isBoxDragging = false;\r\nexport default class DailyOpinionBox extends Component{\r\n\r\n constructor(){\r\n super();\r\n this.state = {\r\n transform: [0, 0]\r\n }\r\n \r\n this.dragPrevPos = [0, 0];\r\n\r\n }\r\n\r\n handleDragStart = (e) => {\r\n\r\n \r\n console.log(e.target.id);\r\n \r\n e.dataTransfer.setDragImage(document.getElementById('blank-div'), 0, 0);\r\n if(e.target.id === 'box-header')\r\n {\r\n isBoxDragging = true;\r\n e.dataTransfer.setData('text/plain', null);\r\n this.dragPrevPos[0] = e.clientX;\r\n this.dragPrevPos[1] = e.clientY;\r\n }\r\n \r\n }\r\n\r\n componentDidMount(){\r\n document.getElementById('content').addEventListener('dragover', function(e) {\r\n if(isBoxDragging == true)\r\n {\r\n window.opinionBox.handleDrag(e);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n }, false);\r\n\r\n document.addEventListener('touchmove', function(e) {\r\n if(isBoxDragging)\r\n e.preventDefault(); \r\n }, { passive:false \r\n });\r\n }\r\n\r\n handleDrag = (e) => {\r\n \r\n if(e.clientX == this.dragPrevPos[0] && e.clientY == this.dragPrevPos[1])\r\n return;\r\n \r\n if(e.clientX == 0 || e.clientY == 0)\r\n return;\r\n\r\n let { transform } = this.state;\r\n\r\n transform[0] += e.clientX - this.dragPrevPos[0];\r\n transform[1] += e.clientY - this.dragPrevPos[1];\r\n\r\n this.dragPrevPos[0] = e.clientX;\r\n this.dragPrevPos[1] = e.clientY;\r\n \r\n this.setState({ transform });\r\n \r\n }\r\n\r\n handleTouchStart = (event) => {\r\n console.log(event.target.id);\r\n if(event.target.id === 'box-header')\r\n {\r\n let e = event.targetTouches[0];\r\n this.dragPrevPos[0] = e.clientX;\r\n this.dragPrevPos[1] = e.clientY;\r\n isBoxDragging = true;\r\n }\r\n\r\n }\r\n\r\n handleTouchMove = (event) => {\r\n\r\n if(isBoxDragging == true)\r\n {\r\n let e = event.targetTouches[0];\r\n \r\n if(e.clientX == 0 || e.clientY == 0)\r\n return;\r\n\r\n let { transform } = this.state;\r\n\r\n transform[0] += e.clientX - this.dragPrevPos[0];\r\n transform[1] += e.clientY - this.dragPrevPos[1];\r\n\r\n this.dragPrevPos[0] = e.clientX;\r\n this.dragPrevPos[1] = e.clientY;\r\n\r\n this.setState({ transform });\r\n }\r\n }\r\n\r\n handleDragEnd = () => {\r\n isBoxDragging = false;\r\n }\r\n\r\n render(){\r\n \r\n const data = this.props.data;\r\n if(data == null)\r\n return(\r\n
this.handleDragStart(e)} onTouchStart={this.handleTouchStart} onTouchMove={this.handleTouchMove} id=\"opinion-box\" onTouchEnd={this.handleDragEnd} onDrop={this.handleDragEnd} >\r\n
\r\n
\r\n { this.props.symbol }\r\n
\r\n
\r\n \r\n < Prev\r\n \r\n      \r\n \r\n Next >\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n return (\r\n
this.handleDragStart(e)} onTouchStart={this.handleTouchStart} onTouchMove={this.handleTouchMove} id=\"opinion-box\" >\r\n
\r\n
\r\n { this.props.symbol }\r\n
\r\n
\r\n this.props.handleClickPrev(data.date)} className=\"btn-nav\" >\r\n < Prev\r\n \r\n      \r\n this.props.handleClickNext(data.date)} className=\"btn-nav\" >\r\n Next >\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Date: { data.date }\r\n
\r\n
\r\n { data.opiniondailylabel }\r\n
\r\n
\r\n { data.opiniondaily }\r\n
\r\n
\r\n { parse(data.opiniondailydetail) }\r\n
\r\n\r\n
\r\n { data.opinionshortlabel }\r\n
\r\n
\r\n { data.opinionshortterm }\r\n
\r\n
\r\n { parse(data.opinionshorttermdetail) }\r\n
\r\n\r\n
\r\n { data.opinionlongtermlabel }\r\n
\r\n
\r\n { data.opinionlongterm }\r\n
\r\n
\r\n { parse(data.opinionlongtermdetail) }\r\n
\r\n
\r\n
\r\n ) \r\n }\r\n}","import DailyOpinionBox from './DailyOpinionBox'\r\nexport default DailyOpinionBox;","import ReactQueryParams from 'react-query-params';\nimport React from 'react';\nimport { withCookies } from 'react-cookie';\nimport Chart from './chart';\nimport { getData, getAdditionalData, getMRIData, getDailyOpinionData } from \"./utils/utils\"\nimport { timeParse } from \"d3-time-format\";\nimport { css } from '@emotion/core';\nimport { GridLoader } from 'react-spinners';\nimport DailyOpinionBox from './component/DailyOpinionBox'\n\nimport './App.css'\nconst parseDate = timeParse(\"%m/%d/%Y\");\n\nconst override = \"display: block;margin: 0px auto;border-color: red; width: 100px; height: 100px; inset: 0px; position: relative; display: block\";\n\nfunction dateToString(d){\n let s = \"\";\n s += d.getYear() + 1900;\n s += '-';\n s+= d.getMonth() + 1 < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1);\n s += '-';\n s += d.getDate() < 10 ? '0' + d.getDate() : d.getDate();\n\n return s;\n}\nclass App extends ReactQueryParams {\n defaultQueryParams = {\n symbol: 'QQQ',\n range: '6',\n charttype: \"ohlc\",\n indicator1: 'sma50_sma200',\n indicator2: 'tmti',\n opinion: 'asterisk,daily,short,long,timing',\n level: ''\n }\n\n marksData = [];\n\n constructor(){\n super();\n this.state = {\n duration: 120,\n stockType: \"QQQ\",\n charttype: \"ohlc\",\n level: '',\n indicator1: 'sma50_sma200',\n indicator2: 'tmti',\n range: '6',\n opinion: 'asterisk,daily,short,long,timing',\n asterisk: true,\n daily: true,\n short: true,\n long: true,\n timing: true,\n trend: true,\n trendline: false,\n fib: false,\n sr: true,\n dailyOpinionData: null,\n isOpinionBoxShow: false,\n crossHairs: null,\n opinionPos: null,\n }\n this.boxShowed = false;\n this.dragPrevPos = [];\n this.fetching = false;\n this.rdy = false;\n this.chartHeight = 700;\n window.lastPrice = 0;\n }\n refreshData = () => {\n getData(this.queryParams.symbol, this.queryParams.level).then(data => {\n getMRIData().then(mriData => {\n data.forEach(stock => {\n var stockDate = dateToString(stock.date);\n for(let i = 0;i < mriData.d.length;i ++)\n if(mriData.d[i][stockDate] !== undefined)\n {\n stock.mri = mriData.d[i][stockDate]\n break;\n }\n })\n\n if(window.lastPrice !== 0 && data[data.length - 1].close == 0)\n {\n data[data.length - 1].close = window.lastPrice;\n data[data.length - 1].label = 'lastprice';\n }\n \n this.setState({data: data })\n })\n\n })\n\n this.setState({stockType: this.queryParams.symbol, level: this.queryParams.level});\n \n getAdditionalData(this.queryParams.symbol, this.queryParams.level).then(data => {\n let {marks: marksData} = data;\n window.lastPrice = data.lastprice;\n \n if(this.state.data !== undefined && this.state.data !== null)\n {\n let {data} = this.state;\n if(data[data.length - 1].close == 0)\n {\n data[data.length - 1].close = window.lastPrice;\n data[data.length - 1].label = 'lastprice';\n }\n \n this.setState({data});\n }\n \n \n marksData.marks.map(mark => {\n mark.date = parseDate(mark.date);\n })\n\n this.marksData = marksData;\n this.filterMarks(this.state.asterisk, this.state.daily, this.state.short, this.state.long, this.state.timing);\n })\n } \n refreshChart = (symbol = \"QQQ\", range = \"6\", indicator1, indicator2, chartType=\"ohlc\", opinion=\"asterisk,daily,short,long,timing\", level = '', rdy = false, chartHeight = 700) => {\n this.setState({data: null});\n this.rdy = rdy;\n this.chartHeight = chartHeight;\n getData(symbol, level).then(data => {\n getMRIData().then(mriData => {\n data.forEach(stock => {\n var stockDate = dateToString(stock.date);\n for(let i = 0;i < mriData.d.length;i ++)\n if(mriData.d[i][stockDate] !== undefined)\n {\n stock.mri = mriData.d[i][stockDate]\n break;\n }\n })\n if(window.lastPrice !== 0 && data[data.length - 1].close == 0)\n {\n data[data.length - 1].close = window.lastPrice;\n data[data.length - 1].label = 'lastprice';\n }\n \n this.setState({data })\n })\n })\n\n let asterisk = false, daily = false, short = false, long = false, timing = false;\n if(opinion.includes(\"asterisk\") === true)\n asterisk = true;\n if(opinion.includes(\"daily\") === true)\n daily = true;\n if(opinion.includes(\"short\") === true)\n short = true;\n if(opinion.includes(\"long\") === true)\n long = true;\n if(opinion.includes(\"timing\") === true)\n timing = true;\n\n this.setState({indicator1, indicator2, charttype: chartType, stockType: symbol, daily, short, long, level, range: range, opinion: opinion});\n getAdditionalData(symbol, level).then(data => {\n let {marks: marksData} = data;\n \n window.lastPrice = data.lastprice;\n \n if(this.state.data !== undefined && this.state.data !== null)\n {\n let {data} = this.state;\n if(data[data.length - 1].close == 0)\n {\n data[data.length - 1].close = window.lastPrice;\n data[data.length - 1].label = 'lastprice';\n }\n \n this.setState({data});\n }\n\n marksData.marks.map(mark => {\n mark.date = parseDate(mark.date);\n })\n\n this.marksData = marksData;\n this.filterMarks(asterisk, daily, short, long, timing);\n })\n\n if(range === \"Y\")\n this.setState({duration: 260})\n if(range == 6)\n this.setState({duration: 120})\n if(range == 3)\n this.setState({duration: 60})\n if(range == 1)\n this.setState({duration: 20})\n }\n\n componentDidMount() {\n this.setState({charttype: this.queryParams.charttype, indicator1: this.queryParams.indicator1, indicator2: this.queryParams.indicator2})\n if(this.queryParams.range === \"Y\")\n this.setState({duration: 260})\n if(this.queryParams.range === \"6\")\n this.setState({duration: 120})\n if(this.queryParams.range === \"3\")\n this.setState({duration: 60})\n if(this.queryParams.range === \"1\")\n this.setState({duration: 20})\n const opinionString = this.queryParams.opinion;\n let asterisk = false, daily = false, short = false, long = false, timing = false;\n if(opinionString.includes(\"asterisk\") === true)\n asterisk = true;\n if(opinionString.includes(\"daily\") === true)\n daily = true;\n if(opinionString.includes(\"short\") === true)\n short = true;\n if(opinionString.includes(\"long\") === true)\n long = true;\n if(opinionString.includes(\"timing\") === true)\n timing = true;\n\n const { cookies } = this.props;\n if(cookies.get('asterisk') !== undefined)\n asterisk = cookies.get('asterisk') === 'true';\n if(cookies.get('daily') !== undefined)\n daily = cookies.get('daily') === 'true';\n if(cookies.get('short') !== undefined)\n short = cookies.get('short') === 'true';\n if(cookies.get('long') !== undefined)\n long = cookies.get('long') === 'true';\n if(cookies.get('timing') !== undefined)\n timing = cookies.get('timing') === 'true';\n\n this.setState({asterisk, short, daily, long, timing, stockType: this.queryParams.symbol, level: this.queryParams.level});\n this.refreshData();\n }\n\n filterMarks = (asterisk, daily, short, long, timing) => {\n let marks = [];\n if(asterisk == true)\n marks = marks.concat(this.marksData.marks.filter(mark => mark.opinion === \"standard\"));\n if(daily === true)\n marks = marks.concat(this.marksData.marks.filter(mark => mark.opinion === \"daily\"));\n if(short === true)\n marks = marks.concat(this.marksData.marks.filter(mark => mark.opinion === \"short\"));\n if(long === true)\n marks = marks.concat(this.marksData.marks.filter(mark => mark.opinion === \"long\"));\n if(timing === true)\n marks = marks.concat(this.marksData.marks.filter(mark => mark.opinion === \"timing\"));\n let additionalData = {...this.marksData};\n additionalData.marks = marks;\n\n \n this.setState({additionalData});\n }\n\n handleChangeDaily = () => {\n if(this.state.daily === false)\n this.filterMarks(this.state.asterisk, true, this.state.short, this.state.long, this.state.timing);\n else\n this.filterMarks(this.state.asterisk, false, this.state.short, this.state.long, this.state.timing);\n this.props.cookies.set('daily', !this.state.daily, { path: '/' });\n this.setState({daily: !this.state.daily});\n }\n\n handleChangeShortTerm = () => {\n if(this.state.short === false)\n this.filterMarks(this.state.asterisk, this.state.daily, true, this.state.long, this.state.timing);\n else\n this.filterMarks(this.state.asterisk, this.state.daily, false, this.state.long, this.state.timing);\n this.props.cookies.set('short', !this.state.short, { path: '/' });\n this.setState({short: !this.state.short});\n }\n\n handleChangeLongTerm = () => {\n if(this.state.long === false)\n this.filterMarks(this.state.asterisk, this.state.daily, this.state.short, true, this.state.timing);\n else\n this.filterMarks(this.state.asterisk, this.state.daily, this.state.short, false, this.state.timing);\n this.props.cookies.set('long', !this.state.long, { path: '/' });\n this.setState({long: !this.state.long});\n }\n\n handleChangeTiming = () => {\n if(this.state.timing === false)\n this.filterMarks(this.state.asterisk, this.state.daily, this.state.short, this.state.long, true);\n else\n this.filterMarks(this.state.asterisk, this.state.daily, this.state.short, this.state.long, false);\n this.props.cookies.set('timing', !this.state.timing, { path: '/' });\n this.setState({timing: !this.state.timing});\n }\n\n handleChangeAsterisk = () => {\n if(this.state.asterisk === false)\n this.filterMarks(true, this.state.daily, this.state.short, this.state.long, this.state.timing);\n else\n this.filterMarks(false, this.state.daily, this.state.short, this.state.long, this.state.timing);\n this.props.cookies.set('asterisk', !this.state.asterisk, { path: '/' });\n this.setState({asterisk: !this.state.asterisk});\n }\n\n handleChangeTrend = () => {\n this.setState({trend: !this.state.trend});\n }\n\n handleChangeTrendline = () => {\n var fib = this.state.fib;\n if(this.state.trendline == false)\n fib = false;\n this.setState({trendline: !this.state.trendline, fib});\n }\n\n handleChangeFib = () => {\n var trendline = this.state.trendline;\n if(this.state.fib == false)\n trendline = false;\n this.setState({fib: !this.state.fib, trendline});\n }\n\n handleChangeSR = () => {\n this.setState({sr: !this.state.sr});\n }\n\n handleDragStart = (e) => {\n \n e.dataTransfer.setData('text/plain', \"ggg\");\n this.dragPrevPos[0] = e.clientX;\n this.dragPrevPos[1] = e.clientY;\n\n }\n\n handleDrag = (e) => {\n \n if(e.clientX == this.dragPrevPos[0] && e.clientY == this.dragPrevPos[1])\n return;\n if(e.clientX == 0 || e.clientY == 0)\n return;\n\n let { transform } = this.state;\n\n transform[0] += e.clientX - this.dragPrevPos[0];\n transform[1] += e.clientY - this.dragPrevPos[1];\n\n this.dragPrevPos[0] = e.clientX;\n this.dragPrevPos[1] = e.clientY;\n\n this.setState({ transform });\n }\n\n getPosition = (moreProps) => {\n\n\n var mouseXY = moreProps.mouseXY;\n var width = moreProps.width;\n var finalPos = [];\n if(width - mouseXY[0] - 220 > mouseXY[0] - 210)\n {\n finalPos[0] = mouseXY[0] + 30;\n }else\n finalPos[0] = mouseXY[0] - 205;\n finalPos[0] = finalPos[0] < 0 ? 0 : finalPos[0];\n finalPos[0] = finalPos[0] + 200 > moreProps.width + 40 ? moreProps.width - 160 : finalPos[0];\n finalPos[1] = mouseXY[1];\n finalPos[1] = finalPos[1] + 430 - moreProps.height - 20 < 0 ? finalPos[1] : finalPos[1] + 430 - moreProps.height - 20;\n finalPos[1] = finalPos[1] < 200 ? 200 : finalPos[1];\n return finalPos;\n }\n\n handleSelectAsterisk = async (moreProps) => {\n \n var selected = moreProps.currentItem;\n if(this.fetching == true)\n return;\n if(selected == null)\n return;\n\n if(selected.date === undefined)\n return;\n var { opinionPos } = this.state;\n if(this.boxShowed == false)\n {\n this.boxShowed = true;\n opinionPos = this.getPosition(moreProps);\n }\n \n var currentDate = selected.date;\n let i = 0;\n for( i = 0;i < this.state.data.length;i ++)\n {\n var d = this.state.data[i].date;\n if(d.getFullYear() == currentDate.getFullYear() && d.getMonth() == currentDate.getMonth() && d.getDate() == currentDate.getDate())\n break;\n }\n var crossHairs = {xValue: i, yValue: selected.open};\n this.setState({opinionPos: opinionPos, isOpinionBoxShow: false, dailyOpinionData: null, crossHairs: crossHairs}); \n /*this.fetching = true;\n var data = await getDailyOpinionData(this.state.stockType, this.state.level, selected.date);\n //var data = await getDailyOpinionData(this.state.stockType, this.state.level, new Date('1/1/2019'));\n this.fetching = false;\n if(data.error !== undefined)\n return;\n this.setState({dailyOpinionData: data});*/\n\n this.setQueryParams({\n range: this.state.range,\n symbol: this.state.stockType,\n charttype: this.state.charttype,\n indicator1: this.state.indicator1,\n indicator2: this.state.indicator2,\n opinion: this.state.opinion,\n historyDate: currentDate\n });\n //window.location.reload(false);\n\n }\n\n handleClickNext = async (date) => {\n var currentDate = new Date(date);\n\n let i = 0;\n for( i = 0;i < this.state.data.length;i ++)\n {\n var d = this.state.data[i].date;\n if(d.getFullYear() == currentDate.getFullYear() && d.getMonth() == currentDate.getMonth() && d.getDate() == currentDate.getDate())\n break;\n }\n if(i == this.state.data.length - 1)\n return;\n var newDate = this.state.data[i + 1].date;\n var crossHairs = {xValue: i + 1, yValue: this.state.data[i + 1].open};\n this.setState({isOpinionBoxShow: true, dailyOpinionData: null, crossHairs: crossHairs}); \n this.fetching = true;\n var data = await getDailyOpinionData(this.state.stockType, this.state.level, newDate);\n this.fetching = false;\n if(data.error !== undefined)\n return;\n this.setState({dailyOpinionData: data});\n }\n\n\n\n handleClickPrev = async (date) => {\n\n var currentDate = new Date(date);\n\n let i = 0;\n for( i = 0;i < this.state.data.length;i ++)\n {\n var d = this.state.data[i].date;\n if(d.getFullYear() == currentDate.getFullYear() && d.getMonth() == currentDate.getMonth() && d.getDate() == currentDate.getDate())\n break;\n }\n if(i == 0)\n return;\n var newDate = this.state.data[i - 1].date;\n var crossHairs = {xValue: i - 1, yValue: this.state.data[i - 1].open};\n this.setState({isOpinionBoxShow: true, dailyOpinionData: null, crossHairs: crossHairs}); \n this.fetching = true;\n var data = await getDailyOpinionData(this.state.stockType, this.state.level, newDate);\n this.fetching = false;\n if(data.error !== undefined)\n return;\n this.setState({dailyOpinionData: data});\n\n }\n\n\n renderDailyOpinionBox = () => {\n if(this.state.isOpinionBoxShow === false) {\n return null;\n }\n return (\n {window.opinionBox = ref}}/>\n )\n }\n\n handleCloseOpinionBox = () => {\n this.boxShowed = false;\n this.setState({dailyOpinionData: null, isOpinionBoxShow: false, crossHairs: null});\n }\n\n render() {\n if (this.state.data == null || this.rdy == false) {\n return( \n
\n \n
\n )\n }\n\n return (\n
\n \n
\n {\n this.state.additionalData !== undefined &&\n [\n
\n OUTLOOK:\n
\n {/*
\n \n \n \n
*/}\n
\n \n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
,\n
\n DRAW:\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n ]}\n {\n this.renderDailyOpinionBox()\n }\n
\n Symbol: { this.state.stockType }\n
\n \n
\n )\n }\n}\n\nexport default withCookies(App);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport { CookiesProvider } from 'react-cookie';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nconst EVENTS_TO_MODIFY = ['wheel'];\n\nconst originalAddEventListener = document.addEventListener.bind();\ndocument.addEventListener = (type, listener, options, wantsUntrusted) => {\n let modOptions = options;\n if (EVENTS_TO_MODIFY.includes(type)) {\n if (typeof options === 'boolean') {\n modOptions = {\n capture: options,\n passive: false,\n };\n } else if (typeof options === 'object') {\n modOptions = {\n passive: false,\n ...options,\n };\n }\n }\n\n return originalAddEventListener(type, listener, modOptions, wantsUntrusted);\n};\n\nconst originalRemoveEventListener = document.removeEventListener.bind();\ndocument.removeEventListener = (type, listener, options) => {\n let modOptions = options;\n if (EVENTS_TO_MODIFY.includes(type)) {\n if (typeof options === 'boolean') {\n modOptions = {\n capture: options,\n passive: false,\n };\n } else if (typeof options === 'object') {\n modOptions = {\n passive: false,\n ...options,\n };\n }\n }\n return originalRemoveEventListener(type, listener, modOptions);\n};\n\nReactDOM.render( {window.stockChart = stockChart}}/>, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}