{"version":3,"sources":["webpack:///./node_modules/zrender/lib/core/timsort.js","webpack:///./node_modules/zrender/lib/contain/polygon.js","webpack:///./node_modules/zrender/lib/animation/Animator.js","webpack:///./node_modules/zrender/lib/core/GestureMgr.js","webpack:///./node_modules/zrender/lib/core/arrayDiff2.js","webpack:///./node_modules/zrender/lib/mixin/Transformable.js","webpack:///./node_modules/zrender/lib/graphic/Image.js","webpack:///./node_modules/zrender/lib/core/matrix.js","webpack:///./node_modules/zrender/lib/graphic/Displayable.js","webpack:///./node_modules/zrender/lib/mixin/Eventful.js","webpack:///./node_modules/zrender/lib/core/PathProxy.js","webpack:///./node_modules/zrender/lib/core/env.js","webpack:///./node_modules/zrender/lib/graphic/Style.js","webpack:///./node_modules/zrender/lib/config.js","webpack:///./node_modules/zrender/lib/tool/parseSVG.js","webpack:///./node_modules/zrender/lib/animation/Animation.js","webpack:///./node_modules/zrender/lib/tool/path.js","webpack:///./node_modules/zrender/lib/graphic/IncrementalDisplayable.js","webpack:///./node_modules/zrender/lib/svg/graphic.js","webpack:///./node_modules/zrender/lib/core/vector.js","webpack:///./node_modules/zrender/lib/tool/color.js","webpack:///./node_modules/zrender/lib/graphic/Gradient.js","webpack:///./node_modules/zrender/lib/animation/Clip.js","webpack:///./node_modules/zrender/lib/graphic/shape/Ring.js","webpack:///./node_modules/zrender/lib/graphic/LinearGradient.js","webpack:///./node_modules/zrender/lib/core/log.js","webpack:///./node_modules/zrender/lib/core/curve.js","webpack:///./node_modules/zrender/lib/graphic/shape/Sector.js","webpack:///./node_modules/zrender/lib/svg/helper/Definable.js","webpack:///./node_modules/zrender/lib/graphic/helper/poly.js","webpack:///./node_modules/zrender/lib/graphic/helper/roundRect.js","webpack:///./node_modules/zrender/lib/Layer.js","webpack:///./node_modules/zrender/lib/graphic/helper/image.js","webpack:///./node_modules/zrender/lib/core/event.js","webpack:///./node_modules/zrender/lib/graphic/helper/smoothSpline.js","webpack:///./node_modules/zrender/lib/core/dom.js","webpack:///./node_modules/zrender/lib/contain/quadratic.js","webpack:///./node_modules/zrender/lib/zrender.js","webpack:///./node_modules/zrender/lib/core/util.js","webpack:///./node_modules/zrender/lib/animation/easing.js","webpack:///./node_modules/zrender/lib/graphic/Text.js","webpack:///./node_modules/zrender/lib/graphic/helper/fixShadow.js","webpack:///./node_modules/zrender/lib/graphic/constant.js","webpack:///./node_modules/zrender/lib/core/fourPointsTransform.js","webpack:///./node_modules/zrender/lib/contain/util.js","webpack:///./node_modules/zrender/lib/svg/core.js","webpack:///./node_modules/zrender/lib/contain/windingLine.js","webpack:///./node_modules/zrender/lib/graphic/shape/Polygon.js","webpack:///./node_modules/zrender/lib/graphic/helper/fixClipWithShadow.js","webpack:///./node_modules/zrender/lib/graphic/shape/Arc.js","webpack:///./node_modules/zrender/lib/svg/svg.js","webpack:///./node_modules/zrender/lib/contain/line.js","webpack:///./node_modules/zrender/lib/core/BoundingRect.js","webpack:///./node_modules/zrender/lib/animation/requestAnimationFrame.js","webpack:///./node_modules/zrender/lib/graphic/helper/smoothBezier.js","webpack:///./node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","webpack:///./node_modules/zrender/lib/graphic/mixin/RectText.js","webpack:///./node_modules/zrender/lib/contain/arc.js","webpack:///./node_modules/zrender/lib/svg/helper/ClippathManager.js","webpack:///./node_modules/zrender/lib/graphic/helper/text.js","webpack:///./node_modules/zrender/lib/vml/graphic.js","webpack:///./node_modules/zrender/lib/graphic/shape/BezierCurve.js","webpack:///./node_modules/zrender/lib/graphic/shape/Ellipse.js","webpack:///./node_modules/zrender/lib/Storage.js","webpack:///./node_modules/zrender/lib/svg/helper/GradientManager.js","webpack:///./node_modules/zrender/lib/svg/helper/ShadowManager.js","webpack:///./node_modules/zrender/lib/mixin/Animatable.js","webpack:///./node_modules/zrender/lib/graphic/shape/Rect.js","webpack:///./node_modules/zrender/lib/graphic/shape/Line.js","webpack:///./node_modules/zrender/lib/mixin/Draggable.js","webpack:///./node_modules/zrender/lib/graphic/Path.js","webpack:///./node_modules/zrender/lib/dom/HandlerProxy.js","webpack:///./node_modules/zrender/lib/Handler.js","webpack:///./node_modules/zrender/lib/vml/core.js","webpack:///./node_modules/zrender/lib/graphic/shape/Polyline.js","webpack:///./node_modules/zrender/lib/graphic/CompoundPath.js","webpack:///./node_modules/zrender/lib/core/LRU.js","webpack:///./node_modules/zrender/lib/Element.js","webpack:///./node_modules/zrender/lib/contain/path.js","webpack:///./node_modules/zrender/lib/graphic/shape/Circle.js","webpack:///./node_modules/zrender/lib/svg/Painter.js","webpack:///./node_modules/zrender/lib/graphic/Pattern.js","webpack:///./node_modules/zrender/lib/graphic/RadialGradient.js","webpack:///./node_modules/zrender/lib/core/guid.js","webpack:///./node_modules/zrender/lib/container/Group.js","webpack:///./node_modules/zrender/lib/core/bbox.js","webpack:///./node_modules/zrender/lib/contain/cubic.js","webpack:///./node_modules/zrender/lib/contain/text.js","webpack:///./node_modules/zrender/lib/vml/Painter.js","webpack:///./node_modules/zrender/lib/Painter.js","webpack:///./node_modules/zrender/lib/tool/transformPath.js","webpack:///./node_modules/zrender/lib/vml/vml.js"],"names":["makeAscendingRun","array","lo","hi","compare","runHi","t","reverseRun","binaryInsertionSort","start","mid","pivot","left","right","n","gallopLeft","value","length","hint","lastOffset","maxOffset","offset","tmp","m","gallopRight","TimSort","runStart","runLength","minGallop","stackSize","mergeAt","i","start1","length1","start2","length2","k","cursor1","cursor2","dest","count1","count2","exit","_minGallop","Error","mergeLow","customCursor","customDest","mergeHigh","this","mergeRuns","forceMergeRuns","pushRun","_runStart","_runLength","module","exports","remaining","ts","minRun","r","minRunLength","force","windingLine","isAroundEqual","a","b","Math","abs","contain","points","x","y","w","p","p2","p0","Clip","color","isArrayLike","arraySlice","Array","prototype","slice","defaultGetter","target","key","defaultSetter","interpolateNumber","p1","percent","interpolateString","interpolateArray","out","arrDim","len","len2","j","fillArr","arr0","arr1","arr0Len","arr1Len","push","call","isNaN","isArraySame","catmullRomInterpolateArray","p3","t2","t3","catmullRomInterpolate","v0","v1","cloneValue","ret","rgba2String","rgba","floor","join","createTrackClip","animator","easing","oneTrackDone","keyframes","propName","forceAnimate","getter","_getter","setter","_setter","useSpline","trackLen","trackMaxTime","firstVal","isValueArray","isValueColor","isValueString","lastValue","getArrayDim","sort","time","kfPercents","kfValues","prevValue","isAllValueEqual","colorArray","parse","_target","lastFrame","lastFramePercent","clip","life","loop","_loop","delay","_delay","onframe","frame","min","range","ondestroy","Animator","_tracks","_clipCount","_doneList","_onframeList","_clipList","when","props","tracks","hasOwnProperty","during","callback","pause","_paused","resume","isPaused","_doneCallback","doneList","lastClip","self","clipCount","animation","addClip","oldOnFrame","stop","forwardToLast","clipList","removeClip","done","cb","getClips","_default","eventUtil","GestureMgr","_track","dist","pointPair","dx","dy","sqrt","constructor","recognize","event","root","_doTrack","_recognize","clear","touches","trackItem","touch","pos","clientToLocal","zrX","zrY","eventName","recognizers","gestureInfo","pinch","track","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","type","Diff","buildValues","diff","components","newArr","oldArr","componentPos","componentLen","newPos","oldPos","component","removed","indices","count","added","equals","newLen","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","undefined","canAdd","canRemove","path","pushComponent","last","commonCount","tokenize","arrayDiff","matrix","vector","mIdentity","identity","isNotAroundZero","val","Transformable","opts","position","rotation","scale","origin","transformableProto","transform","needLocalTransform","scaleTmp","updateTransform","parent","parentHasTransform","create","getLocalTransform","mul","copy","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","invert","setTransform","ctx","dpr","restoreTransform","tmpTransform","originTransform","setLocalTransform","atan2","decomposeTransform","transformCoordToLocal","v2","applyTransform","transformCoordToGlobal","rotate","Displayable","BoundingRect","zrUtil","imageHelper","ZImage","brush","prevEl","style","src","image","bind","_image","createOrUpdateImage","onload","isImageReady","width","height","aspect","sWidth","sHeight","drawImage","text","drawRectText","getBoundingRect","_rect","inherits","ArrayCtor","Float32Array","m1","m2","out0","out1","out2","out3","out4","out5","translate","v","rad","aa","ac","atx","ab","ad","aty","st","sin","ct","cos","vx","vy","det","clone","Style","Element","RectText","name","__clipPaths","__dirty","invisible","z","z2","zlevel","draggable","dragging","silent","culling","cursor","rectHover","progressive","incremental","beforeBrush","afterBrush","rectContain","traverse","context","coord","dirty","__dirtyText","__zr","refresh","animateStyle","animate","attrKV","set","setStyle","useStyle","obj","calculateTextPosition","mixin","arrySlice","Eventful","eventProcessor","_$handlers","_$eventProcessor","on","eventful","query","handler","isOnce","_h","host","normalizeQuery","h","wrap","one","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","off","newList","l","trigger","args","arguments","argLen","hItem","filter","apply","afterTrigger","triggerWithContext","curve","vec2","bbox","devicePixelRatio","CMD","M","L","C","Q","A","Z","R","max","min2","max2","mathMin","mathMax","mathCos","mathSin","mathSqrt","mathAbs","hasTypedArray","PathProxy","notSaveData","_saveData","data","_ctx","_xi","_yi","_x0","_y0","_ux","_uy","_len","_lineDash","_dashOffset","_dashIdx","_dashSum","setScale","segmentIgnoreThreshold","getContext","beginPath","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","x1","y1","x2","y2","x3","y3","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","startAngle","endAngle","anticlockwise","arcTo","radius","rect","closePath","x0","y0","fill","toStatic","stroke","setLineDash","lineDash","lineDashSum","setLineDashOffset","setData","appendPath","appendSize","appendPathData","cmd","_expandData","_prevCmd","newData","dash","idx","dashSum","nDash","cubicAt","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","fromLine","fromCubic","fromQuadratic","rx","ry","fromArc","rebuildPath","d","ux","uy","theta","dTheta","psi","fs","scaleX","scaleY","wx","getSystemInfoSync","browser","os","node","wxa","canvasSupported","svgSupported","touchEventsSupported","domSupported","document","worker","navigator","ua","firefox","match","ie","edge","weChat","test","version","createElement","SVGRect","window","pointerEventsSupported","detect","userAgent","fixShadow","ContextCachedBy","STYLE_COMMON_PROPS","extendFrom","createLinearGradient","global","createRadialGradient","styleProto","opacity","fillOpacity","strokeOpacity","lineDashOffset","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","strokeNoScale","font","textFont","fontStyle","fontWeight","fontSize","fontFamily","textTag","textFill","textStroke","textWidth","textHeight","textStrokeWidth","textLineHeight","textPosition","textRect","textOffset","textAlign","textVerticalAlign","textDistance","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","transformText","textRotation","textOrigin","textBackgroundColor","textBorderColor","textBorderWidth","textBorderRadius","textPadding","rich","truncate","blend","el","prevStyle","notCheckCache","__attrCachedBy","STYLE_BIND","prop","styleName","fillStyle","strokeStyle","globalAlpha","globalCompositeOperation","hasStroke","getLineScale","hasFill","otherStyle","overwrite","newStyle","getGradient","canvasGradient","colorStops","addColorStop","debugMode","Group","Text","Circle","Rect","Ellipse","Line","Path","Polygon","Polyline","LinearGradient","createFromString","_util","isString","extend","defaults","trim","each","DILIMITER_REG","parseXML","svg","DOMParser","parseFromString","nodeType","firstChild","nodeName","toLowerCase","nextSibling","SVGParser","_defs","_root","_isDefine","_isText","xml","opt","viewBox","getAttribute","parseFloat","parseAttributes","viewBoxRect","viewBoxTransform","child","_parseNode","viewBoxArr","split","makeViewBoxTransform","ignoreViewBox","elRoot","add","ignoreRootClip","setClipPath","shape","xmlNode","parentGroup","parser","defineParsers","def","id","nodeParsers","_parseText","_textX","_textY","textContent","inheritStyle","g","setShape","circle","line","ellipse","parsePoints","polygon","img","parseInt","gradient","indexOf","stopColor","_parseGradientColorStops","__inheritedStyle","pointsString","list","attributesMap","defs","onlyInlineStyle","zrStyle","isTextEl","replace","transformOps","transformRegex","str","console","warn","parseTransformAttribute","result","styleRegResult","styleList","styleRegex","exec","svgAttrName","parseStyleAttribute","attrValue","elFillProp","elStrokeProp","elStyle","getPaint","elPropName","textBaseline","urlRegex","urlMatch","parseSVG","util","Dispatcher","requestAnimationFrame","Animation","options","stage","_clips","_running","_time","_pausedTime","_pauseStart","addAnimator","clips","removeAnimator","_update","Date","getTime","delta","deferredEvents","deferredClips","e","step","_needsRemove","pop","fire","update","_startLoop","isFinished","transformPath","PI","vMag","vRatio","u","vAngle","acos","processArc","fa","psiDeg","xp","yp","lambda","f","cxp","cyp","commandReg","numberReg","createPathOptions","pathProxy","prevCmd","cpx","cpy","subpathX","subpathY","cmdList","cmdText","cmdStr","charAt","pLen","ctlPtx","ctlPty","pathData","createPathProxyFromString","buildPath","extendFromString","mergePath","pathEls","pathList","pathEl","createPathProxy","__dirtyPath","pathBundle","Displayble","IncrementalDisplayble","_displayables","_temporaryDisplayables","_cursor","notClear","clearDisplaybles","addDisplayable","displayable","notPersistent","addDisplayables","displayables","eachPendingDisplayable","Infinity","childRect","union","localPos","textContain","textHelper","arrayJoin","mathRound","round","PI2","degree","round4","isAroundZero","svgEl","attr","setAttribute","bindStyle","isText","pathHasFill","pathHasStroke","lineCap","lineJoin","miterLimit","svgPath","__svgEl","subPixelOptimize","pathStr","dataLength","nData","clockwise","dThetaPositive","isCircle","unifiedTheta","large","pathDataToString","svgTextDrawRectText","removeOldTextNode","svgImage","HTMLImageElement","dw","dh","__imageSrc","setAttributeNS","attrXLink","svgText","_tmpTextHostRect","_tmpTextBoxPos","_tmpTextTransform","TEXT_ALIGN_TO_ANCHRO","center","middle","hostRect","elTransform","needTransformTextByHostEl","normalizeTextStyle","needDrawText","textSvgEl","__textSvgEl","textSvgElStyle","DEFAULT_FONT","computedFont","__computedFont","__styleFont","contentBlock","__textCotentBlock","parsePlainText","outerHeight","lineHeight","getBoxPosition","baseX","baseY","setTextTransform","textX","textY","adjustTextY","getTextXForPadding","canCacheByTextString","tspanList","__tspanList","tspanOriginLen","__canCacheByTextString","__text","updateTextLocation","textLines","lines","nTextLines","tspan","singleLineText","__zrText","innerHTML","appendChild","createTextNode","removeChild","parentNode","lenSquare","lengthSquare","distance","distanceSquare","distSquare","scaleAndAdd","sub","div","dot","s","normalize","negate","lerp","LRU","kCSSColorTable","clampCssByte","clampCssFloat","parseCssInt","parseCssFloat","cssHueToRgb","lerpNumber","setRgba","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","put","cached","get","iv","substr","op","ep","fname","params","alpha","hsla2rgba","hsla","fastLerp","normalizedValue","colors","leftIndex","rightIndex","ceil","leftColor","rightColor","dv","fastMapToColor","fullOutput","stringify","mapToColor","arrColor","lift","level","colorArr","toHex","toString","modifyHSL","H","S","G","B","vMin","vMax","deltaR","deltaG","deltaB","rgba2hsla","modifyAlpha","Gradient","easingFuncs","_life","_initialized","gap","onrestart","globalTime","deltaTime","_startTime","easingFunc","schedule","restart","remainder","eventType","arg","r0","globalCoord","logError","error","_vector","v2Create","v2DistSquare","mathPow","pow","THREE_SQRT","_v0","_v1","_v2","onet","quadraticAt","cubicDerivativeAt","cubicRootAt","roots","c","t1","disc","K","discSqrt","Y1","Y2","T","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","prev","next","d1","d2","interval","_t","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","fixClipWithShadow","unitX","unitY","ZText","_graphic","Definable","zrId","svgRoot","tagNames","markLabel","domName","_zrId","_svgRoot","_tagNames","_markLabel","_domName","nextId","getDefs","isForceCreating","getElementsByTagName","insertBefore","contains","children","element","onUpdate","dom","addDom","removeDom","getDoms","doms","tagName","tags","concat","markAllUnused","that","markUsed","removeUnused","getSvgProxy","getTextSvgElement","getSvgElement","smoothSpline","smoothBezier","smooth","controlPoints","smoothConstraint","cp1","cp2","r1","r2","r3","r4","total","Pattern","returnFalse","createDom","painter","newDom","createCanvas","getWidth","getHeight","newDomStyle","top","Layer","isObject","domStyle","onselectstart","domBack","ctxBack","config","clearColor","motionBlur","lastFrameAlpha","__used","__drawIndex","__startIndex","__endIndex","getElementCount","initContext","createBackBuffer","resize","clearAll","clearColorGradientOrPattern","haveMotionBLur","clearRect","__canvasGradient","getCanvasPattern","save","fillRect","restore","globalImageCache","imageOnLoad","cachedImgObj","__cachedImgObj","onerror","pending","pendingWrap","cbPayload","hostEl","findExistImage","newImageOrSrc","__zrImageSrc","Image","env","_dom","isCanvasEl","transformCoordWithViewport","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut","calculate","calculateZrXY","layerX","offsetX","layerY","offsetY","getBoundingClientRect","ex","clientX","ey","clientY","box","getNativeEvent","preventDefault","stopPropagation","cancelBubble","returnValue","normalizeEvent","targetTouches","changedTouches","zrDelta","wheelDelta","detail","button","which","attachEvent","removeEventListener","detachEvent","isMiddleOrRightButtonOnMouseUpDown","notLeftMouse","v2Distance","interpolate","isLoop","segs","w2","w3","buildTransformer","inX","inY","inverse","saved","transformer","markers","transformerName","oldSrcCoords","srcCoords","oldCoordTheSame","destCoords","ii","offsetLeft","offsetTop","preparePointerTransformer","propLR","propTB","marker","stl","idxLR","idxTB","cssText","prepareCoordMarkers","toUpperCase","transformLocalCoord","elFrom","elTarget","containStroke","_l","guid","Handler","Storage","Painter","HandlerProxy","useVML","painterCtors","canvas","instances","ZRender","storage","rendererType","renderer","vml","handerProxy","getViewportRoot","flush","_needsRefresh","oldDelFromStorage","delFromStorage","oldAddToStorage","addToStorage","removeSelfFromZr","addSelfToZr","getId","addRoot","remove","delRoot","configLayer","zLevel","setBackgroundColor","backgroundColor","refreshImmediately","_needsRefreshHover","triggerRendered","refreshHoverImmediately","addHover","elMirror","refreshHover","removeHover","clearHover","clearAnimation","pathToImage","setCursorStyle","cursorStyle","findHover","eventHandler","dispose","init","zr","getInstance","registerPainter","Ctor","BUILTIN_OBJECT","TYPED_ARRAY","objToString","Object","arrayProto","nativeForEach","forEach","nativeFilter","nativeSlice","nativeMap","map","nativeReduce","reduce","methods","source","typeStr","isPrimitive","from","isDom","merge","targetProp","sourceProp","isArray","isBuiltInObject","overlay","func","ownerDocument","HashMap","isArr","thisMap","visit","removeKey","$override","fn","mergeAll","targetAndSources","clazz","baseClazz","clazzPrototype","F","superClass","memo","find","curry","isFunction","isTypedArray","eqNaN","retrieve","values","retrieve2","value0","value1","retrieve3","value2","Function","normalizeCssArray","assert","condition","message","setAsPrimitive","createHashMap","concatArray","newArray","noop","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","sinusoidalOut","sinusoidalInOut","exponentialIn","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","shadowColor","renderText","NONE","getStroke","SHADOW_PROPS","PLAIN_TEXT","WILL_BE_RESTORED","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","subRowMask","subRowStart","sum","colLocalIdx","colTag","mA","vh","srcPointX","srcPointY","pk","normalizeRadian","angle","createElementNS","dir","x_","polyHelper","shadowTemp","orignalBrush","modified","clipPaths","clipPath","_a","lt","rb","lb","rt","v2ApplyTransform","other","maxX","maxY","calculateTransform","intersect","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","plain","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","v2Min","v2Max","v2Scale","v2Add","v2Clone","v2Sub","constraint","prevPoint","nextPoint","cps","point","d0","cp0","shift","positiveOrNegative","doubledPosition","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originX","originY","originWidth","originHeight","tmpRect","ClippathManager","updateDom","textEl","parentEl","clipPathEl","svgProxy","cloneNode","_textDom","roundRectHelper","_constant","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","bottom","SHADOW_STYLE_COMMON_PROPS","_tmpTextPositionResult","_tmpBoxPositionResult","normalizeStyle","makeFont","applyTextRotation","placeToken","token","lineTop","tokenStyle","isLineHolder","needDrawBackground","drawBackground","setCtx","getFill","strokeText","fillText","isPlainBg","originalGlobalAlpha","onBgImageLoaded","parsePercent","res","maxValue","lastIndexOf","parseRichText","contentWidth","outerWidth","boxPos","boxX","adjustTextX","boxY","xLeft","xRight","tokens","tokenCount","usedWidth","lineXLeft","lineXRight","drawRichText","renderRichText","needDrawBg","checkCache","cachedByMe","styleFont","propItem","styleProp","ctxProp","textStrokeWidthPrev","strokeWidthChanged","strokeChanged","renderPlainText","colorTool","vmlCore","Z2","initRootElStyle","coordsize","coordorigin","rgb2Str","append","getZIndex","setColorAndOpacity","updateFillAndStroke","vmlEl","zrEl","isFill","createNode","gradientType","focus","expansion","rectWidth","rectHeight","dimension","stops","cs1","cs2","colorAndAlphaList","colorAndAlpha","color1","color2","opacity1","opacity2","method","focusposition","updateFillNode","dashstyle","updateStrokeNode","brushVML","vmlRoot","_vmlEl","needTransform","strokeEl","weight","nPoint","zIndex","removeRectText","onRemove","onAdd","appendRectText","ow","oh","_imageSrc","_imageWidth","_imageHeight","imageRuntimeStyle","runtimeStyle","oldRuntimeWidth","oldRuntimeHeight","sw","sh","hasCrop","doc","vmlElStyle","hasRotation","transformFilter","padding","imageTransformPrefix","imageEl","_imageEl","cropEl","_cropEl","imageELStyle","tmpImage","overflow","cropElStyle","filterStr","textMeasureEl","fontStyleCache","fontStyleCacheCount","fontEl","body","offsetWidth","fromTextEl","textLine","align","verticalAlign","fontString","variant","fontVariant","size","family","getFontStyle","textPathEl","skewEl","textVmlEl","_textVmlEl","textpathok","to","coords","textVmlElStyle","toFixed","string","String","proto","_curve","someVectorAt","isTangent","cpx2","cpy2","cpx1","cpy1","pointAt","tangentAt","ox","oy","timsort","shapeCompareFunc","_roots","_displayList","_displayListLen","getDisplayList","includeIgnore","updateDisplayList","displayList","_updateAndAddDisplayable","ignore","beforeUpdate","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","isGroup","_children","__storage","addChildrenToStorage","delChildrenFromStorage","_renderList","displayableSortFunc","GradientManager","addWithoutUpdate","svgElement","fillOrStroke","hex","ShadowManager","hasShadow","_shadowDom","_shadowDomId","domChild","blur","stdDeviation","Animatable","animators","animateTo","animatable","reverse","stopAnimation","animateToShallow","objShallow","propertyCount","setAttrByPath","animatingShape","pathSplitted","animateFrom","subPixelOptimizeOutputShape","Draggable","_dragStart","_drag","_dragEnd","param","topTarget","draggingTarget","_draggingTarget","_x","_y","dispatchToElement","drift","dropTarget","lastDropTarget","_dropTarget","pathContain","pathProxyForDraw","strokeContainThreshold","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","_fillGradient","_strokeGradient","ctxLineDash","shapeCfg","inBundle","needsUpdateRect","rectWithStroke","_rectWithStroke","lineScale","dirtyPath","__clipTarget","animateShape","Sub","defaultShape","thisShape","mouseHandlerNames","pointerEventNameMap","_event","globalEventSupported","localNativeListenerNames","pointerdown","pointerup","pointermove","pointerout","mouse","pointer","nm","globalNativeListenerNames","eventNameFix","isPointerFromTouch","pointerType","markTouch","zrByTouch","isLocalEl","instance","elTmp","isLocal","domBelongToZr","painterRoot","FakeGlobalEvent","currentTarget","fakeGlobalEventProto","stopImmediatePropagation","localDOMHandlers","mousedown","_mayPointerCapture","mousemove","downPoint","togglePointerCapture","mouseup","mouseout","_pointerCapturing","zrEventControl","toElement","relatedTarget","zrIsToLocalDOM","touchstart","_lastTouchMoment","processGesture","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","scope","domHandlers","nativeEventName","mountSingleDOMEventListener","touching","touchTimer","clearTimeout","setTouchTimer","mountGlobalDOMEventListeners","mount","normalizeGlobalEvent","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","isPointerCapturing","globalHandlerScope","_globalHandlerScope","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","handlerDomProxyProto","setCursor","eventTool","stopEvent","EmptyProxy","handlerNames","proxy","_hovered","_lastX","_lastY","_gestureMgr","setHandlerProxy","isHover","isOutsideBoundary","handlerInstance","isOutside","lastHovered","lastHoveredTarget","hovered","hoveredTarget","eventControl","dispatch","eventArgs","targetInfo","eventPacket","eveType","gestureEvent","makeEventPacket","eachOtherLayer","layer","exclude","hoverCheckResult","gestureMgr","_downEl","_downPoint","_upEl","doCreateNode","urn","win","vmlInited","namespaces","zrvml","initVML","styleSheets","createStyleSheet","addRule","paths","_updatePathDirty","LinkedList","head","tail","linkedListProto","insert","entry","Entry","insertEntry","maxSize","_list","_map","_maxSize","_lastRemovedEntry","LRUProto","leastUsedEntry","hide","show","removeClipPath","cubic","quadratic","windingCubic","nRoots","y0_","y1_","nExtrema","unit","windingQuadratic","y_","windingArc","containPath","isStroke","parseInt10","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","_opts","svgDom","bgRoot","gradientManager","clipPathManager","shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","getType","getSvgDom","getSvgRoot","getViewportRootOffset","viewportRoot","_paintList","_backgroundNode","bgNode","visibleList","listLen","newVisibleList","prevSvgElement","item","textSvgElement","_getDefs","display","_getSize","_width","_height","viewportStyle","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","toDataURL","encodeURIComponent","outerHTML","repeat","createPattern","RadialGradient","idStart","childAt","childOfName","childCount","_doAdd","addBefore","removeAll","eachChild","includeChildren","tmpMat","end","extremity","xDim","yDim","fromPoints","tx","ty","vec2Min","vec2Max","textWidthCache","textWidthCacheCounter","STYLE_REG","measureText","halfHeight","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","ellipsisWidth","subLength","estimateLength","charCode","charCodeAt","getLineHeight","truncOuterHeight","truncOuterWidth","matchedIndex","index","pushTokens","substring","contentHeight","pendingList","stlPadding","truncateWidth","truncateHeight","tokenHeight","tokenWidth","tokenWidthNotSpecified","percentWidth","bgImg","paddingW","remianTruncWidth","block","isEmptyStr","strs","tokensLen","getRichTextRect","getPlainTextRect","adjustTextPositionOnRect","VMLPainter","vmlViewport","_vmlRoot","_vmlViewport","_firstPaint","__alreadyNotVisible","_getWidth","_getHeight","vmlViewportStyle","currentStyle","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","viewRect","singleCanvas","_singleCanvas","rootStyle","zlevelList","_zlevelList","layers","_layers","_layerConfig","_needsManuallyCompositing","mainLayer","__builtin__","_domRoot","domRoot","createRoot","_hoverlayer","_hoverElements","isSingleCanvas","paintAll","_redrawId","random","_backgroundColor","hoverStyle","__hoverMir","__from","hoverElements","hoverLayer","getLayer","originalEl","_doPaintEl","getHoverLayer","redrawId","_updateLayerStatus","finished","_doPaintList","_compositeManually","eachBuiltinLayer","virtual","layerList","zi","useTimer","now","startTime","firstEl","prevElClipPaths","draw","currentLayer","forcePaint","isDisplayableCulled","prevClipPaths","isClipPathChanged","doClip","insertLayer","layersMap","prevLayer","isLayerValid","prevDom","eachLayer","getLayers","updatePrevLayer","prevZlevel","incrementalLayerCount","_clearLayer","layerConfig","_zlevel","delLayer","_progressiveLayers","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","renderToCanvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","mathAtan2"],"mappings":"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","file":"js/npm.zrender.df7837a6.js","sourcesContent":["// https://github.com/mziccard/node-timsort\nvar DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\n\nfunction minRunLength(n) {\n var r = 0;\n\n while (n >= DEFAULT_MIN_MERGE) {\n r |= n & 1;\n n >>= 1;\n }\n\n return n + r;\n}\n\nfunction makeAscendingRun(array, lo, hi, compare) {\n var runHi = lo + 1;\n\n if (runHi === hi) {\n return 1;\n }\n\n if (compare(array[runHi++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi++;\n }\n\n reverseRun(array, lo, runHi);\n } else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi++;\n }\n }\n\n return runHi - lo;\n}\n\nfunction reverseRun(array, lo, hi) {\n hi--;\n\n while (lo < hi) {\n var t = array[lo];\n array[lo++] = array[hi];\n array[hi--] = t;\n }\n}\n\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n if (start === lo) {\n start++;\n }\n\n for (; start < hi; start++) {\n var pivot = array[start];\n var left = lo;\n var right = start;\n var mid;\n\n while (left < right) {\n mid = left + right >>> 1;\n\n if (compare(pivot, array[mid]) < 0) {\n right = mid;\n } else {\n left = mid + 1;\n }\n }\n\n var n = start - left;\n\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2];\n\n case 2:\n array[left + 2] = array[left + 1];\n\n case 1:\n array[left + 1] = array[left];\n break;\n\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1];\n n--;\n }\n\n }\n\n array[left] = pivot;\n }\n}\n\nfunction gallopLeft(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint;\n\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n lastOffset += hint;\n offset += hint;\n } else {\n maxOffset = hint + 1;\n\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n\n lastOffset++;\n\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1;\n } else {\n offset = m;\n }\n }\n\n return offset;\n}\n\nfunction gallopRight(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1;\n\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n } else {\n maxOffset = length - hint;\n\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n lastOffset += hint;\n offset += hint;\n }\n\n lastOffset++;\n\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n\n if (compare(value, array[start + m]) < 0) {\n offset = m;\n } else {\n lastOffset = m + 1;\n }\n }\n\n return offset;\n}\n\nfunction TimSort(array, compare) {\n var minGallop = DEFAULT_MIN_GALLOPING;\n var length = 0;\n var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n var stackLength = 0;\n var runStart;\n var runLength;\n var stackSize = 0;\n length = array.length;\n\n if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n tmpStorageLength = length >>> 1;\n }\n\n var tmp = [];\n stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n runStart = [];\n runLength = [];\n\n function pushRun(_runStart, _runLength) {\n runStart[stackSize] = _runStart;\n runLength[stackSize] = _runLength;\n stackSize += 1;\n }\n\n function mergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n\n if (n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1] || n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1]) {\n if (runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n } else if (runLength[n] > runLength[n + 1]) {\n break;\n }\n\n mergeAt(n);\n }\n }\n\n function forceMergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n\n mergeAt(n);\n }\n }\n\n function mergeAt(i) {\n var start1 = runStart[i];\n var length1 = runLength[i];\n var start2 = runStart[i + 1];\n var length2 = runLength[i + 1];\n runLength[i] = length1 + length2;\n\n if (i === stackSize - 3) {\n runStart[i + 1] = runStart[i + 2];\n runLength[i + 1] = runLength[i + 2];\n }\n\n stackSize--;\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n start1 += k;\n length1 -= k;\n\n if (length1 === 0) {\n return;\n }\n\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n\n if (length2 === 0) {\n return;\n }\n\n if (length1 <= length2) {\n mergeLow(start1, length1, start2, length2);\n } else {\n mergeHigh(start1, length1, start2, length2);\n }\n }\n\n function mergeLow(start1, length1, start2, length2) {\n var i = 0;\n\n for (i = 0; i < length1; i++) {\n tmp[i] = array[start1 + i];\n }\n\n var cursor1 = 0;\n var cursor2 = start2;\n var dest = start1;\n array[dest++] = array[cursor2++];\n\n if (--length2 === 0) {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n\n return;\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n array[dest + length2] = tmp[cursor1];\n return;\n }\n\n var _minGallop = minGallop;\n var count1;\n var count2;\n var exit;\n\n while (1) {\n count1 = 0;\n count2 = 0;\n exit = false;\n\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest++] = array[cursor2++];\n count2++;\n count1 = 0;\n\n if (--length2 === 0) {\n exit = true;\n break;\n }\n } else {\n array[dest++] = tmp[cursor1++];\n count1++;\n count2 = 0;\n\n if (--length1 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n\n if (exit) {\n break;\n }\n\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n\n if (count1 !== 0) {\n for (i = 0; i < count1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n\n dest += count1;\n cursor1 += count1;\n length1 -= count1;\n\n if (length1 <= 1) {\n exit = true;\n break;\n }\n }\n\n array[dest++] = array[cursor2++];\n\n if (--length2 === 0) {\n exit = true;\n break;\n }\n\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n\n if (count2 !== 0) {\n for (i = 0; i < count2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n dest += count2;\n cursor2 += count2;\n length2 -= count2;\n\n if (length2 === 0) {\n exit = true;\n break;\n }\n }\n\n array[dest++] = tmp[cursor1++];\n\n if (--length1 === 1) {\n exit = true;\n break;\n }\n\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n if (exit) {\n break;\n }\n\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n\n _minGallop += 2;\n }\n\n minGallop = _minGallop;\n minGallop < 1 && (minGallop = 1);\n\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n array[dest + length2] = tmp[cursor1];\n } else if (length1 === 0) {\n throw new Error(); // throw new Error('mergeLow preconditions were not respected');\n } else {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n }\n }\n\n function mergeHigh(start1, length1, start2, length2) {\n var i = 0;\n\n for (i = 0; i < length2; i++) {\n tmp[i] = array[start2 + i];\n }\n\n var cursor1 = start1 + length1 - 1;\n var cursor2 = length2 - 1;\n var dest = start2 + length2 - 1;\n var customCursor = 0;\n var customDest = 0;\n array[dest--] = array[cursor1--];\n\n if (--length1 === 0) {\n customCursor = dest - (length2 - 1);\n\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n\n return;\n }\n\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n array[dest] = tmp[cursor2];\n return;\n }\n\n var _minGallop = minGallop;\n\n while (true) {\n var count1 = 0;\n var count2 = 0;\n var exit = false;\n\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest--] = array[cursor1--];\n count1++;\n count2 = 0;\n\n if (--length1 === 0) {\n exit = true;\n break;\n }\n } else {\n array[dest--] = tmp[cursor2--];\n count2++;\n count1 = 0;\n\n if (--length2 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n\n if (exit) {\n break;\n }\n\n do {\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n\n if (count1 !== 0) {\n dest -= count1;\n cursor1 -= count1;\n length1 -= count1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = count1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n if (length1 === 0) {\n exit = true;\n break;\n }\n }\n\n array[dest--] = tmp[cursor2--];\n\n if (--length2 === 1) {\n exit = true;\n break;\n }\n\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n\n if (count2 !== 0) {\n dest -= count2;\n cursor2 -= count2;\n length2 -= count2;\n customDest = dest + 1;\n customCursor = cursor2 + 1;\n\n for (i = 0; i < count2; i++) {\n array[customDest + i] = tmp[customCursor + i];\n }\n\n if (length2 <= 1) {\n exit = true;\n break;\n }\n }\n\n array[dest--] = array[cursor1--];\n\n if (--length1 === 0) {\n exit = true;\n break;\n }\n\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n if (exit) {\n break;\n }\n\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n\n _minGallop += 2;\n }\n\n minGallop = _minGallop;\n\n if (minGallop < 1) {\n minGallop = 1;\n }\n\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n array[dest] = tmp[cursor2];\n } else if (length2 === 0) {\n throw new Error(); // throw new Error('mergeHigh preconditions were not respected');\n } else {\n customCursor = dest - (length2 - 1);\n\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n }\n }\n\n this.mergeRuns = mergeRuns;\n this.forceMergeRuns = forceMergeRuns;\n this.pushRun = pushRun;\n}\n\nfunction sort(array, compare, lo, hi) {\n if (!lo) {\n lo = 0;\n }\n\n if (!hi) {\n hi = array.length;\n }\n\n var remaining = hi - lo;\n\n if (remaining < 2) {\n return;\n }\n\n var runLength = 0;\n\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare);\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n return;\n }\n\n var ts = new TimSort(array, compare);\n var minRun = minRunLength(remaining);\n\n do {\n runLength = makeAscendingRun(array, lo, hi, compare);\n\n if (runLength < minRun) {\n var force = remaining;\n\n if (force > minRun) {\n force = minRun;\n }\n\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n runLength = force;\n }\n\n ts.pushRun(lo, runLength);\n ts.mergeRuns();\n remaining -= runLength;\n lo += runLength;\n } while (remaining !== 0);\n\n ts.forceMergeRuns();\n}\n\nmodule.exports = sort;","var windingLine = require(\"./windingLine\");\n\nvar EPSILON = 1e-8;\n\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\n\nfunction contain(points, x, y) {\n var w = 0;\n var p = points[0];\n\n if (!p) {\n return false;\n }\n\n for (var i = 1; i < points.length; i++) {\n var p2 = points[i];\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n p = p2;\n } // Close polygon\n\n\n var p0 = points[0];\n\n if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n }\n\n return w !== 0;\n}\n\nexports.contain = contain;","var Clip = require(\"./Clip\");\n\nvar color = require(\"../tool/color\");\n\nvar _util = require(\"../core/util\");\n\nvar isArrayLike = _util.isArrayLike;\n\n/**\n * @module echarts/animation/Animator\n */\nvar arraySlice = Array.prototype.slice;\n\nfunction defaultGetter(target, key) {\n return target[key];\n}\n\nfunction defaultSetter(target, key, value) {\n target[key] = value;\n}\n/**\n * @param {number} p0\n * @param {number} p1\n * @param {number} percent\n * @return {number}\n */\n\n\nfunction interpolateNumber(p0, p1, percent) {\n return (p1 - p0) * percent + p0;\n}\n/**\n * @param {string} p0\n * @param {string} p1\n * @param {number} percent\n * @return {string}\n */\n\n\nfunction interpolateString(p0, p1, percent) {\n return percent > 0.5 ? p1 : p0;\n}\n/**\n * @param {Array} p0\n * @param {Array} p1\n * @param {number} percent\n * @param {Array} out\n * @param {number} arrDim\n */\n\n\nfunction interpolateArray(p0, p1, percent, out, arrDim) {\n var len = p0.length;\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n out[i] = interpolateNumber(p0[i], p1[i], percent);\n }\n } else {\n var len2 = len && p0[0].length;\n\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n }\n }\n }\n} // arr0 is source array, arr1 is target array.\n// Do some preprocess to avoid error happened when interpolating from arr0 to arr1\n\n\nfunction fillArr(arr0, arr1, arrDim) {\n var arr0Len = arr0.length;\n var arr1Len = arr1.length;\n\n if (arr0Len !== arr1Len) {\n // FIXME Not work for TypedArray\n var isPreviousLarger = arr0Len > arr1Len;\n\n if (isPreviousLarger) {\n // Cut the previous\n arr0.length = arr1Len;\n } else {\n // Fill the previous\n for (var i = arr0Len; i < arr1Len; i++) {\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n }\n }\n } // Handling NaN value\n\n\n var len2 = arr0[0] && arr0[0].length;\n\n for (var i = 0; i < arr0.length; i++) {\n if (arrDim === 1) {\n if (isNaN(arr0[i])) {\n arr0[i] = arr1[i];\n }\n } else {\n for (var j = 0; j < len2; j++) {\n if (isNaN(arr0[i][j])) {\n arr0[i][j] = arr1[i][j];\n }\n }\n }\n }\n}\n/**\n * @param {Array} arr0\n * @param {Array} arr1\n * @param {number} arrDim\n * @return {boolean}\n */\n\n\nfunction isArraySame(arr0, arr1, arrDim) {\n if (arr0 === arr1) {\n return true;\n }\n\n var len = arr0.length;\n\n if (len !== arr1.length) {\n return false;\n }\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n if (arr0[i] !== arr1[i]) {\n return false;\n }\n }\n } else {\n var len2 = arr0[0].length;\n\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n if (arr0[i][j] !== arr1[i][j]) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n/**\n * Catmull Rom interpolate array\n * @param {Array} p0\n * @param {Array} p1\n * @param {Array} p2\n * @param {Array} p3\n * @param {number} t\n * @param {number} t2\n * @param {number} t3\n * @param {Array} out\n * @param {number} arrDim\n */\n\n\nfunction catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) {\n var len = p0.length;\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n }\n } else {\n var len2 = p0[0].length;\n\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n }\n }\n }\n}\n/**\n * Catmull Rom interpolate number\n * @param {number} p0\n * @param {number} p1\n * @param {number} p2\n * @param {number} p3\n * @param {number} t\n * @param {number} t2\n * @param {number} t3\n * @return {number}\n */\n\n\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\n\nfunction cloneValue(value) {\n if (isArrayLike(value)) {\n var len = value.length;\n\n if (isArrayLike(value[0])) {\n var ret = [];\n\n for (var i = 0; i < len; i++) {\n ret.push(arraySlice.call(value[i]));\n }\n\n return ret;\n }\n\n return arraySlice.call(value);\n }\n\n return value;\n}\n\nfunction rgba2String(rgba) {\n rgba[0] = Math.floor(rgba[0]);\n rgba[1] = Math.floor(rgba[1]);\n rgba[2] = Math.floor(rgba[2]);\n return 'rgba(' + rgba.join(',') + ')';\n}\n\nfunction getArrayDim(keyframes) {\n var lastValue = keyframes[keyframes.length - 1].value;\n return isArrayLike(lastValue && lastValue[0]) ? 2 : 1;\n}\n\nfunction createTrackClip(animator, easing, oneTrackDone, keyframes, propName, forceAnimate) {\n var getter = animator._getter;\n var setter = animator._setter;\n var useSpline = easing === 'spline';\n var trackLen = keyframes.length;\n\n if (!trackLen) {\n return;\n } // Guess data type\n\n\n var firstVal = keyframes[0].value;\n var isValueArray = isArrayLike(firstVal);\n var isValueColor = false;\n var isValueString = false; // For vertices morphing\n\n var arrDim = isValueArray ? getArrayDim(keyframes) : 0;\n var trackMaxTime; // Sort keyframe as ascending\n\n keyframes.sort(function (a, b) {\n return a.time - b.time;\n });\n trackMaxTime = keyframes[trackLen - 1].time; // Percents of each keyframe\n\n var kfPercents = []; // Value of each keyframe\n\n var kfValues = [];\n var prevValue = keyframes[0].value;\n var isAllValueEqual = true;\n\n for (var i = 0; i < trackLen; i++) {\n kfPercents.push(keyframes[i].time / trackMaxTime); // Assume value is a color when it is a string\n\n var value = keyframes[i].value; // Check if value is equal, deep check if value is array\n\n if (!(isValueArray && isArraySame(value, prevValue, arrDim) || !isValueArray && value === prevValue)) {\n isAllValueEqual = false;\n }\n\n prevValue = value; // Try converting a string to a color array\n\n if (typeof value === 'string') {\n var colorArray = color.parse(value);\n\n if (colorArray) {\n value = colorArray;\n isValueColor = true;\n } else {\n isValueString = true;\n }\n }\n\n kfValues.push(value);\n }\n\n if (!forceAnimate && isAllValueEqual) {\n return;\n }\n\n var lastValue = kfValues[trackLen - 1]; // Polyfill array and NaN value\n\n for (var i = 0; i < trackLen - 1; i++) {\n if (isValueArray) {\n fillArr(kfValues[i], lastValue, arrDim);\n } else {\n if (isNaN(kfValues[i]) && !isNaN(lastValue) && !isValueString && !isValueColor) {\n kfValues[i] = lastValue;\n }\n }\n }\n\n isValueArray && fillArr(getter(animator._target, propName), lastValue, arrDim); // Cache the key of last frame to speed up when\n // animation playback is sequency\n\n var lastFrame = 0;\n var lastFramePercent = 0;\n var start;\n var w;\n var p0;\n var p1;\n var p2;\n var p3;\n\n if (isValueColor) {\n var rgba = [0, 0, 0, 0];\n }\n\n var onframe = function (target, percent) {\n // Find the range keyframes\n // kf1-----kf2---------current--------kf3\n // find kf2 and kf3 and do interpolation\n var frame; // In the easing function like elasticOut, percent may less than 0\n\n if (percent < 0) {\n frame = 0;\n } else if (percent < lastFramePercent) {\n // Start from next key\n // PENDING start from lastFrame ?\n start = Math.min(lastFrame + 1, trackLen - 1);\n\n for (frame = start; frame >= 0; frame--) {\n if (kfPercents[frame] <= percent) {\n break;\n }\n } // PENDING really need to do this ?\n\n\n frame = Math.min(frame, trackLen - 2);\n } else {\n for (frame = lastFrame; frame < trackLen; frame++) {\n if (kfPercents[frame] > percent) {\n break;\n }\n }\n\n frame = Math.min(frame - 1, trackLen - 2);\n }\n\n lastFrame = frame;\n lastFramePercent = percent;\n var range = kfPercents[frame + 1] - kfPercents[frame];\n\n if (range === 0) {\n return;\n } else {\n w = (percent - kfPercents[frame]) / range;\n }\n\n if (useSpline) {\n p1 = kfValues[frame];\n p0 = kfValues[frame === 0 ? frame : frame - 1];\n p2 = kfValues[frame > trackLen - 2 ? trackLen - 1 : frame + 1];\n p3 = kfValues[frame > trackLen - 3 ? trackLen - 1 : frame + 2];\n\n if (isValueArray) {\n catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim);\n } else {\n var value;\n\n if (isValueColor) {\n value = catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1);\n value = rgba2String(rgba);\n } else if (isValueString) {\n // String is step(0.5)\n return interpolateString(p1, p2, w);\n } else {\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n }\n\n setter(target, propName, value);\n }\n } else {\n if (isValueArray) {\n interpolateArray(kfValues[frame], kfValues[frame + 1], w, getter(target, propName), arrDim);\n } else {\n var value;\n\n if (isValueColor) {\n interpolateArray(kfValues[frame], kfValues[frame + 1], w, rgba, 1);\n value = rgba2String(rgba);\n } else if (isValueString) {\n // String is step(0.5)\n return interpolateString(kfValues[frame], kfValues[frame + 1], w);\n } else {\n value = interpolateNumber(kfValues[frame], kfValues[frame + 1], w);\n }\n\n setter(target, propName, value);\n }\n }\n };\n\n var clip = new Clip({\n target: animator._target,\n life: trackMaxTime,\n loop: animator._loop,\n delay: animator._delay,\n onframe: onframe,\n ondestroy: oneTrackDone\n });\n\n if (easing && easing !== 'spline') {\n clip.easing = easing;\n }\n\n return clip;\n}\n/**\n * @alias module:zrender/animation/Animator\n * @constructor\n * @param {Object} target\n * @param {boolean} loop\n * @param {Function} getter\n * @param {Function} setter\n */\n\n\nvar Animator = function (target, loop, getter, setter) {\n this._tracks = {};\n this._target = target;\n this._loop = loop || false;\n this._getter = getter || defaultGetter;\n this._setter = setter || defaultSetter;\n this._clipCount = 0;\n this._delay = 0;\n this._doneList = [];\n this._onframeList = [];\n this._clipList = [];\n};\n\nAnimator.prototype = {\n /**\n * Set Animation keyframe\n * @param {number} time 关键帧时间,单位是ms\n * @param {Object} props 关键帧的属性值,key-value表示\n * @return {module:zrender/animation/Animator}\n */\n when: function (time\n /* ms */\n , props) {\n var tracks = this._tracks;\n\n for (var propName in props) {\n if (!props.hasOwnProperty(propName)) {\n continue;\n }\n\n if (!tracks[propName]) {\n tracks[propName] = []; // Invalid value\n\n var value = this._getter(this._target, propName);\n\n if (value == null) {\n // zrLog('Invalid property ' + propName);\n continue;\n } // If time is 0\n // Then props is given initialize value\n // Else\n // Initialize value from current prop value\n\n\n if (time !== 0) {\n tracks[propName].push({\n time: 0,\n value: cloneValue(value)\n });\n }\n }\n\n tracks[propName].push({\n time: time,\n value: props[propName]\n });\n }\n\n return this;\n },\n\n /**\n * 添加动画每一帧的回调函数\n * @param {Function} callback\n * @return {module:zrender/animation/Animator}\n */\n during: function (callback) {\n this._onframeList.push(callback);\n\n return this;\n },\n pause: function () {\n for (var i = 0; i < this._clipList.length; i++) {\n this._clipList[i].pause();\n }\n\n this._paused = true;\n },\n resume: function () {\n for (var i = 0; i < this._clipList.length; i++) {\n this._clipList[i].resume();\n }\n\n this._paused = false;\n },\n isPaused: function () {\n return !!this._paused;\n },\n _doneCallback: function () {\n // Clear all tracks\n this._tracks = {}; // Clear all clips\n\n this._clipList.length = 0;\n var doneList = this._doneList;\n var len = doneList.length;\n\n for (var i = 0; i < len; i++) {\n doneList[i].call(this);\n }\n },\n\n /**\n * Start the animation\n * @param {string|Function} [easing]\n * 动画缓动函数,详见{@link module:zrender/animation/easing}\n * @param {boolean} forceAnimate\n * @return {module:zrender/animation/Animator}\n */\n start: function (easing, forceAnimate) {\n var self = this;\n var clipCount = 0;\n\n var oneTrackDone = function () {\n clipCount--;\n\n if (!clipCount) {\n self._doneCallback();\n }\n };\n\n var lastClip;\n\n for (var propName in this._tracks) {\n if (!this._tracks.hasOwnProperty(propName)) {\n continue;\n }\n\n var clip = createTrackClip(this, easing, oneTrackDone, this._tracks[propName], propName, forceAnimate);\n\n if (clip) {\n this._clipList.push(clip);\n\n clipCount++; // If start after added to animation\n\n if (this.animation) {\n this.animation.addClip(clip);\n }\n\n lastClip = clip;\n }\n } // Add during callback on the last clip\n\n\n if (lastClip) {\n var oldOnFrame = lastClip.onframe;\n\n lastClip.onframe = function (target, percent) {\n oldOnFrame(target, percent);\n\n for (var i = 0; i < self._onframeList.length; i++) {\n self._onframeList[i](target, percent);\n }\n };\n } // This optimization will help the case that in the upper application\n // the view may be refreshed frequently, where animation will be\n // called repeatly but nothing changed.\n\n\n if (!clipCount) {\n this._doneCallback();\n }\n\n return this;\n },\n\n /**\n * Stop animation\n * @param {boolean} forwardToLast If move to last frame before stop\n */\n stop: function (forwardToLast) {\n var clipList = this._clipList;\n var animation = this.animation;\n\n for (var i = 0; i < clipList.length; i++) {\n var clip = clipList[i];\n\n if (forwardToLast) {\n // Move to last frame before stop\n clip.onframe(this._target, 1);\n }\n\n animation && animation.removeClip(clip);\n }\n\n clipList.length = 0;\n },\n\n /**\n * Set when animation delay starts\n * @param {number} time 单位ms\n * @return {module:zrender/animation/Animator}\n */\n delay: function (time) {\n this._delay = time;\n return this;\n },\n\n /**\n * Add callback for animation end\n * @param {Function} cb\n * @return {module:zrender/animation/Animator}\n */\n done: function (cb) {\n if (cb) {\n this._doneList.push(cb);\n }\n\n return this;\n },\n\n /**\n * @return {Array.}\n */\n getClips: function () {\n return this._clipList;\n }\n};\nvar _default = Animator;\nmodule.exports = _default;","var eventUtil = require(\"./event\");\n\n/**\n * Only implements needed gestures for mobile.\n */\nvar GestureMgr = function () {\n /**\n * @private\n * @type {Array.}\n */\n this._track = [];\n};\n\nGestureMgr.prototype = {\n constructor: GestureMgr,\n recognize: function (event, target, root) {\n this._doTrack(event, target, root);\n\n return this._recognize(event);\n },\n clear: function () {\n this._track.length = 0;\n return this;\n },\n _doTrack: function (event, target, root) {\n var touches = event.touches;\n\n if (!touches) {\n return;\n }\n\n var trackItem = {\n points: [],\n touches: [],\n target: target,\n event: event\n };\n\n for (var i = 0, len = touches.length; i < len; i++) {\n var touch = touches[i];\n var pos = eventUtil.clientToLocal(root, touch, {});\n trackItem.points.push([pos.zrX, pos.zrY]);\n trackItem.touches.push(touch);\n }\n\n this._track.push(trackItem);\n },\n _recognize: function (event) {\n for (var eventName in recognizers) {\n if (recognizers.hasOwnProperty(eventName)) {\n var gestureInfo = recognizers[eventName](this._track, event);\n\n if (gestureInfo) {\n return gestureInfo;\n }\n }\n }\n }\n};\n\nfunction dist(pointPair) {\n var dx = pointPair[1][0] - pointPair[0][0];\n var dy = pointPair[1][1] - pointPair[0][1];\n return Math.sqrt(dx * dx + dy * dy);\n}\n\nfunction center(pointPair) {\n return [(pointPair[0][0] + pointPair[1][0]) / 2, (pointPair[0][1] + pointPair[1][1]) / 2];\n}\n\nvar recognizers = {\n pinch: function (track, event) {\n var trackLen = track.length;\n\n if (!trackLen) {\n return;\n }\n\n var pinchEnd = (track[trackLen - 1] || {}).points;\n var pinchPre = (track[trackLen - 2] || {}).points || pinchEnd;\n\n if (pinchPre && pinchPre.length > 1 && pinchEnd && pinchEnd.length > 1) {\n var pinchScale = dist(pinchEnd) / dist(pinchPre);\n !isFinite(pinchScale) && (pinchScale = 1);\n event.pinchScale = pinchScale;\n var pinchCenter = center(pinchEnd);\n event.pinchX = pinchCenter[0];\n event.pinchY = pinchCenter[1];\n return {\n type: 'pinch',\n target: track[0].target,\n event: event\n };\n }\n } // Only pinch currently.\n\n};\nvar _default = GestureMgr;\nmodule.exports = _default;","// Myers' Diff Algorithm\n// Modified from https://github.com/kpdecker/jsdiff/blob/master/src/diff/base.js\nfunction Diff() {}\n\nDiff.prototype = {\n diff: function (oldArr, newArr, equals) {\n if (!equals) {\n equals = function (a, b) {\n return a === b;\n };\n }\n\n this.equals = equals;\n var self = this;\n oldArr = oldArr.slice();\n newArr = newArr.slice(); // Allow subclasses to massage the input prior to running\n\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newArr, oldArr, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n var indices = [];\n\n for (var i = 0; i < newArr.length; i++) {\n indices.push(i);\n } // Identity per the equality and tokenizer\n\n\n return [{\n indices: indices,\n count: newArr.length\n }];\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath;\n var addPath = bestPath[diagonalPath - 1];\n var removePath = bestPath[diagonalPath + 1];\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen;\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n oldPos = self.extractCommon(basePath, newArr, oldArr, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n return buildValues(self, basePath.components, newArr, oldArr);\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n }\n\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n },\n pushComponent: function (components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function (basePath, newArr, oldArr, diagonalPath) {\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var newPos = basePath.newPos;\n var oldPos = newPos - diagonalPath;\n var commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n tokenize: function (value) {\n return value.slice();\n },\n join: function (value) {\n return value.slice();\n }\n};\n\nfunction buildValues(diff, components, newArr, oldArr) {\n var componentPos = 0;\n var componentLen = components.length;\n var newPos = 0;\n var oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n var indices = [];\n\n for (var i = newPos; i < newPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n var indices = [];\n\n for (var i = oldPos; i < oldPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n oldPos += component.count;\n }\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n}\n\nvar arrayDiff = new Diff();\n\nfunction _default(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\n\nmodule.exports = _default;","var matrix = require(\"../core/matrix\");\n\nvar vector = require(\"../core/vector\");\n\n/**\n * 提供变换扩展\n * @module zrender/mixin/Transformable\n * @author pissang (https://www.github.com/pissang)\n */\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\n\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\n/**\n * @alias module:zrender/mixin/Transformable\n * @constructor\n */\n\n\nvar Transformable = function (opts) {\n opts = opts || {}; // If there are no given position, rotation, scale\n\n if (!opts.position) {\n /**\n * 平移\n * @type {Array.}\n * @default [0, 0]\n */\n this.position = [0, 0];\n }\n\n if (opts.rotation == null) {\n /**\n * 旋转\n * @type {Array.}\n * @default 0\n */\n this.rotation = 0;\n }\n\n if (!opts.scale) {\n /**\n * 缩放\n * @type {Array.}\n * @default [1, 1]\n */\n this.scale = [1, 1];\n }\n /**\n * 旋转和缩放的原点\n * @type {Array.}\n * @default null\n */\n\n\n this.origin = this.origin || null;\n};\n\nvar transformableProto = Transformable.prototype;\ntransformableProto.transform = null;\n/**\n * 判断是否需要有坐标变换\n * 如果有坐标变换, 则从position, rotation, scale以及父节点的transform计算出自身的transform矩阵\n */\n\ntransformableProto.needLocalTransform = function () {\n return isNotAroundZero(this.rotation) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1);\n};\n\nvar scaleTmp = [];\n\ntransformableProto.updateTransform = function () {\n var parent = this.parent;\n var parentHasTransform = parent && parent.transform;\n var needLocalTransform = this.needLocalTransform();\n var m = this.transform;\n\n if (!(needLocalTransform || parentHasTransform)) {\n m && mIdentity(m);\n return;\n }\n\n m = m || matrix.create();\n\n if (needLocalTransform) {\n this.getLocalTransform(m);\n } else {\n mIdentity(m);\n } // 应用父节点变换\n\n\n if (parentHasTransform) {\n if (needLocalTransform) {\n matrix.mul(m, parent.transform, m);\n } else {\n matrix.copy(m, parent.transform);\n }\n } // 保存这个变换矩阵\n\n\n this.transform = m;\n var globalScaleRatio = this.globalScaleRatio;\n\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\n this.getGlobalScale(scaleTmp);\n var relX = scaleTmp[0] < 0 ? -1 : 1;\n var relY = scaleTmp[1] < 0 ? -1 : 1;\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n m[0] *= sx;\n m[1] *= sx;\n m[2] *= sy;\n m[3] *= sy;\n }\n\n this.invTransform = this.invTransform || matrix.create();\n matrix.invert(this.invTransform, m);\n};\n\ntransformableProto.getLocalTransform = function (m) {\n return Transformable.getLocalTransform(this, m);\n};\n/**\n * 将自己的transform应用到context上\n * @param {CanvasRenderingContext2D} ctx\n */\n\n\ntransformableProto.setTransform = function (ctx) {\n var m = this.transform;\n var dpr = ctx.dpr || 1;\n\n if (m) {\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n } else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n};\n\ntransformableProto.restoreTransform = function (ctx) {\n var dpr = ctx.dpr || 1;\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n};\n\nvar tmpTransform = [];\nvar originTransform = matrix.create();\n\ntransformableProto.setLocalTransform = function (m) {\n if (!m) {\n // TODO return or set identity?\n return;\n }\n\n var sx = m[0] * m[0] + m[1] * m[1];\n var sy = m[2] * m[2] + m[3] * m[3];\n var position = this.position;\n var scale = this.scale;\n\n if (isNotAroundZero(sx - 1)) {\n sx = Math.sqrt(sx);\n }\n\n if (isNotAroundZero(sy - 1)) {\n sy = Math.sqrt(sy);\n }\n\n if (m[0] < 0) {\n sx = -sx;\n }\n\n if (m[3] < 0) {\n sy = -sy;\n }\n\n position[0] = m[4];\n position[1] = m[5];\n scale[0] = sx;\n scale[1] = sy;\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n};\n/**\n * 分解`transform`矩阵到`position`, `rotation`, `scale`\n */\n\n\ntransformableProto.decomposeTransform = function () {\n if (!this.transform) {\n return;\n }\n\n var parent = this.parent;\n var m = this.transform;\n\n if (parent && parent.transform) {\n // Get local transform and decompose them to position, scale, rotation\n matrix.mul(tmpTransform, parent.invTransform, m);\n m = tmpTransform;\n }\n\n var origin = this.origin;\n\n if (origin && (origin[0] || origin[1])) {\n originTransform[4] = origin[0];\n originTransform[5] = origin[1];\n matrix.mul(tmpTransform, m, originTransform);\n tmpTransform[4] -= origin[0];\n tmpTransform[5] -= origin[1];\n m = tmpTransform;\n }\n\n this.setLocalTransform(m);\n};\n/**\n * Get global scale\n * @return {Array.}\n */\n\n\ntransformableProto.getGlobalScale = function (out) {\n var m = this.transform;\n out = out || [];\n\n if (!m) {\n out[0] = 1;\n out[1] = 1;\n return out;\n }\n\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n\n if (m[0] < 0) {\n out[0] = -out[0];\n }\n\n if (m[3] < 0) {\n out[1] = -out[1];\n }\n\n return out;\n};\n/**\n * 变换坐标位置到 shape 的局部坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToLocal = function (x, y) {\n var v2 = [x, y];\n var invTransform = this.invTransform;\n\n if (invTransform) {\n vector.applyTransform(v2, v2, invTransform);\n }\n\n return v2;\n};\n/**\n * 变换局部坐标位置到全局坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToGlobal = function (x, y) {\n var v2 = [x, y];\n var transform = this.transform;\n\n if (transform) {\n vector.applyTransform(v2, v2, transform);\n }\n\n return v2;\n};\n/**\n * @static\n * @param {Object} target\n * @param {Array.} target.origin\n * @param {number} target.rotation\n * @param {Array.} target.position\n * @param {Array.} [m]\n */\n\n\nTransformable.getLocalTransform = function (target, m) {\n m = m || [];\n mIdentity(m);\n var origin = target.origin;\n var scale = target.scale || [1, 1];\n var rotation = target.rotation || 0;\n var position = target.position || [0, 0];\n\n if (origin) {\n // Translate to origin\n m[4] -= origin[0];\n m[5] -= origin[1];\n }\n\n matrix.scale(m, m, scale);\n\n if (rotation) {\n matrix.rotate(m, m, rotation);\n }\n\n if (origin) {\n // Translate back from origin\n m[4] += origin[0];\n m[5] += origin[1];\n }\n\n m[4] += position[0];\n m[5] += position[1];\n return m;\n};\n\nvar _default = Transformable;\nmodule.exports = _default;","var Displayable = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar zrUtil = require(\"../core/util\");\n\nvar imageHelper = require(\"./helper/image\");\n\n/**\n * @alias zrender/graphic/Image\n * @extends module:zrender/graphic/Displayable\n * @constructor\n * @param {Object} opts\n */\nfunction ZImage(opts) {\n Displayable.call(this, opts);\n}\n\nZImage.prototype = {\n constructor: ZImage,\n type: 'image',\n brush: function (ctx, prevEl) {\n var style = this.style;\n var src = style.image; // Must bind each time\n\n style.bind(ctx, this, prevEl);\n var image = this._image = imageHelper.createOrUpdateImage(src, this._image, this, this.onload);\n\n if (!image || !imageHelper.isImageReady(image)) {\n return;\n } // 图片已经加载完成\n // if (image.nodeName.toUpperCase() == 'IMG') {\n // if (!image.complete) {\n // return;\n // }\n // }\n // Else is canvas\n\n\n var x = style.x || 0;\n var y = style.y || 0;\n var width = style.width;\n var height = style.height;\n var aspect = image.width / image.height;\n\n if (width == null && height != null) {\n // Keep image/height ratio\n width = height * aspect;\n } else if (height == null && width != null) {\n height = width / aspect;\n } else if (width == null && height == null) {\n width = image.width;\n height = image.height;\n } // 设置transform\n\n\n this.setTransform(ctx);\n\n if (style.sWidth && style.sHeight) {\n var sx = style.sx || 0;\n var sy = style.sy || 0;\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n } else if (style.sx && style.sy) {\n var sx = style.sx;\n var sy = style.sy;\n var sWidth = width - sx;\n var sHeight = height - sy;\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n } else {\n ctx.drawImage(image, x, y, width, height);\n } // Draw rect text\n\n\n if (style.text != null) {\n // Only restore transform when needs draw text.\n this.restoreTransform(ctx);\n this.drawRectText(ctx, this.getBoundingRect());\n }\n },\n getBoundingRect: function () {\n var style = this.style;\n\n if (!this._rect) {\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\n }\n\n return this._rect;\n }\n};\nzrUtil.inherits(ZImage, Displayable);\nvar _default = ZImage;\nmodule.exports = _default;","/**\n * 3x2矩阵操作类\n * @exports zrender/tool/matrix\n */\n\n/* global Float32Array */\nvar ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array;\n/**\n * Create a identity matrix.\n * @return {Float32Array|Array.}\n */\n\nfunction create() {\n var out = new ArrayCtor(6);\n identity(out);\n return out;\n}\n/**\n * 设置矩阵为单位矩阵\n * @param {Float32Array|Array.} out\n */\n\n\nfunction identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n/**\n * 复制矩阵\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} m\n */\n\n\nfunction copy(out, m) {\n out[0] = m[0];\n out[1] = m[1];\n out[2] = m[2];\n out[3] = m[3];\n out[4] = m[4];\n out[5] = m[5];\n return out;\n}\n/**\n * 矩阵相乘\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} m1\n * @param {Float32Array|Array.} m2\n */\n\n\nfunction mul(out, m1, m2) {\n // Consider matrix.mul(m, m2, m);\n // where out is the same as m2.\n // So use temp variable to escape error.\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = out3;\n out[4] = out4;\n out[5] = out5;\n return out;\n}\n/**\n * 平移变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {Float32Array|Array.} v\n */\n\n\nfunction translate(out, a, v) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4] + v[0];\n out[5] = a[5] + v[1];\n return out;\n}\n/**\n * 旋转变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {number} rad\n */\n\n\nfunction rotate(out, a, rad) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var st = Math.sin(rad);\n var ct = Math.cos(rad);\n out[0] = aa * ct + ab * st;\n out[1] = -aa * st + ab * ct;\n out[2] = ac * ct + ad * st;\n out[3] = -ac * st + ct * ad;\n out[4] = ct * atx + st * aty;\n out[5] = ct * aty - st * atx;\n return out;\n}\n/**\n * 缩放变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {Float32Array|Array.} v\n */\n\n\nfunction scale(out, a, v) {\n var vx = v[0];\n var vy = v[1];\n out[0] = a[0] * vx;\n out[1] = a[1] * vy;\n out[2] = a[2] * vx;\n out[3] = a[3] * vy;\n out[4] = a[4] * vx;\n out[5] = a[5] * vy;\n return out;\n}\n/**\n * 求逆矩阵\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n */\n\n\nfunction invert(out, a) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var det = aa * ad - ab * ac;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = ad * det;\n out[1] = -ab * det;\n out[2] = -ac * det;\n out[3] = aa * det;\n out[4] = (ac * aty - ad * atx) * det;\n out[5] = (ab * atx - aa * aty) * det;\n return out;\n}\n/**\n * Clone a new matrix.\n * @param {Float32Array|Array.} a\n */\n\n\nfunction clone(a) {\n var b = create();\n copy(b, a);\n return b;\n}\n\nexports.create = create;\nexports.identity = identity;\nexports.copy = copy;\nexports.mul = mul;\nexports.translate = translate;\nexports.rotate = rotate;\nexports.scale = scale;\nexports.invert = invert;\nexports.clone = clone;","var zrUtil = require(\"../core/util\");\n\nvar Style = require(\"./Style\");\n\nvar Element = require(\"../Element\");\n\nvar RectText = require(\"./mixin/RectText\");\n\n/**\n * Base class of all displayable graphic objects\n * @module zrender/graphic/Displayable\n */\n\n/**\n * @alias module:zrender/graphic/Displayable\n * @extends module:zrender/Element\n * @extends module:zrender/graphic/mixin/RectText\n */\nfunction Displayable(opts) {\n opts = opts || {};\n Element.call(this, opts); // Extend properties\n\n for (var name in opts) {\n if (opts.hasOwnProperty(name) && name !== 'style') {\n this[name] = opts[name];\n }\n }\n /**\n * @type {module:zrender/graphic/Style}\n */\n\n\n this.style = new Style(opts.style, this);\n this._rect = null; // Shapes for cascade clipping.\n // Can only be `null`/`undefined` or an non-empty array, MUST NOT be an empty array.\n // because it is easy to only using null to check whether clipPaths changed.\n\n this.__clipPaths = null; // FIXME Stateful must be mixined after style is setted\n // Stateful.call(this, opts);\n}\n\nDisplayable.prototype = {\n constructor: Displayable,\n type: 'displayable',\n\n /**\n * Dirty flag. From which painter will determine if this displayable object needs brush.\n * @name module:zrender/graphic/Displayable#__dirty\n * @type {boolean}\n */\n __dirty: true,\n\n /**\n * Whether the displayable object is visible. when it is true, the displayable object\n * is not drawn, but the mouse event can still trigger the object.\n * @name module:/zrender/graphic/Displayable#invisible\n * @type {boolean}\n * @default false\n */\n invisible: false,\n\n /**\n * @name module:/zrender/graphic/Displayable#z\n * @type {number}\n * @default 0\n */\n z: 0,\n\n /**\n * @name module:/zrender/graphic/Displayable#z\n * @type {number}\n * @default 0\n */\n z2: 0,\n\n /**\n * The z level determines the displayable object can be drawn in which layer canvas.\n * @name module:/zrender/graphic/Displayable#zlevel\n * @type {number}\n * @default 0\n */\n zlevel: 0,\n\n /**\n * Whether it can be dragged.\n * @name module:/zrender/graphic/Displayable#draggable\n * @type {boolean}\n * @default false\n */\n draggable: false,\n\n /**\n * Whether is it dragging.\n * @name module:/zrender/graphic/Displayable#draggable\n * @type {boolean}\n * @default false\n */\n dragging: false,\n\n /**\n * Whether to respond to mouse events.\n * @name module:/zrender/graphic/Displayable#silent\n * @type {boolean}\n * @default false\n */\n silent: false,\n\n /**\n * If enable culling\n * @type {boolean}\n * @default false\n */\n culling: false,\n\n /**\n * Mouse cursor when hovered\n * @name module:/zrender/graphic/Displayable#cursor\n * @type {string}\n */\n cursor: 'pointer',\n\n /**\n * If hover area is bounding rect\n * @name module:/zrender/graphic/Displayable#rectHover\n * @type {string}\n */\n rectHover: false,\n\n /**\n * Render the element progressively when the value >= 0,\n * usefull for large data.\n * @type {boolean}\n */\n progressive: false,\n\n /**\n * @type {boolean}\n */\n incremental: false,\n\n /**\n * Scale ratio for global scale.\n * @type {boolean}\n */\n globalScaleRatio: 1,\n beforeBrush: function (ctx) {},\n afterBrush: function (ctx) {},\n\n /**\n * Graphic drawing method.\n * @param {CanvasRenderingContext2D} ctx\n */\n // Interface\n brush: function (ctx, prevEl) {},\n\n /**\n * Get the minimum bounding box.\n * @return {module:zrender/core/BoundingRect}\n */\n // Interface\n getBoundingRect: function () {},\n\n /**\n * If displayable element contain coord x, y\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n contain: function (x, y) {\n return this.rectContain(x, y);\n },\n\n /**\n * @param {Function} cb\n * @param {} context\n */\n traverse: function (cb, context) {\n cb.call(context, this);\n },\n\n /**\n * If bounding rect of element contain coord x, y\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n rectContain: function (x, y) {\n var coord = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n return rect.contain(coord[0], coord[1]);\n },\n\n /**\n * Mark displayable element dirty and refresh next frame\n */\n dirty: function () {\n this.__dirty = this.__dirtyText = true;\n this._rect = null;\n this.__zr && this.__zr.refresh();\n },\n\n /**\n * If displayable object binded any event\n * @return {boolean}\n */\n // TODO, events bound by bind\n // isSilent: function () {\n // return !(\n // this.hoverable || this.draggable\n // || this.onmousemove || this.onmouseover || this.onmouseout\n // || this.onmousedown || this.onmouseup || this.onclick\n // || this.ondragenter || this.ondragover || this.ondragleave\n // || this.ondrop\n // );\n // },\n\n /**\n * Alias for animate('style')\n * @param {boolean} loop\n */\n animateStyle: function (loop) {\n return this.animate('style', loop);\n },\n attrKV: function (key, value) {\n if (key !== 'style') {\n Element.prototype.attrKV.call(this, key, value);\n } else {\n this.style.set(value);\n }\n },\n\n /**\n * @param {Object|string} key\n * @param {*} value\n */\n setStyle: function (key, value) {\n this.style.set(key, value);\n this.dirty(false);\n return this;\n },\n\n /**\n * Use given style object\n * @param {Object} obj\n */\n useStyle: function (obj) {\n this.style = new Style(obj, this);\n this.dirty(false);\n return this;\n },\n\n /**\n * The string value of `textPosition` needs to be calculated to a real postion.\n * For example, `'inside'` is calculated to `[rect.width/2, rect.height/2]`\n * by default. See `contain/text.js#calculateTextPosition` for more details.\n * But some coutom shapes like \"pin\", \"flag\" have center that is not exactly\n * `[width/2, height/2]`. So we provide this hook to customize the calculation\n * for those shapes. It will be called if the `style.textPosition` is a string.\n * @param {Obejct} [out] Prepared out object. If not provided, this method should\n * be responsible for creating one.\n * @param {module:zrender/graphic/Style} style\n * @param {Object} rect {x, y, width, height}\n * @return {Obejct} out The same as the input out.\n * {\n * x: number. mandatory.\n * y: number. mandatory.\n * textAlign: string. optional. use style.textAlign by default.\n * textVerticalAlign: string. optional. use style.textVerticalAlign by default.\n * }\n */\n calculateTextPosition: null\n};\nzrUtil.inherits(Displayable, Element);\nzrUtil.mixin(Displayable, RectText); // zrUtil.mixin(Displayable, Stateful);\n\nvar _default = Displayable;\nmodule.exports = _default;","/**\n * Event Mixin\n * @module zrender/mixin/Eventful\n * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)\n * pissang (https://www.github.com/pissang)\n */\nvar arrySlice = Array.prototype.slice;\n/**\n * Event dispatcher.\n *\n * @alias module:zrender/mixin/Eventful\n * @constructor\n * @param {Object} [eventProcessor] The object eventProcessor is the scope when\n * `eventProcessor.xxx` called.\n * @param {Function} [eventProcessor.normalizeQuery]\n * param: {string|Object} Raw query.\n * return: {string|Object} Normalized query.\n * @param {Function} [eventProcessor.filter] Event will be dispatched only\n * if it returns `true`.\n * param: {string} eventType\n * param: {string|Object} query\n * return: {boolean}\n * @param {Function} [eventProcessor.afterTrigger] Called after all handlers called.\n * param: {string} eventType\n */\n\nvar Eventful = function (eventProcessor) {\n this._$handlers = {};\n this._$eventProcessor = eventProcessor;\n};\n\nEventful.prototype = {\n constructor: Eventful,\n\n /**\n * The handler can only be triggered once, then removed.\n *\n * @param {string} event The event name.\n * @param {string|Object} [query] Condition used on event filter.\n * @param {Function} handler The event handler.\n * @param {Object} context\n */\n one: function (event, query, handler, context) {\n return on(this, event, query, handler, context, true);\n },\n\n /**\n * Bind a handler.\n *\n * @param {string} event The event name.\n * @param {string|Object} [query] Condition used on event filter.\n * @param {Function} handler The event handler.\n * @param {Object} [context]\n */\n on: function (event, query, handler, context) {\n return on(this, event, query, handler, context, false);\n },\n\n /**\n * Whether any handler has bound.\n *\n * @param {string} event\n * @return {boolean}\n */\n isSilent: function (event) {\n var _h = this._$handlers;\n return !_h[event] || !_h[event].length;\n },\n\n /**\n * Unbind a event.\n *\n * @param {string} [event] The event name.\n * If no `event` input, \"off\" all listeners.\n * @param {Function} [handler] The event handler.\n * If no `handler` input, \"off\" all listeners of the `event`.\n */\n off: function (event, handler) {\n var _h = this._$handlers;\n\n if (!event) {\n this._$handlers = {};\n return this;\n }\n\n if (handler) {\n if (_h[event]) {\n var newList = [];\n\n for (var i = 0, l = _h[event].length; i < l; i++) {\n if (_h[event][i].h !== handler) {\n newList.push(_h[event][i]);\n }\n }\n\n _h[event] = newList;\n }\n\n if (_h[event] && _h[event].length === 0) {\n delete _h[event];\n }\n } else {\n delete _h[event];\n }\n\n return this;\n },\n\n /**\n * Dispatch a event.\n *\n * @param {string} type The event name.\n */\n trigger: function (type) {\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n\n if (argLen > 3) {\n args = arrySlice.call(args, 1);\n }\n\n var len = _h.length;\n\n for (var i = 0; i < len;) {\n var hItem = _h[i];\n\n if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) {\n i++;\n continue;\n } // Optimize advise from backbone\n\n\n switch (argLen) {\n case 1:\n hItem.h.call(hItem.ctx);\n break;\n\n case 2:\n hItem.h.call(hItem.ctx, args[1]);\n break;\n\n case 3:\n hItem.h.call(hItem.ctx, args[1], args[2]);\n break;\n\n default:\n // have more than 2 given arguments\n hItem.h.apply(hItem.ctx, args);\n break;\n }\n\n if (hItem.one) {\n _h.splice(i, 1);\n\n len--;\n } else {\n i++;\n }\n }\n }\n\n eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type);\n return this;\n },\n\n /**\n * Dispatch a event with context, which is specified at the last parameter.\n *\n * @param {string} type The event name.\n */\n triggerWithContext: function (type) {\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n\n if (argLen > 4) {\n args = arrySlice.call(args, 1, args.length - 1);\n }\n\n var ctx = args[args.length - 1];\n var len = _h.length;\n\n for (var i = 0; i < len;) {\n var hItem = _h[i];\n\n if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) {\n i++;\n continue;\n } // Optimize advise from backbone\n\n\n switch (argLen) {\n case 1:\n hItem.h.call(ctx);\n break;\n\n case 2:\n hItem.h.call(ctx, args[1]);\n break;\n\n case 3:\n hItem.h.call(ctx, args[1], args[2]);\n break;\n\n default:\n // have more than 2 given arguments\n hItem.h.apply(ctx, args);\n break;\n }\n\n if (hItem.one) {\n _h.splice(i, 1);\n\n len--;\n } else {\n i++;\n }\n }\n }\n\n eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type);\n return this;\n }\n};\n\nfunction normalizeQuery(host, query) {\n var eventProcessor = host._$eventProcessor;\n\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n query = eventProcessor.normalizeQuery(query);\n }\n\n return query;\n}\n\nfunction on(eventful, event, query, handler, context, isOnce) {\n var _h = eventful._$handlers;\n\n if (typeof query === 'function') {\n context = handler;\n handler = query;\n query = null;\n }\n\n if (!handler || !event) {\n return eventful;\n }\n\n query = normalizeQuery(eventful, query);\n\n if (!_h[event]) {\n _h[event] = [];\n }\n\n for (var i = 0; i < _h[event].length; i++) {\n if (_h[event][i].h === handler) {\n return eventful;\n }\n }\n\n var wrap = {\n h: handler,\n one: isOnce,\n query: query,\n ctx: context || eventful,\n // FIXME\n // Do not publish this feature util it is proved that it makes sense.\n callAtLast: handler.zrEventfulCallAtLast\n };\n var lastIndex = _h[event].length - 1;\n var lastWrap = _h[event][lastIndex];\n lastWrap && lastWrap.callAtLast ? _h[event].splice(lastIndex, 0, wrap) : _h[event].push(wrap);\n return eventful;\n} // ----------------------\n// The events in zrender\n// ----------------------\n\n/**\n * @event module:zrender/mixin/Eventful#onclick\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseout\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousemove\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousewheel\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousedown\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseup\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrag\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragstart\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragend\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragenter\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragleave\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrop\n * @type {Function}\n * @default null\n */\n\n\nvar _default = Eventful;\nmodule.exports = _default;","var curve = require(\"./curve\");\n\nvar vec2 = require(\"./vector\");\n\nvar bbox = require(\"./bbox\");\n\nvar BoundingRect = require(\"./BoundingRect\");\n\nvar _config = require(\"../config\");\n\nvar dpr = _config.devicePixelRatio;\n\n/**\n * Path 代理,可以在`buildPath`中用于替代`ctx`, 会保存每个path操作的命令到pathCommands属性中\n * 可以用于 isInsidePath 判断以及获取boundingRect\n *\n * @module zrender/core/PathProxy\n * @author Yi Shen (http://www.github.com/pissang)\n */\n// TODO getTotalLength, getPointAtLength\n\n/* global Float32Array */\nvar CMD = {\n M: 1,\n L: 2,\n C: 3,\n Q: 4,\n A: 5,\n Z: 6,\n // Rect\n R: 7\n}; // var CMD_MEM_SIZE = {\n// M: 3,\n// L: 3,\n// C: 7,\n// Q: 5,\n// A: 9,\n// R: 5,\n// Z: 1\n// };\n\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\n/**\n * @alias module:zrender/core/PathProxy\n * @constructor\n */\n\nvar PathProxy = function (notSaveData) {\n this._saveData = !(notSaveData || false);\n\n if (this._saveData) {\n /**\n * Path data. Stored as flat array\n * @type {Array.}\n */\n this.data = [];\n }\n\n this._ctx = null;\n};\n/**\n * 快速计算Path包围盒(并不是最小包围盒)\n * @return {Object}\n */\n\n\nPathProxy.prototype = {\n constructor: PathProxy,\n _xi: 0,\n _yi: 0,\n _x0: 0,\n _y0: 0,\n // Unit x, Unit y. Provide for avoiding drawing that too short line segment\n _ux: 0,\n _uy: 0,\n _len: 0,\n _lineDash: null,\n _dashOffset: 0,\n _dashIdx: 0,\n _dashSum: 0,\n\n /**\n * @readOnly\n */\n setScale: function (sx, sy, segmentIgnoreThreshold) {\n // Compat. Previously there is no segmentIgnoreThreshold.\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n },\n getContext: function () {\n return this._ctx;\n },\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n beginPath: function (ctx) {\n this._ctx = ctx;\n ctx && ctx.beginPath();\n ctx && (this.dpr = ctx.dpr); // Reset\n\n if (this._saveData) {\n this._len = 0;\n }\n\n if (this._lineDash) {\n this._lineDash = null;\n this._dashOffset = 0;\n }\n\n return this;\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @return {module:zrender/core/PathProxy}\n */\n moveTo: function (x, y) {\n this.addData(CMD.M, x, y);\n this._ctx && this._ctx.moveTo(x, y); // x0, y0, xi, yi 是记录在 _dashedXXXXTo 方法中使用\n // xi, yi 记录当前点, x0, y0 在 closePath 的时候回到起始点。\n // 有可能在 beginPath 之后直接调用 lineTo,这时候 x0, y0 需要\n // 在 lineTo 方法中记录,这里先不考虑这种情况,dashed line 也只在 IE10- 中不支持\n\n this._x0 = x;\n this._y0 = y;\n this._xi = x;\n this._yi = y;\n return this;\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @return {module:zrender/core/PathProxy}\n */\n lineTo: function (x, y) {\n var exceedUnit = mathAbs(x - this._xi) > this._ux || mathAbs(y - this._yi) > this._uy // Force draw the first segment\n || this._len < 5;\n this.addData(CMD.L, x, y);\n\n if (this._ctx && exceedUnit) {\n this._needsDash() ? this._dashedLineTo(x, y) : this._ctx.lineTo(x, y);\n }\n\n if (exceedUnit) {\n this._xi = x;\n this._yi = y;\n }\n\n return this;\n },\n\n /**\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @param {number} x3\n * @param {number} y3\n * @return {module:zrender/core/PathProxy}\n */\n bezierCurveTo: function (x1, y1, x2, y2, x3, y3) {\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n\n if (this._ctx) {\n this._needsDash() ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3) : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n }\n\n this._xi = x3;\n this._yi = y3;\n return this;\n },\n\n /**\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @return {module:zrender/core/PathProxy}\n */\n quadraticCurveTo: function (x1, y1, x2, y2) {\n this.addData(CMD.Q, x1, y1, x2, y2);\n\n if (this._ctx) {\n this._needsDash() ? this._dashedQuadraticTo(x1, y1, x2, y2) : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n }\n\n this._xi = x2;\n this._yi = y2;\n return this;\n },\n\n /**\n * @param {number} cx\n * @param {number} cy\n * @param {number} r\n * @param {number} startAngle\n * @param {number} endAngle\n * @param {boolean} anticlockwise\n * @return {module:zrender/core/PathProxy}\n */\n arc: function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n this.addData(CMD.A, cx, cy, r, r, startAngle, endAngle - startAngle, 0, anticlockwise ? 0 : 1);\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n this._xi = mathCos(endAngle) * r + cx;\n this._yi = mathSin(endAngle) * r + cy;\n return this;\n },\n // TODO\n arcTo: function (x1, y1, x2, y2, radius) {\n if (this._ctx) {\n this._ctx.arcTo(x1, y1, x2, y2, radius);\n }\n\n return this;\n },\n // TODO\n rect: function (x, y, w, h) {\n this._ctx && this._ctx.rect(x, y, w, h);\n this.addData(CMD.R, x, y, w, h);\n return this;\n },\n\n /**\n * @return {module:zrender/core/PathProxy}\n */\n closePath: function () {\n this.addData(CMD.Z);\n var ctx = this._ctx;\n var x0 = this._x0;\n var y0 = this._y0;\n\n if (ctx) {\n this._needsDash() && this._dashedLineTo(x0, y0);\n ctx.closePath();\n }\n\n this._xi = x0;\n this._yi = y0;\n return this;\n },\n\n /**\n * Context 从外部传入,因为有可能是 rebuildPath 完之后再 fill。\n * stroke 同样\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n fill: function (ctx) {\n ctx && ctx.fill();\n this.toStatic();\n },\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n stroke: function (ctx) {\n ctx && ctx.stroke();\n this.toStatic();\n },\n\n /**\n * 必须在其它绘制命令前调用\n * Must be invoked before all other path drawing methods\n * @return {module:zrender/core/PathProxy}\n */\n setLineDash: function (lineDash) {\n if (lineDash instanceof Array) {\n this._lineDash = lineDash;\n this._dashIdx = 0;\n var lineDashSum = 0;\n\n for (var i = 0; i < lineDash.length; i++) {\n lineDashSum += lineDash[i];\n }\n\n this._dashSum = lineDashSum;\n }\n\n return this;\n },\n\n /**\n * 必须在其它绘制命令前调用\n * Must be invoked before all other path drawing methods\n * @return {module:zrender/core/PathProxy}\n */\n setLineDashOffset: function (offset) {\n this._dashOffset = offset;\n return this;\n },\n\n /**\n *\n * @return {boolean}\n */\n len: function () {\n return this._len;\n },\n\n /**\n * 直接设置 Path 数据\n */\n setData: function (data) {\n var len = data.length;\n\n if (!(this.data && this.data.length === len) && hasTypedArray) {\n this.data = new Float32Array(len);\n }\n\n for (var i = 0; i < len; i++) {\n this.data[i] = data[i];\n }\n\n this._len = len;\n },\n\n /**\n * 添加子路径\n * @param {module:zrender/core/PathProxy|Array.} path\n */\n appendPath: function (path) {\n if (!(path instanceof Array)) {\n path = [path];\n }\n\n var len = path.length;\n var appendSize = 0;\n var offset = this._len;\n\n for (var i = 0; i < len; i++) {\n appendSize += path[i].len();\n }\n\n if (hasTypedArray && this.data instanceof Float32Array) {\n this.data = new Float32Array(offset + appendSize);\n }\n\n for (var i = 0; i < len; i++) {\n var appendPathData = path[i].data;\n\n for (var k = 0; k < appendPathData.length; k++) {\n this.data[offset++] = appendPathData[k];\n }\n }\n\n this._len = offset;\n },\n\n /**\n * 填充 Path 数据。\n * 尽量复用而不申明新的数组。大部分图形重绘的指令数据长度都是不变的。\n */\n addData: function (cmd) {\n if (!this._saveData) {\n return;\n }\n\n var data = this.data;\n\n if (this._len + arguments.length > data.length) {\n // 因为之前的数组已经转换成静态的 Float32Array\n // 所以不够用时需要扩展一个新的动态数组\n this._expandData();\n\n data = this.data;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n data[this._len++] = arguments[i];\n }\n\n this._prevCmd = cmd;\n },\n _expandData: function () {\n // Only if data is Float32Array\n if (!(this.data instanceof Array)) {\n var newData = [];\n\n for (var i = 0; i < this._len; i++) {\n newData[i] = this.data[i];\n }\n\n this.data = newData;\n }\n },\n\n /**\n * If needs js implemented dashed line\n * @return {boolean}\n * @private\n */\n _needsDash: function () {\n return this._lineDash;\n },\n _dashedLineTo: function (x1, y1) {\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\n var x0 = this._xi;\n var y0 = this._yi;\n var dx = x1 - x0;\n var dy = y1 - y0;\n var dist = mathSqrt(dx * dx + dy * dy);\n var x = x0;\n var y = y0;\n var dash;\n var nDash = lineDash.length;\n var idx;\n dx /= dist;\n dy /= dist;\n\n if (offset < 0) {\n // Convert to positive offset\n offset = dashSum + offset;\n }\n\n offset %= dashSum;\n x -= offset * dx;\n y -= offset * dy;\n\n while (dx > 0 && x <= x1 || dx < 0 && x >= x1 || dx === 0 && (dy > 0 && y <= y1 || dy < 0 && y >= y1)) {\n idx = this._dashIdx;\n dash = lineDash[idx];\n x += dx * dash;\n y += dy * dash;\n this._dashIdx = (idx + 1) % nDash; // Skip positive offset\n\n if (dx > 0 && x < x0 || dx < 0 && x > x0 || dy > 0 && y < y0 || dy < 0 && y > y0) {\n continue;\n }\n\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n } // Offset for next lineTo\n\n\n dx = x - x1;\n dy = y - y1;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n },\n // Not accurate dashed line to\n _dashedBezierTo: function (x1, y1, x2, y2, x3, y3) {\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\n var x0 = this._xi;\n var y0 = this._yi;\n var t;\n var dx;\n var dy;\n var cubicAt = curve.cubicAt;\n var bezierLen = 0;\n var idx = this._dashIdx;\n var nDash = lineDash.length;\n var x;\n var y;\n var tmpLen = 0;\n\n if (offset < 0) {\n // Convert to positive offset\n offset = dashSum + offset;\n }\n\n offset %= dashSum; // Bezier approx length\n\n for (t = 0; t < 1; t += 0.1) {\n dx = cubicAt(x0, x1, x2, x3, t + 0.1) - cubicAt(x0, x1, x2, x3, t);\n dy = cubicAt(y0, y1, y2, y3, t + 0.1) - cubicAt(y0, y1, y2, y3, t);\n bezierLen += mathSqrt(dx * dx + dy * dy);\n } // Find idx after add offset\n\n\n for (; idx < nDash; idx++) {\n tmpLen += lineDash[idx];\n\n if (tmpLen > offset) {\n break;\n }\n }\n\n t = (tmpLen - offset) / bezierLen;\n\n while (t <= 1) {\n x = cubicAt(x0, x1, x2, x3, t);\n y = cubicAt(y0, y1, y2, y3, t); // Use line to approximate dashed bezier\n // Bad result if dash is long\n\n idx % 2 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);\n t += lineDash[idx] / bezierLen;\n idx = (idx + 1) % nDash;\n } // Finish the last segment and calculate the new offset\n\n\n idx % 2 !== 0 && ctx.lineTo(x3, y3);\n dx = x3 - x;\n dy = y3 - y;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n },\n _dashedQuadraticTo: function (x1, y1, x2, y2) {\n // Convert quadratic to cubic using degree elevation\n var x3 = x2;\n var y3 = y2;\n x2 = (x2 + 2 * x1) / 3;\n y2 = (y2 + 2 * y1) / 3;\n x1 = (this._xi + 2 * x1) / 3;\n y1 = (this._yi + 2 * y1) / 3;\n\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n },\n\n /**\n * 转成静态的 Float32Array 减少堆内存占用\n * Convert dynamic array to static Float32Array\n */\n toStatic: function () {\n var data = this.data;\n\n if (data instanceof Array) {\n data.length = this._len;\n\n if (hasTypedArray) {\n this.data = new Float32Array(data);\n }\n }\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n getBoundingRect: function () {\n min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n var data = this.data;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n\n if (i === 1) {\n // 如果第一个命令是 L, C, Q\n // 则 previous point 同绘制命令的第一个 point\n //\n // 第一个命令为 Arc 的情况下会在后面特殊处理\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n switch (cmd) {\n case CMD.M:\n // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点\n // 在 closePath 的时候使用\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n min2[0] = x0;\n min2[1] = y0;\n max2[0] = x0;\n max2[1] = y0;\n break;\n\n case CMD.L:\n bbox.fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.C:\n bbox.fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.Q:\n bbox.fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.A:\n // TODO Arc 判断的开销比较大\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var endAngle = data[i++] + startAngle; // TODO Arc 旋转\n\n i += 1;\n var anticlockwise = 1 - data[i++];\n\n if (i === 1) {\n // 直接使用 arc 命令\n // 第一个命令起点还未定义\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n\n bbox.fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++]; // Use fromLine\n\n bbox.fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n break;\n\n case CMD.Z:\n xi = x0;\n yi = y0;\n break;\n } // Union\n\n\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n } // No data\n\n\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n\n return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n },\n\n /**\n * Rebuild path from current data\n * Rebuild path will not consider javascript implemented line dash.\n * @param {CanvasRenderingContext2D} ctx\n */\n rebuildPath: function (ctx) {\n var d = this.data;\n var x0;\n var y0;\n var xi;\n var yi;\n var x;\n var y;\n var ux = this._ux;\n var uy = this._uy;\n var len = this._len;\n\n for (var i = 0; i < len;) {\n var cmd = d[i++];\n\n if (i === 1) {\n // 如果第一个命令是 L, C, Q\n // 则 previous point 同绘制命令的第一个 point\n //\n // 第一个命令为 Arc 的情况下会在后面特殊处理\n xi = d[i];\n yi = d[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n switch (cmd) {\n case CMD.M:\n x0 = xi = d[i++];\n y0 = yi = d[i++];\n ctx.moveTo(xi, yi);\n break;\n\n case CMD.L:\n x = d[i++];\n y = d[i++]; // Not draw too small seg between\n\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n ctx.lineTo(x, y);\n xi = x;\n yi = y;\n }\n\n break;\n\n case CMD.C:\n ctx.bezierCurveTo(d[i++], d[i++], d[i++], d[i++], d[i++], d[i++]);\n xi = d[i - 2];\n yi = d[i - 1];\n break;\n\n case CMD.Q:\n ctx.quadraticCurveTo(d[i++], d[i++], d[i++], d[i++]);\n xi = d[i - 2];\n yi = d[i - 1];\n break;\n\n case CMD.A:\n var cx = d[i++];\n var cy = d[i++];\n var rx = d[i++];\n var ry = d[i++];\n var theta = d[i++];\n var dTheta = d[i++];\n var psi = d[i++];\n var fs = d[i++];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n var isEllipse = Math.abs(rx - ry) > 1e-3;\n var endAngle = theta + dTheta;\n\n if (isEllipse) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, endAngle, 1 - fs);\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n } else {\n ctx.arc(cx, cy, r, theta, endAngle, 1 - fs);\n }\n\n if (i === 1) {\n // 直接使用 arc 命令\n // 第一个命令起点还未定义\n x0 = mathCos(theta) * rx + cx;\n y0 = mathSin(theta) * ry + cy;\n }\n\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = d[i];\n y0 = yi = d[i + 1];\n ctx.rect(d[i++], d[i++], d[i++], d[i++]);\n break;\n\n case CMD.Z:\n ctx.closePath();\n xi = x0;\n yi = y0;\n }\n }\n }\n};\nPathProxy.CMD = CMD;\nvar _default = PathProxy;\nmodule.exports = _default;","/**\n * echarts设备环境识别\n *\n * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。\n * @author firede[firede@firede.us]\n * @desc thanks zepto.\n */\n\n/* global wx */\nvar env = {};\n\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n // In Weixin Application\n env = {\n browser: {},\n os: {},\n node: false,\n wxa: true,\n // Weixin Application\n canvasSupported: true,\n svgSupported: false,\n touchEventsSupported: true,\n domSupported: false\n };\n} else if (typeof document === 'undefined' && typeof self !== 'undefined') {\n // In worker\n env = {\n browser: {},\n os: {},\n node: false,\n worker: true,\n canvasSupported: true,\n domSupported: false\n };\n} else if (typeof navigator === 'undefined') {\n // In node\n env = {\n browser: {},\n os: {},\n node: true,\n worker: false,\n // Assume canvas is supported\n canvasSupported: true,\n svgSupported: true,\n domSupported: false\n };\n} else {\n env = detect(navigator.userAgent);\n}\n\nvar _default = env; // Zepto.js\n// (c) 2010-2013 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\nfunction detect(ua) {\n var os = {};\n var browser = {}; // var webkit = ua.match(/Web[kK]it[\\/]{0,1}([\\d.]+)/);\n // var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n // var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n // var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n // var iphone = !ipad && ua.match(/(iPhone\\sOS)\\s([\\d_]+)/);\n // var webos = ua.match(/(webOS|hpwOS)[\\s\\/]([\\d.]+)/);\n // var touchpad = webos && ua.match(/TouchPad/);\n // var kindle = ua.match(/Kindle\\/([\\d.]+)/);\n // var silk = ua.match(/Silk\\/([\\d._]+)/);\n // var blackberry = ua.match(/(BlackBerry).*Version\\/([\\d.]+)/);\n // var bb10 = ua.match(/(BB10).*Version\\/([\\d.]+)/);\n // var rimtabletos = ua.match(/(RIM\\sTablet\\sOS)\\s([\\d.]+)/);\n // var playbook = ua.match(/PlayBook/);\n // var chrome = ua.match(/Chrome\\/([\\d.]+)/) || ua.match(/CriOS\\/([\\d.]+)/);\n\n var firefox = ua.match(/Firefox\\/([\\d.]+)/); // var safari = webkit && ua.match(/Mobile\\//) && !chrome;\n // var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome;\n\n var ie = ua.match(/MSIE\\s([\\d.]+)/) // IE 11 Trident/7.0; rv:11.0\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n var edge = ua.match(/Edge\\/([\\d.]+)/); // IE 12 and 12+\n\n var weChat = /micromessenger/i.test(ua); // Todo: clean this up with a better OS/browser seperation:\n // - discern (more) between multiple browsers on android\n // - decide if kindle fire in silk mode is android or not\n // - Firefox on Android doesn't specify the Android version\n // - possibly devide in os, device and browser hashes\n // if (browser.webkit = !!webkit) browser.version = webkit[1];\n // if (android) os.android = true, os.version = android[2];\n // if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.');\n // if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.');\n // if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n // if (webos) os.webos = true, os.version = webos[2];\n // if (touchpad) os.touchpad = true;\n // if (blackberry) os.blackberry = true, os.version = blackberry[2];\n // if (bb10) os.bb10 = true, os.version = bb10[2];\n // if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2];\n // if (playbook) browser.playbook = true;\n // if (kindle) os.kindle = true, os.version = kindle[1];\n // if (silk) browser.silk = true, browser.version = silk[1];\n // if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true;\n // if (chrome) browser.chrome = true, browser.version = chrome[1];\n\n if (firefox) {\n browser.firefox = true;\n browser.version = firefox[1];\n } // if (safari && (ua.match(/Safari/) || !!os.ios)) browser.safari = true;\n // if (webview) browser.webview = true;\n\n\n if (ie) {\n browser.ie = true;\n browser.version = ie[1];\n }\n\n if (edge) {\n browser.edge = true;\n browser.version = edge[1];\n } // It is difficult to detect WeChat in Win Phone precisely, because ua can\n // not be set on win phone. So we do not consider Win Phone.\n\n\n if (weChat) {\n browser.weChat = true;\n } // os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) ||\n // (firefox && ua.match(/Tablet/)) || (ie && !ua.match(/Phone/) && ua.match(/Touch/)));\n // os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos ||\n // (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\\/([\\d.]+)/)) ||\n // (firefox && ua.match(/Mobile/)) || (ie && ua.match(/Touch/))));\n\n\n return {\n browser: browser,\n os: os,\n node: false,\n // 原生canvas支持,改极端点了\n // canvasSupported : !(browser.ie && parseFloat(browser.version) < 9)\n canvasSupported: !!document.createElement('canvas').getContext,\n svgSupported: typeof SVGRect !== 'undefined',\n // works on most browsers\n // IE10/11 does not support touch event, and MS Edge supports them but not by\n // default, so we dont check navigator.maxTouchPoints for them here.\n touchEventsSupported: 'ontouchstart' in window && !browser.ie && !browser.edge,\n // .\n pointerEventsSupported: // (1) Firefox supports pointer but not by default, only MS browsers are reliable on pointer\n // events currently. So we dont use that on other browsers unless tested sufficiently.\n // For example, in iOS 13 Mobile Chromium 78, if the touching behavior starts page\n // scroll, the `pointermove` event can not be fired any more. That will break some\n // features like \"pan horizontally to move something and pan vertically to page scroll\".\n // The horizontal pan probably be interrupted by the casually triggered page scroll.\n // (2) Although IE 10 supports pointer event, it use old style and is different from the\n // standard. So we exclude that. (IE 10 is hardly used on touch device)\n 'onpointerdown' in window && (browser.edge || browser.ie && browser.version >= 11),\n // passiveSupported: detectPassiveSupport()\n domSupported: typeof document !== 'undefined'\n };\n} // See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n// function detectPassiveSupport() {\n// // Test via a getter in the options object to see if the passive property is accessed\n// var supportsPassive = false;\n// try {\n// var opts = Object.defineProperty({}, 'passive', {\n// get: function() {\n// supportsPassive = true;\n// }\n// });\n// window.addEventListener('testPassive', function() {}, opts);\n// } catch (e) {\n// }\n// return supportsPassive;\n// }\n\n\nmodule.exports = _default;","var fixShadow = require(\"./helper/fixShadow\");\n\nvar _constant = require(\"./constant\");\n\nvar ContextCachedBy = _constant.ContextCachedBy;\nvar STYLE_COMMON_PROPS = [['shadowBlur', 0], ['shadowOffsetX', 0], ['shadowOffsetY', 0], ['shadowColor', '#000'], ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]]; // var SHADOW_PROPS = STYLE_COMMON_PROPS.slice(0, 4);\n// var LINE_PROPS = STYLE_COMMON_PROPS.slice(4);\n\nvar Style = function (opts) {\n this.extendFrom(opts, false);\n};\n\nfunction createLinearGradient(ctx, obj, rect) {\n var x = obj.x == null ? 0 : obj.x;\n var x2 = obj.x2 == null ? 1 : obj.x2;\n var y = obj.y == null ? 0 : obj.y;\n var y2 = obj.y2 == null ? 0 : obj.y2;\n\n if (!obj.global) {\n x = x * rect.width + rect.x;\n x2 = x2 * rect.width + rect.x;\n y = y * rect.height + rect.y;\n y2 = y2 * rect.height + rect.y;\n } // Fix NaN when rect is Infinity\n\n\n x = isNaN(x) ? 0 : x;\n x2 = isNaN(x2) ? 1 : x2;\n y = isNaN(y) ? 0 : y;\n y2 = isNaN(y2) ? 0 : y2;\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n return canvasGradient;\n}\n\nfunction createRadialGradient(ctx, obj, rect) {\n var width = rect.width;\n var height = rect.height;\n var min = Math.min(width, height);\n var x = obj.x == null ? 0.5 : obj.x;\n var y = obj.y == null ? 0.5 : obj.y;\n var r = obj.r == null ? 0.5 : obj.r;\n\n if (!obj.global) {\n x = x * width + rect.x;\n y = y * height + rect.y;\n r = r * min;\n }\n\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n return canvasGradient;\n}\n\nStyle.prototype = {\n constructor: Style,\n\n /**\n * @type {string}\n */\n fill: '#000',\n\n /**\n * @type {string}\n */\n stroke: null,\n\n /**\n * @type {number}\n */\n opacity: 1,\n\n /**\n * @type {number}\n */\n fillOpacity: null,\n\n /**\n * @type {number}\n */\n strokeOpacity: null,\n\n /**\n * `true` is not supported.\n * `false`/`null`/`undefined` are the same.\n * `false` is used to remove lineDash in some\n * case that `null`/`undefined` can not be set.\n * (e.g., emphasis.lineStyle in echarts)\n * @type {Array.|boolean}\n */\n lineDash: null,\n\n /**\n * @type {number}\n */\n lineDashOffset: 0,\n\n /**\n * @type {number}\n */\n shadowBlur: 0,\n\n /**\n * @type {number}\n */\n shadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n shadowOffsetY: 0,\n\n /**\n * @type {number}\n */\n lineWidth: 1,\n\n /**\n * If stroke ignore scale\n * @type {Boolean}\n */\n strokeNoScale: false,\n // Bounding rect text configuration\n // Not affected by element transform\n\n /**\n * @type {string}\n */\n text: null,\n\n /**\n * If `fontSize` or `fontFamily` exists, `font` will be reset by\n * `fontSize`, `fontStyle`, `fontWeight`, `fontFamily`.\n * So do not visit it directly in upper application (like echarts),\n * but use `contain/text#makeFont` instead.\n * @type {string}\n */\n font: null,\n\n /**\n * The same as font. Use font please.\n * @deprecated\n * @type {string}\n */\n textFont: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontStyle: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontWeight: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * Should be 12 but not '12px'.\n * @type {number}\n */\n fontSize: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontFamily: null,\n\n /**\n * Reserved for special functinality, like 'hr'.\n * @type {string}\n */\n textTag: null,\n\n /**\n * @type {string}\n */\n textFill: '#000',\n\n /**\n * @type {string}\n */\n textStroke: null,\n\n /**\n * @type {number}\n */\n textWidth: null,\n\n /**\n * Only for textBackground.\n * @type {number}\n */\n textHeight: null,\n\n /**\n * textStroke may be set as some color as a default\n * value in upper applicaion, where the default value\n * of textStrokeWidth should be 0 to make sure that\n * user can choose to do not use text stroke.\n * @type {number}\n */\n textStrokeWidth: 0,\n\n /**\n * @type {number}\n */\n textLineHeight: null,\n\n /**\n * 'inside', 'left', 'right', 'top', 'bottom'\n * [x, y]\n * Based on x, y of rect.\n * @type {string|Array.}\n * @default 'inside'\n */\n textPosition: 'inside',\n\n /**\n * If not specified, use the boundingRect of a `displayable`.\n * @type {Object}\n */\n textRect: null,\n\n /**\n * [x, y]\n * @type {Array.}\n */\n textOffset: null,\n\n /**\n * @type {string}\n */\n textAlign: null,\n\n /**\n * @type {string}\n */\n textVerticalAlign: null,\n\n /**\n * @type {number}\n */\n textDistance: 5,\n\n /**\n * @type {string}\n */\n textShadowColor: 'transparent',\n\n /**\n * @type {number}\n */\n textShadowBlur: 0,\n\n /**\n * @type {number}\n */\n textShadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n textShadowOffsetY: 0,\n\n /**\n * @type {string}\n */\n textBoxShadowColor: 'transparent',\n\n /**\n * @type {number}\n */\n textBoxShadowBlur: 0,\n\n /**\n * @type {number}\n */\n textBoxShadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n textBoxShadowOffsetY: 0,\n\n /**\n * Whether transform text.\n * Only available in Path and Image element,\n * where the text is called as `RectText`.\n * @type {boolean}\n */\n transformText: false,\n\n /**\n * Text rotate around position of Path or Image.\n * The origin of the rotation can be specified by `textOrigin`.\n * Only available in Path and Image element,\n * where the text is called as `RectText`.\n */\n textRotation: 0,\n\n /**\n * Text origin of text rotation.\n * Useful in the case like label rotation of circular symbol.\n * Only available in Path and Image element, where the text is called\n * as `RectText` and the element is called as \"host element\".\n * The value can be:\n * + If specified as a coordinate like `[10, 40]`, it is the `[x, y]`\n * base on the left-top corner of the rect of its host element.\n * + If specified as a string `center`, it is the center of the rect of\n * its host element.\n * + By default, this origin is the `textPosition`.\n * @type {string|Array.}\n */\n textOrigin: null,\n\n /**\n * @type {string}\n */\n textBackgroundColor: null,\n\n /**\n * @type {string}\n */\n textBorderColor: null,\n\n /**\n * @type {number}\n */\n textBorderWidth: 0,\n\n /**\n * @type {number}\n */\n textBorderRadius: 0,\n\n /**\n * Can be `2` or `[2, 4]` or `[2, 3, 4, 5]`\n * @type {number|Array.}\n */\n textPadding: null,\n\n /**\n * Text styles for rich text.\n * @type {Object}\n */\n rich: null,\n\n /**\n * {outerWidth, outerHeight, ellipsis, placeholder}\n * @type {Object}\n */\n truncate: null,\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n * @type {string}\n */\n blend: null,\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n */\n bind: function (ctx, el, prevEl) {\n var style = this;\n var prevStyle = prevEl && prevEl.style; // If no prevStyle, it means first draw.\n // Only apply cache if the last time cachced by this function.\n\n var notCheckCache = !prevStyle || ctx.__attrCachedBy !== ContextCachedBy.STYLE_BIND;\n ctx.__attrCachedBy = ContextCachedBy.STYLE_BIND;\n\n for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n var prop = STYLE_COMMON_PROPS[i];\n var styleName = prop[0];\n\n if (notCheckCache || style[styleName] !== prevStyle[styleName]) {\n // FIXME Invalid property value will cause style leak from previous element.\n ctx[styleName] = fixShadow(ctx, styleName, style[styleName] || prop[1]);\n }\n }\n\n if (notCheckCache || style.fill !== prevStyle.fill) {\n ctx.fillStyle = style.fill;\n }\n\n if (notCheckCache || style.stroke !== prevStyle.stroke) {\n ctx.strokeStyle = style.stroke;\n }\n\n if (notCheckCache || style.opacity !== prevStyle.opacity) {\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n }\n\n if (notCheckCache || style.blend !== prevStyle.blend) {\n ctx.globalCompositeOperation = style.blend || 'source-over';\n }\n\n if (this.hasStroke()) {\n var lineWidth = style.lineWidth;\n ctx.lineWidth = lineWidth / (this.strokeNoScale && el && el.getLineScale ? el.getLineScale() : 1);\n }\n },\n hasFill: function () {\n var fill = this.fill;\n return fill != null && fill !== 'none';\n },\n hasStroke: function () {\n var stroke = this.stroke;\n return stroke != null && stroke !== 'none' && this.lineWidth > 0;\n },\n\n /**\n * Extend from other style\n * @param {zrender/graphic/Style} otherStyle\n * @param {boolean} overwrite true: overwrirte any way.\n * false: overwrite only when !target.hasOwnProperty\n * others: overwrite when property is not null/undefined.\n */\n extendFrom: function (otherStyle, overwrite) {\n if (otherStyle) {\n for (var name in otherStyle) {\n if (otherStyle.hasOwnProperty(name) && (overwrite === true || (overwrite === false ? !this.hasOwnProperty(name) : otherStyle[name] != null))) {\n this[name] = otherStyle[name];\n }\n }\n }\n },\n\n /**\n * Batch setting style with a given object\n * @param {Object|string} obj\n * @param {*} [obj]\n */\n set: function (obj, value) {\n if (typeof obj === 'string') {\n this[obj] = value;\n } else {\n this.extendFrom(obj, true);\n }\n },\n\n /**\n * Clone\n * @return {zrender/graphic/Style} [description]\n */\n clone: function () {\n var newStyle = new this.constructor();\n newStyle.extendFrom(this, true);\n return newStyle;\n },\n getGradient: function (ctx, obj, rect) {\n var method = obj.type === 'radial' ? createRadialGradient : createLinearGradient;\n var canvasGradient = method(ctx, obj, rect);\n var colorStops = obj.colorStops;\n\n for (var i = 0; i < colorStops.length; i++) {\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n }\n\n return canvasGradient;\n }\n};\nvar styleProto = Style.prototype;\n\nfor (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n var prop = STYLE_COMMON_PROPS[i];\n\n if (!(prop[0] in styleProto)) {\n styleProto[prop[0]] = prop[1];\n }\n} // Provide for others\n\n\nStyle.getGradient = styleProto.getGradient;\nvar _default = Style;\nmodule.exports = _default;","var dpr = 1; // If in browser environment\n\nif (typeof window !== 'undefined') {\n dpr = Math.max(window.devicePixelRatio || 1, 1);\n}\n/**\n * config默认配置项\n * @exports zrender/config\n * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)\n */\n\n/**\n * Debug log mode:\n * 0: Do nothing, for release.\n * 1: console.error, for debug.\n */\n\n\nvar debugMode = 0; // retina 屏幕优化\n\nvar devicePixelRatio = dpr;\nexports.debugMode = debugMode;\nexports.devicePixelRatio = devicePixelRatio;","var Group = require(\"../container/Group\");\n\nvar ZImage = require(\"../graphic/Image\");\n\nvar Text = require(\"../graphic/Text\");\n\nvar Circle = require(\"../graphic/shape/Circle\");\n\nvar Rect = require(\"../graphic/shape/Rect\");\n\nvar Ellipse = require(\"../graphic/shape/Ellipse\");\n\nvar Line = require(\"../graphic/shape/Line\");\n\nvar Path = require(\"../graphic/Path\");\n\nvar Polygon = require(\"../graphic/shape/Polygon\");\n\nvar Polyline = require(\"../graphic/shape/Polyline\");\n\nvar LinearGradient = require(\"../graphic/LinearGradient\");\n\nvar Style = require(\"../graphic/Style\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar _path = require(\"./path\");\n\nvar createFromString = _path.createFromString;\n\nvar _util = require(\"../core/util\");\n\nvar isString = _util.isString;\nvar extend = _util.extend;\nvar defaults = _util.defaults;\nvar trim = _util.trim;\nvar each = _util.each;\n// import RadialGradient from '../graphic/RadialGradient';\n// import Pattern from '../graphic/Pattern';\n// import * as vector from '../core/vector';\n// Most of the values can be separated by comma and/or white space.\nvar DILIMITER_REG = /[\\s,]+/;\n/**\n * For big svg string, this method might be time consuming.\n *\n * @param {string} svg xml string\n * @return {Object} xml root.\n */\n\nfunction parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n } // Document node. If using $.get, doc node may be input.\n\n\n if (svg.nodeType === 9) {\n svg = svg.firstChild;\n } // nodeName of is also 'svg'.\n\n\n while (svg.nodeName.toLowerCase() !== 'svg' || svg.nodeType !== 1) {\n svg = svg.nextSibling;\n }\n\n return svg;\n}\n\nfunction SVGParser() {\n this._defs = {};\n this._root = null;\n this._isDefine = false;\n this._isText = false;\n}\n\nSVGParser.prototype.parse = function (xml, opt) {\n opt = opt || {};\n var svg = parseXML(xml);\n\n if (!svg) {\n throw new Error('Illegal svg');\n }\n\n var root = new Group();\n this._root = root; // parse view port\n\n var viewBox = svg.getAttribute('viewBox') || ''; // If width/height not specified, means \"100%\" of `opt.width/height`.\n // TODO: Other percent value not supported yet.\n\n var width = parseFloat(svg.getAttribute('width') || opt.width);\n var height = parseFloat(svg.getAttribute('height') || opt.height); // If width/height not specified, set as null for output.\n\n isNaN(width) && (width = null);\n isNaN(height) && (height = null); // Apply inline style on svg element.\n\n parseAttributes(svg, root, null, true);\n var child = svg.firstChild;\n\n while (child) {\n this._parseNode(child, root);\n\n child = child.nextSibling;\n }\n\n var viewBoxRect;\n var viewBoxTransform;\n\n if (viewBox) {\n var viewBoxArr = trim(viewBox).split(DILIMITER_REG); // Some invalid case like viewBox: 'none'.\n\n if (viewBoxArr.length >= 4) {\n viewBoxRect = {\n x: parseFloat(viewBoxArr[0] || 0),\n y: parseFloat(viewBoxArr[1] || 0),\n width: parseFloat(viewBoxArr[2]),\n height: parseFloat(viewBoxArr[3])\n };\n }\n }\n\n if (viewBoxRect && width != null && height != null) {\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n\n if (!opt.ignoreViewBox) {\n // If set transform on the output group, it probably bring trouble when\n // some users only intend to show the clipped content inside the viewBox,\n // but not intend to transform the output group. So we keep the output\n // group no transform. If the user intend to use the viewBox as a\n // camera, just set `opt.ignoreViewBox` as `true` and set transfrom\n // manually according to the viewBox info in the output of this method.\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scale = viewBoxTransform.scale.slice();\n elRoot.position = viewBoxTransform.position.slice();\n }\n } // Some shapes might be overflow the viewport, which should be\n // clipped despite whether the viewBox is used, as the SVG does.\n\n\n if (!opt.ignoreRootClip && width != null && height != null) {\n root.setClipPath(new Rect({\n shape: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n }));\n } // Set width/height on group just for output the viewport size.\n\n\n return {\n root: root,\n width: width,\n height: height,\n viewBoxRect: viewBoxRect,\n viewBoxTransform: viewBoxTransform\n };\n};\n\nSVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n var nodeName = xmlNode.nodeName.toLowerCase(); // TODO\n // support in svg, where nodeName is 'style',\n // CSS classes is defined globally wherever the style tags are declared.\n\n if (nodeName === 'defs') {\n // define flag\n this._isDefine = true;\n } else if (nodeName === 'text') {\n this._isText = true;\n }\n\n var el;\n\n if (this._isDefine) {\n var parser = defineParsers[nodeName];\n\n if (parser) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n\n if (id) {\n this._defs[id] = def;\n }\n }\n } else {\n var parser = nodeParsers[nodeName];\n\n if (parser) {\n el = parser.call(this, xmlNode, parentGroup);\n parentGroup.add(el);\n }\n }\n\n var child = xmlNode.firstChild;\n\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el);\n } // Is text\n\n\n if (child.nodeType === 3 && this._isText) {\n this._parseText(child, el);\n }\n\n child = child.nextSibling;\n } // Quit define\n\n\n if (nodeName === 'defs') {\n this._isDefine = false;\n } else if (nodeName === 'text') {\n this._isText = false;\n }\n};\n\nSVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n if (xmlNode.nodeType === 1) {\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n }\n\n var text = new Text({\n style: {\n text: xmlNode.textContent,\n transformText: true\n },\n position: [this._textX || 0, this._textY || 0]\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defs);\n var fontSize = text.style.fontSize;\n\n if (fontSize && fontSize < 9) {\n // PENDING\n text.style.fontSize = 9;\n text.scale = text.scale || [1, 1];\n text.scale[0] *= fontSize / 9;\n text.scale[1] *= fontSize / 9;\n }\n\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n};\n\nvar nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defs);\n rect.setShape({\n x: parseFloat(xmlNode.getAttribute('x') || 0),\n y: parseFloat(xmlNode.getAttribute('y') || 0),\n width: parseFloat(xmlNode.getAttribute('width') || 0),\n height: parseFloat(xmlNode.getAttribute('height') || 0)\n }); // console.log(xmlNode.getAttribute('transform'));\n // console.log(rect.transform);\n\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defs);\n circle.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || 0),\n cy: parseFloat(xmlNode.getAttribute('cy') || 0),\n r: parseFloat(xmlNode.getAttribute('r') || 0)\n });\n return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defs);\n line.setShape({\n x1: parseFloat(xmlNode.getAttribute('x1') || 0),\n y1: parseFloat(xmlNode.getAttribute('y1') || 0),\n x2: parseFloat(xmlNode.getAttribute('x2') || 0),\n y2: parseFloat(xmlNode.getAttribute('y2') || 0)\n });\n return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defs);\n ellipse.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || 0),\n cy: parseFloat(xmlNode.getAttribute('cy') || 0),\n rx: parseFloat(xmlNode.getAttribute('rx') || 0),\n ry: parseFloat(xmlNode.getAttribute('ry') || 0)\n });\n return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polygon = new Polygon({\n shape: {\n points: points || []\n }\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defs);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var path = new Path();\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polyline = new Polyline({\n shape: {\n points: points || []\n }\n });\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defs);\n img.setStyle({\n image: xmlNode.getAttribute('xlink:href'),\n x: xmlNode.getAttribute('x'),\n y: xmlNode.getAttribute('y'),\n width: xmlNode.getAttribute('width'),\n height: xmlNode.getAttribute('height')\n });\n return img;\n },\n 'text': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x') || 0;\n var y = xmlNode.getAttribute('y') || 0;\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX = parseFloat(x) + parseFloat(dx);\n this._textY = parseFloat(y) + parseFloat(dy);\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n\n if (x != null) {\n // new offset x\n this._textX = parseFloat(x);\n }\n\n if (y != null) {\n // new offset y\n this._textY = parseFloat(y);\n }\n\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n this._textX += dx;\n this._textY += dy;\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n // TODO svg fill rule\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule\n // path.style.globalCompositeOperation = 'xor';\n var d = xmlNode.getAttribute('d') || ''; // Performance sensitive.\n\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n return path;\n }\n};\nvar defineParsers = {\n 'lineargradient': function (xmlNode) {\n var x1 = parseInt(xmlNode.getAttribute('x1') || 0, 10);\n var y1 = parseInt(xmlNode.getAttribute('y1') || 0, 10);\n var x2 = parseInt(xmlNode.getAttribute('x2') || 10, 10);\n var y2 = parseInt(xmlNode.getAttribute('y2') || 0, 10);\n var gradient = new LinearGradient(x1, y1, x2, y2);\n\n _parseGradientColorStops(xmlNode, gradient);\n\n return gradient;\n },\n 'radialgradient': function (xmlNode) {}\n};\n\nfunction _parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n\n while (stop) {\n if (stop.nodeType === 1) {\n var offset = stop.getAttribute('offset');\n\n if (offset.indexOf('%') > 0) {\n // percentage\n offset = parseInt(offset, 10) / 100;\n } else if (offset) {\n // number from 0 to 1\n offset = parseFloat(offset);\n } else {\n offset = 0;\n }\n\n var stopColor = stop.getAttribute('stop-color') || '#000000';\n gradient.addColorStop(offset, stopColor);\n }\n\n stop = stop.nextSibling;\n }\n}\n\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\n\nfunction parsePoints(pointsString) {\n var list = trim(pointsString).split(DILIMITER_REG);\n var points = [];\n\n for (var i = 0; i < list.length; i += 2) {\n var x = parseFloat(list[i]);\n var y = parseFloat(list[i + 1]);\n points.push([x, y]);\n }\n\n return points;\n}\n\nvar attributesMap = {\n 'fill': 'fill',\n 'stroke': 'stroke',\n 'stroke-width': 'lineWidth',\n 'opacity': 'opacity',\n 'fill-opacity': 'fillOpacity',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-dasharray': 'lineDash',\n 'stroke-dashoffset': 'lineDashOffset',\n 'stroke-linecap': 'lineCap',\n 'stroke-linejoin': 'lineJoin',\n 'stroke-miterlimit': 'miterLimit',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'text-align': 'textAlign',\n 'alignment-baseline': 'textBaseline'\n};\n\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n var zrStyle = el.__inheritedStyle || {};\n var isTextEl = el.type === 'text'; // TODO Shadow\n\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n extend(zrStyle, parseStyleAttribute(xmlNode));\n\n if (!onlyInlineStyle) {\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName)) {\n var attrValue = xmlNode.getAttribute(svgAttrName);\n\n if (attrValue != null) {\n zrStyle[attributesMap[svgAttrName]] = attrValue;\n }\n }\n }\n }\n }\n\n var elFillProp = isTextEl ? 'textFill' : 'fill';\n var elStrokeProp = isTextEl ? 'textStroke' : 'stroke';\n el.style = el.style || new Style();\n var elStyle = el.style;\n zrStyle.fill != null && elStyle.set(elFillProp, getPaint(zrStyle.fill, defs));\n zrStyle.stroke != null && elStyle.set(elStrokeProp, getPaint(zrStyle.stroke, defs));\n each(['lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'], function (propName) {\n var elPropName = propName === 'lineWidth' && isTextEl ? 'textStrokeWidth' : propName;\n zrStyle[propName] != null && elStyle.set(elPropName, parseFloat(zrStyle[propName]));\n });\n\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n zrStyle.textBaseline = 'alphabetic';\n }\n\n if (zrStyle.textBaseline === 'alphabetic') {\n zrStyle.textBaseline = 'bottom';\n }\n\n if (zrStyle.textAlign === 'start') {\n zrStyle.textAlign = 'left';\n }\n\n if (zrStyle.textAlign === 'end') {\n zrStyle.textAlign = 'right';\n }\n\n each(['lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'], function (propName) {\n zrStyle[propName] != null && elStyle.set(propName, zrStyle[propName]);\n });\n\n if (zrStyle.lineDash) {\n el.style.lineDash = trim(zrStyle.lineDash).split(DILIMITER_REG);\n }\n\n if (elStyle[elStrokeProp] && elStyle[elStrokeProp] !== 'none') {\n // enable stroke\n el[elStrokeProp] = true;\n }\n\n el.__inheritedStyle = zrStyle;\n}\n\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\n\nfunction getPaint(str, defs) {\n // if (str === 'none') {\n // return;\n // }\n var urlMatch = defs && str && str.match(urlRegex);\n\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n var def = defs[url];\n return def;\n }\n\n return str;\n}\n\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\n\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var m = null;\n var transformOps = [];\n transform.replace(transformRegex, function (str, type, value) {\n transformOps.push(type, value);\n });\n\n for (var i = transformOps.length - 1; i > 0; i -= 2) {\n var value = transformOps[i];\n var type = transformOps[i - 1];\n m = m || matrix.create();\n\n switch (type) {\n case 'translate':\n value = trim(value).split(DILIMITER_REG);\n matrix.translate(m, m, [parseFloat(value[0]), parseFloat(value[1] || 0)]);\n break;\n\n case 'scale':\n value = trim(value).split(DILIMITER_REG);\n matrix.scale(m, m, [parseFloat(value[0]), parseFloat(value[1] || value[0])]);\n break;\n\n case 'rotate':\n value = trim(value).split(DILIMITER_REG);\n matrix.rotate(m, m, parseFloat(value[0]));\n break;\n\n case 'skew':\n value = trim(value).split(DILIMITER_REG);\n console.warn('Skew transform is not supported yet');\n break;\n\n case 'matrix':\n var value = trim(value).split(DILIMITER_REG);\n m[0] = parseFloat(value[0]);\n m[1] = parseFloat(value[1]);\n m[2] = parseFloat(value[2]);\n m[3] = parseFloat(value[3]);\n m[4] = parseFloat(value[4]);\n m[5] = parseFloat(value[5]);\n break;\n }\n }\n\n node.setLocalTransform(m);\n }\n} // Value may contain space.\n\n\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\n\nfunction parseStyleAttribute(xmlNode) {\n var style = xmlNode.getAttribute('style');\n var result = {};\n\n if (!style) {\n return result;\n }\n\n var styleList = {};\n styleRegex.lastIndex = 0;\n var styleRegResult;\n\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n styleList[styleRegResult[1]] = styleRegResult[2];\n }\n\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n }\n }\n\n return result;\n}\n/**\n * @param {Array.} viewBoxRect\n * @param {number} width\n * @param {number} height\n * @return {Object} {scale, position}\n */\n\n\nfunction makeViewBoxTransform(viewBoxRect, width, height) {\n var scaleX = width / viewBoxRect.width;\n var scaleY = height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY); // preserveAspectRatio 'xMidYMid'\n\n var viewBoxScale = [scale, scale];\n var viewBoxPosition = [-(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2, -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2];\n return {\n scale: viewBoxScale,\n position: viewBoxPosition\n };\n}\n/**\n * @param {string|XMLElement} xml\n * @param {Object} [opt]\n * @param {number} [opt.width] Default width if svg width not specified or is a percent value.\n * @param {number} [opt.height] Default height if svg height not specified or is a percent value.\n * @param {boolean} [opt.ignoreViewBox]\n * @param {boolean} [opt.ignoreRootClip]\n * @return {Object} result:\n * {\n * root: Group, The root of the the result tree of zrender shapes,\n * width: number, the viewport width of the SVG,\n * height: number, the viewport height of the SVG,\n * viewBoxRect: {x, y, width, height}, the declared viewBox rect of the SVG, if exists,\n * viewBoxTransform: the {scale, position} calculated by viewBox and viewport, is exists.\n * }\n */\n\n\nfunction parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\n\nexports.parseXML = parseXML;\nexports.makeViewBoxTransform = makeViewBoxTransform;\nexports.parseSVG = parseSVG;","var util = require(\"../core/util\");\n\nvar _event = require(\"../core/event\");\n\nvar Dispatcher = _event.Dispatcher;\n\nvar requestAnimationFrame = require(\"./requestAnimationFrame\");\n\nvar Animator = require(\"./Animator\");\n\n/**\n * Animation main class, dispatch and manage all animation controllers\n *\n * @module zrender/animation/Animation\n * @author pissang(https://github.com/pissang)\n */\n// TODO Additive animation\n// http://iosoteric.com/additive-animations-animatewithduration-in-ios-8/\n// https://developer.apple.com/videos/wwdc2014/#236\n\n/**\n * @typedef {Object} IZRenderStage\n * @property {Function} update\n */\n\n/**\n * @alias module:zrender/animation/Animation\n * @constructor\n * @param {Object} [options]\n * @param {Function} [options.onframe]\n * @param {IZRenderStage} [options.stage]\n * @example\n * var animation = new Animation();\n * var obj = {\n * x: 100,\n * y: 100\n * };\n * animation.animate(node.position)\n * .when(1000, {\n * x: 500,\n * y: 500\n * })\n * .when(2000, {\n * x: 100,\n * y: 100\n * })\n * .start('spline');\n */\nvar Animation = function (options) {\n options = options || {};\n this.stage = options.stage || {};\n\n this.onframe = options.onframe || function () {}; // private properties\n\n\n this._clips = [];\n this._running = false;\n this._time;\n this._pausedTime;\n this._pauseStart;\n this._paused = false;\n Dispatcher.call(this);\n};\n\nAnimation.prototype = {\n constructor: Animation,\n\n /**\n * Add clip\n * @param {module:zrender/animation/Clip} clip\n */\n addClip: function (clip) {\n this._clips.push(clip);\n },\n\n /**\n * Add animator\n * @param {module:zrender/animation/Animator} animator\n */\n addAnimator: function (animator) {\n animator.animation = this;\n var clips = animator.getClips();\n\n for (var i = 0; i < clips.length; i++) {\n this.addClip(clips[i]);\n }\n },\n\n /**\n * Delete animation clip\n * @param {module:zrender/animation/Clip} clip\n */\n removeClip: function (clip) {\n var idx = util.indexOf(this._clips, clip);\n\n if (idx >= 0) {\n this._clips.splice(idx, 1);\n }\n },\n\n /**\n * Delete animation clip\n * @param {module:zrender/animation/Animator} animator\n */\n removeAnimator: function (animator) {\n var clips = animator.getClips();\n\n for (var i = 0; i < clips.length; i++) {\n this.removeClip(clips[i]);\n }\n\n animator.animation = null;\n },\n _update: function () {\n var time = new Date().getTime() - this._pausedTime;\n\n var delta = time - this._time;\n var clips = this._clips;\n var len = clips.length;\n var deferredEvents = [];\n var deferredClips = [];\n\n for (var i = 0; i < len; i++) {\n var clip = clips[i];\n var e = clip.step(time, delta); // Throw out the events need to be called after\n // stage.update, like destroy\n\n if (e) {\n deferredEvents.push(e);\n deferredClips.push(clip);\n }\n } // Remove the finished clip\n\n\n for (var i = 0; i < len;) {\n if (clips[i]._needsRemove) {\n clips[i] = clips[len - 1];\n clips.pop();\n len--;\n } else {\n i++;\n }\n }\n\n len = deferredEvents.length;\n\n for (var i = 0; i < len; i++) {\n deferredClips[i].fire(deferredEvents[i]);\n }\n\n this._time = time;\n this.onframe(delta); // 'frame' should be triggered before stage, because upper application\n // depends on the sequence (e.g., echarts-stream and finish\n // event judge)\n\n this.trigger('frame', delta);\n\n if (this.stage.update) {\n this.stage.update();\n }\n },\n _startLoop: function () {\n var self = this;\n this._running = true;\n\n function step() {\n if (self._running) {\n requestAnimationFrame(step);\n !self._paused && self._update();\n }\n }\n\n requestAnimationFrame(step);\n },\n\n /**\n * Start animation.\n */\n start: function () {\n this._time = new Date().getTime();\n this._pausedTime = 0;\n\n this._startLoop();\n },\n\n /**\n * Stop animation.\n */\n stop: function () {\n this._running = false;\n },\n\n /**\n * Pause animation.\n */\n pause: function () {\n if (!this._paused) {\n this._pauseStart = new Date().getTime();\n this._paused = true;\n }\n },\n\n /**\n * Resume animation.\n */\n resume: function () {\n if (this._paused) {\n this._pausedTime += new Date().getTime() - this._pauseStart;\n this._paused = false;\n }\n },\n\n /**\n * Clear animation.\n */\n clear: function () {\n this._clips = [];\n },\n\n /**\n * Whether animation finished.\n */\n isFinished: function () {\n return !this._clips.length;\n },\n\n /**\n * Creat animator for a target, whose props can be animated.\n *\n * @param {Object} target\n * @param {Object} options\n * @param {boolean} [options.loop=false] Whether loop animation.\n * @param {Function} [options.getter=null] Get value from target.\n * @param {Function} [options.setter=null] Set value to target.\n * @return {module:zrender/animation/Animation~Animator}\n */\n // TODO Gap\n animate: function (target, options) {\n options = options || {};\n var animator = new Animator(target, options.loop, options.getter, options.setter);\n this.addAnimator(animator);\n return animator;\n }\n};\nutil.mixin(Animation, Dispatcher);\nvar _default = Animation;\nmodule.exports = _default;","var Path = require(\"../graphic/Path\");\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar transformPath = require(\"./transformPath\");\n\n// command chars\n// var cc = [\n// 'm', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z',\n// 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'\n// ];\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\n\nvar vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n};\n\nvar vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n};\n\nvar vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n};\n\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n var psi = psiDeg * (PI / 180.0);\n var xp = mathCos(psi) * (x1 - x2) / 2.0 + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n\n var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0;\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0 + mathCos(psi) * cxp - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + mathCos(psi) * cyp;\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * PI;\n }\n\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * PI;\n }\n\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\n\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; // Consider case:\n// (1) delimiter can be comma or space, where continuous commas\n// or spaces should be seen as one comma.\n// (2) value can be like:\n// '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983',\n// 'l-.5E1,54', '121-23-44-11' (no delimiter)\n\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g; // var valueSplitReg = /[\\s,]+/;\n\nfunction createPathProxyFromString(data) {\n if (!data) {\n return new PathProxy();\n } // var data = data.replace(/-/g, ' -')\n // .replace(/ /g, ' ')\n // .replace(/ /g, ',')\n // .replace(/,,/g, ',');\n // var n;\n // create pipes so that we can split the data\n // for (n = 0; n < cc.length; n++) {\n // cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n // }\n // data = data.replace(/-/g, ',-');\n // create array\n // var arr = cs.split('|');\n // init context point\n\n\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var path = new PathProxy();\n var CMD = PathProxy.CMD; // commandReg.lastIndex = 0;\n // var cmdResult;\n // while ((cmdResult = commandReg.exec(data)) != null) {\n // var cmdStr = cmdResult[1];\n // var cmdContent = cmdResult[2];\n\n var cmdList = data.match(commandReg);\n\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd; // String#split is faster a little bit than String#replace or RegExp#exec.\n // var p = cmdContent.split(valueSplitReg);\n // var pLen = 0;\n // for (var i = 0; i < p.length; i++) {\n // // '' and other invalid str => NaN\n // var val = parseFloat(p[i]);\n // !isNaN(val) && (p[pLen++] = val);\n // }\n\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n\n var off = 0;\n\n while (off < pLen) {\n var ctlPtx;\n var ctlPty;\n var rx;\n var ry;\n var psi;\n var fa;\n var fs;\n var x1 = cpx;\n var y1 = cpy; // convert l, H, h, V, and v to L\n\n switch (cmdStr) {\n case 'l':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'm':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'l';\n break;\n\n case 'M':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'L';\n break;\n\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'C':\n cmd = CMD.C;\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n cpx = p[off - 2];\n cpy = p[off - 1];\n break;\n\n case 'c':\n cmd = CMD.C;\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n cpx += p[off - 2];\n cpy += p[off - 1];\n break;\n\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cmd = CMD.C;\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cmd = CMD.C;\n x1 = cpx + p[off++];\n y1 = cpy + p[off++];\n cpx += p[off++];\n cpy += p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n\n case 'Q':\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n\n case 'q':\n x1 = p[off++] + cpx;\n y1 = p[off++] + cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 'A':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n\n case 'a':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n }\n }\n\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd); // z may be in the middle of the path.\n\n cpx = subpathX;\n cpy = subpathY;\n }\n\n prevCmd = cmd;\n }\n\n path.toStatic();\n return path;\n} // TODO Optimize double memory cost problem\n\n\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n opts = opts || {};\n\n opts.buildPath = function (path) {\n if (path.setData) {\n path.setData(pathProxy.data); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n } else {\n var ctx = path;\n pathProxy.rebuildPath(ctx);\n }\n };\n\n opts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirty(true);\n };\n\n return opts;\n}\n/**\n * Create a Path object from path string data\n * http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {Object} opts Other options\n */\n\n\nfunction createFromString(str, opts) {\n return new Path(createPathOptions(str, opts));\n}\n/**\n * Create a Path class from path string data\n * @param {string} str\n * @param {Object} opts Other options\n */\n\n\nfunction extendFromString(str, opts) {\n return Path.extend(createPathOptions(str, opts));\n}\n/**\n * Merge multiple paths\n */\n// TODO Apply transform\n// TODO stroke dash\n// TODO Optimize double memory cost problem\n\n\nfunction mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n\n if (pathEl.__dirtyPath) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n\n pathList.push(pathEl.path);\n }\n\n var pathBundle = new Path(opts); // Need path proxy.\n\n pathBundle.createPathProxy();\n\n pathBundle.buildPath = function (path) {\n path.appendPath(pathList); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n };\n\n return pathBundle;\n}\n\nexports.createFromString = createFromString;\nexports.extendFromString = extendFromString;\nexports.mergePath = mergePath;","var _util = require(\"../core/util\");\n\nvar inherits = _util.inherits;\n\nvar Displayble = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\n/**\n * Displayable for incremental rendering. It will be rendered in a separate layer\n * IncrementalDisplay have two main methods. `clearDisplayables` and `addDisplayables`\n * addDisplayables will render the added displayables incremetally.\n *\n * It use a not clearFlag to tell the painter don't clear the layer if it's the first element.\n */\n// TODO Style override ?\nfunction IncrementalDisplayble(opts) {\n Displayble.call(this, opts);\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.notClear = true;\n}\n\nIncrementalDisplayble.prototype.incremental = true;\n\nIncrementalDisplayble.prototype.clearDisplaybles = function () {\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.dirty();\n this.notClear = false;\n};\n\nIncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\n if (notPersistent) {\n this._temporaryDisplayables.push(displayable);\n } else {\n this._displayables.push(displayable);\n }\n\n this.dirty();\n};\n\nIncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\n notPersistent = notPersistent || false;\n\n for (var i = 0; i < displayables.length; i++) {\n this.addDisplayable(displayables[i], notPersistent);\n }\n};\n\nIncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\n for (var i = this._cursor; i < this._displayables.length; i++) {\n cb && cb(this._displayables[i]);\n }\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n cb && cb(this._temporaryDisplayables[i]);\n }\n};\n\nIncrementalDisplayble.prototype.update = function () {\n this.updateTransform();\n\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i]; // PENDING\n\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i]; // PENDING\n\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n};\n\nIncrementalDisplayble.prototype.brush = function (ctx, prevEl) {\n // Render persistant displayables.\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n displayable.beforeBrush && displayable.beforeBrush(ctx);\n displayable.brush(ctx, i === this._cursor ? null : this._displayables[i - 1]);\n displayable.afterBrush && displayable.afterBrush(ctx);\n }\n\n this._cursor = i; // Render temporary displayables.\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i];\n displayable.beforeBrush && displayable.beforeBrush(ctx);\n displayable.brush(ctx, i === 0 ? null : this._temporaryDisplayables[i - 1]);\n displayable.afterBrush && displayable.afterBrush(ctx);\n }\n\n this._temporaryDisplayables = [];\n this.notClear = true;\n};\n\nvar m = [];\n\nIncrementalDisplayble.prototype.getBoundingRect = function () {\n if (!this._rect) {\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n var childRect = displayable.getBoundingRect().clone();\n\n if (displayable.needLocalTransform()) {\n childRect.applyTransform(displayable.getLocalTransform(m));\n }\n\n rect.union(childRect);\n }\n\n this._rect = rect;\n }\n\n return this._rect;\n};\n\nIncrementalDisplayble.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n\n if (rect.contain(localPos[0], localPos[1])) {\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n\n if (displayable.contain(x, y)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\ninherits(IncrementalDisplayble, Displayble);\nvar _default = IncrementalDisplayble;\nmodule.exports = _default;","var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar textContain = require(\"../contain/text\");\n\nvar textHelper = require(\"../graphic/helper/text\");\n\nvar Text = require(\"../graphic/Text\");\n\n// TODO\n// 1. shadow\n// 2. Image: sx, sy, sw, sh\nvar CMD = PathProxy.CMD;\nvar arrayJoin = Array.prototype.join;\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\n\nfunction round4(val) {\n return mathRound(val * 1e4) / 1e4;\n}\n\nfunction isAroundZero(val) {\n return val < EPSILON && val > -EPSILON;\n}\n\nfunction pathHasFill(style, isText) {\n var fill = isText ? style.textFill : style.fill;\n return fill != null && fill !== NONE;\n}\n\nfunction pathHasStroke(style, isText) {\n var stroke = isText ? style.textStroke : style.stroke;\n return stroke != null && stroke !== NONE;\n}\n\nfunction setTransform(svgEl, m) {\n if (m) {\n attr(svgEl, 'transform', 'matrix(' + arrayJoin.call(m, ',') + ')');\n }\n}\n\nfunction attr(el, key, val) {\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\n // Don't set attribute for gradient, since it need new dom nodes\n el.setAttribute(key, val);\n }\n}\n\nfunction attrXLink(el, key, val) {\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\n\nfunction bindStyle(svgEl, style, isText, el) {\n if (pathHasFill(style, isText)) {\n var fill = isText ? style.textFill : style.fill;\n fill = fill === 'transparent' ? NONE : fill;\n attr(svgEl, 'fill', fill);\n attr(svgEl, 'fill-opacity', style.fillOpacity != null ? style.fillOpacity * style.opacity : style.opacity);\n } else {\n attr(svgEl, 'fill', NONE);\n }\n\n if (pathHasStroke(style, isText)) {\n var stroke = isText ? style.textStroke : style.stroke;\n stroke = stroke === 'transparent' ? NONE : stroke;\n attr(svgEl, 'stroke', stroke);\n var strokeWidth = isText ? style.textStrokeWidth : style.lineWidth;\n var strokeScale = !isText && style.strokeNoScale ? el.getLineScale() : 1;\n attr(svgEl, 'stroke-width', strokeWidth / strokeScale); // stroke then fill for text; fill then stroke for others\n\n attr(svgEl, 'paint-order', isText ? 'stroke' : 'fill');\n attr(svgEl, 'stroke-opacity', style.strokeOpacity != null ? style.strokeOpacity : style.opacity);\n var lineDash = style.lineDash;\n\n if (lineDash) {\n attr(svgEl, 'stroke-dasharray', style.lineDash.join(','));\n attr(svgEl, 'stroke-dashoffset', mathRound(style.lineDashOffset || 0));\n } else {\n attr(svgEl, 'stroke-dasharray', '');\n } // PENDING\n\n\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit);\n } else {\n attr(svgEl, 'stroke', NONE);\n }\n}\n/***************************************************\n * PATH\n **************************************************/\n\n\nfunction pathDataToString(path) {\n var str = [];\n var data = path.data;\n var dataLength = path.len();\n\n for (var i = 0; i < dataLength;) {\n var cmd = data[i++];\n var cmdStr = '';\n var nData = 0;\n\n switch (cmd) {\n case CMD.M:\n cmdStr = 'M';\n nData = 2;\n break;\n\n case CMD.L:\n cmdStr = 'L';\n nData = 2;\n break;\n\n case CMD.Q:\n cmdStr = 'Q';\n nData = 4;\n break;\n\n case CMD.C:\n cmdStr = 'C';\n nData = 6;\n break;\n\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n var psi = data[i++];\n var clockwise = data[i++];\n var dThetaPositive = Math.abs(dTheta);\n var isCircle = isAroundZero(dThetaPositive - PI2) || (clockwise ? dTheta >= PI2 : -dTheta >= PI2); // Mapping to 0~2PI\n\n var unifiedTheta = dTheta > 0 ? dTheta % PI2 : dTheta % PI2 + PI2;\n var large = false;\n\n if (isCircle) {\n large = true;\n } else if (isAroundZero(dThetaPositive)) {\n large = false;\n } else {\n large = unifiedTheta >= PI === !!clockwise;\n }\n\n var x0 = round4(cx + rx * mathCos(theta));\n var y0 = round4(cy + ry * mathSin(theta)); // It will not draw if start point and end point are exactly the same\n // We need to shift the end point with a small value\n // FIXME A better way to draw circle ?\n\n if (isCircle) {\n if (clockwise) {\n dTheta = PI2 - 1e-4;\n } else {\n dTheta = -PI2 + 1e-4;\n }\n\n large = true;\n\n if (i === 9) {\n // Move to (x0, y0) only when CMD.A comes at the\n // first position of a shape.\n // For instance, when drawing a ring, CMD.A comes\n // after CMD.M, so it's unnecessary to move to\n // (x0, y0).\n str.push('M', x0, y0);\n }\n }\n\n var x = round4(cx + rx * mathCos(theta + dTheta));\n var y = round4(cy + ry * mathSin(theta + dTheta)); // FIXME Ellipse\n\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n break;\n\n case CMD.Z:\n cmdStr = 'Z';\n break;\n\n case CMD.R:\n var x = round4(data[i++]);\n var y = round4(data[i++]);\n var w = round4(data[i++]);\n var h = round4(data[i++]);\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\n break;\n }\n\n cmdStr && str.push(cmdStr);\n\n for (var j = 0; j < nData; j++) {\n // PENDING With scale\n str.push(round4(data[i++]));\n }\n }\n\n return str.join(' ');\n}\n\nvar svgPath = {};\n\nsvgPath.brush = function (el) {\n var style = el.style;\n var svgEl = el.__svgEl;\n\n if (!svgEl) {\n svgEl = createElement('path');\n el.__svgEl = svgEl;\n }\n\n if (!el.path) {\n el.createPathProxy();\n }\n\n var path = el.path;\n\n if (el.__dirtyPath) {\n path.beginPath();\n path.subPixelOptimize = false;\n el.buildPath(path, el.shape);\n el.__dirtyPath = false;\n var pathStr = pathDataToString(path);\n\n if (pathStr.indexOf('NaN') < 0) {\n // Ignore illegal path, which may happen such in out-of-range\n // data in Calendar series.\n attr(svgEl, 'd', pathStr);\n }\n }\n\n bindStyle(svgEl, style, false, el);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * IMAGE\n **************************************************/\n\n\nvar svgImage = {};\n\nsvgImage.brush = function (el) {\n var style = el.style;\n var image = style.image;\n\n if (image instanceof HTMLImageElement) {\n var src = image.src;\n image = src;\n }\n\n if (!image) {\n return;\n }\n\n var x = style.x || 0;\n var y = style.y || 0;\n var dw = style.width;\n var dh = style.height;\n var svgEl = el.__svgEl;\n\n if (!svgEl) {\n svgEl = createElement('image');\n el.__svgEl = svgEl;\n }\n\n if (image !== el.__imageSrc) {\n attrXLink(svgEl, 'href', image); // Caching image src\n\n el.__imageSrc = image;\n }\n\n attr(svgEl, 'width', dw);\n attr(svgEl, 'height', dh);\n attr(svgEl, 'x', x);\n attr(svgEl, 'y', y);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * TEXT\n **************************************************/\n\n\nvar svgText = {};\n\nvar _tmpTextHostRect = new BoundingRect();\n\nvar _tmpTextBoxPos = {};\nvar _tmpTextTransform = [];\nvar TEXT_ALIGN_TO_ANCHRO = {\n left: 'start',\n right: 'end',\n center: 'middle',\n middle: 'middle'\n};\n/**\n * @param {module:zrender/Element} el\n * @param {Object|boolean} [hostRect] {x, y, width, height}\n * If set false, rect text is not used.\n */\n\nvar svgTextDrawRectText = function (el, hostRect) {\n var style = el.style;\n var elTransform = el.transform;\n var needTransformTextByHostEl = el instanceof Text || style.transformText;\n el.__dirty && textHelper.normalizeTextStyle(style, true);\n var text = style.text; // Convert to string\n\n text != null && (text += '');\n\n if (!textHelper.needDrawText(text, style)) {\n return;\n } // render empty text for svg if no text but need draw text.\n\n\n text == null && (text = ''); // Follow the setting in the canvas renderer, if not transform the\n // text, transform the hostRect, by which the text is located.\n\n if (!needTransformTextByHostEl && elTransform) {\n _tmpTextHostRect.copy(hostRect);\n\n _tmpTextHostRect.applyTransform(elTransform);\n\n hostRect = _tmpTextHostRect;\n }\n\n var textSvgEl = el.__textSvgEl;\n\n if (!textSvgEl) {\n textSvgEl = createElement('text');\n el.__textSvgEl = textSvgEl;\n } // style.font has been normalized by `normalizeTextStyle`.\n\n\n var textSvgElStyle = textSvgEl.style;\n var font = style.font || textContain.DEFAULT_FONT;\n var computedFont = textSvgEl.__computedFont;\n\n if (font !== textSvgEl.__styleFont) {\n textSvgElStyle.font = textSvgEl.__styleFont = font; // The computedFont might not be the orginal font if it is illegal font.\n\n computedFont = textSvgEl.__computedFont = textSvgElStyle.font;\n }\n\n var textPadding = style.textPadding;\n var textLineHeight = style.textLineHeight;\n var contentBlock = el.__textCotentBlock;\n\n if (!contentBlock || el.__dirtyText) {\n contentBlock = el.__textCotentBlock = textContain.parsePlainText(text, computedFont, textPadding, textLineHeight, style.truncate);\n }\n\n var outerHeight = contentBlock.outerHeight;\n var lineHeight = contentBlock.lineHeight;\n textHelper.getBoxPosition(_tmpTextBoxPos, el, style, hostRect);\n var baseX = _tmpTextBoxPos.baseX;\n var baseY = _tmpTextBoxPos.baseY;\n var textAlign = _tmpTextBoxPos.textAlign || 'left';\n var textVerticalAlign = _tmpTextBoxPos.textVerticalAlign;\n setTextTransform(textSvgEl, needTransformTextByHostEl, elTransform, style, hostRect, baseX, baseY);\n var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign);\n var textX = baseX;\n var textY = boxY; // TODO needDrawBg\n\n if (textPadding) {\n textX = getTextXForPadding(baseX, textAlign, textPadding);\n textY += textPadding[0];\n } // `textBaseline` is set as 'middle'.\n\n\n textY += lineHeight / 2;\n bindStyle(textSvgEl, style, true, el); // FIXME\n // Add a