blob: d3b505b964068301990f40d7cddd7b7387e28918 [file] [log] [blame]
{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__spreadArrays","il","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","clone","source","result","typeStr","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","mergeAll","targetAndSources","extend","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","find","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","concatArray","newArray","offset","createObject","proto","properties","StyleCtor","hasOwn","own","noop","zrUtil","freeze","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","lengthSquare","mul","div","dot","scale","normalize","distance","dist","distanceSquare","distSquare","negate","lerp","applyTransform","m","min","max","vector","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","_calcOut","transformLocalCoord","elFrom","elTarget","inX","inY","transformCoordWithViewport","el","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut$1","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","isMiddleOrRightButtonOnMouseUpDown","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","ignoreClip","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","create$1","identity","copy$1","mul$1","m1","m2","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","sin","ct","cos","scale$1","vx","vy","invert","clone$2","matrix","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","updateTransform","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","pop","setLocalTransform","atan2","PI","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","sinusoidalOut","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","lerpNumber","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","strLen","iv","op","ep","fname","substr","params","split","alpha","hsla2rgba","hsla","rgba","rgba2hsla","R","G","B","vMin","vMax","L","H","S","deltaR","deltaG","deltaB","lift","color","level","colorArr","stringify","toHex","fastLerp","normalizedValue","colors","leftIndex","floor","rightIndex","ceil","leftColor","rightColor","dv","fastMapToColor","lerp$1","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","lum","backgroundLum","random","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","isNaN","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","_additiveTrack","needsAnimate","getAdditiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","sort","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","start","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_clip","_target","_loop","_additiveAnimators","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","_getAdditiveTrack","lastFinalKf","isPaused","_doneCallback","_setTracksFinished","doneList","_doneList","_abortedCallback","animation","abortedList","_abortedList","removeClip","tracksKeys","trackName","additiveAnimators","getTrack","forceAnimate","clip","stillHasAdditiveAnimator","onframeList","_onframeList","addClip","forwardToLast","during","done","aborted","getClip","stopTracks","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Point","other","equal","scalar","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","isZero","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","screen","deviceXDPI","logicalXDPI","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","markRedraw","beforeUpdate","afterUpdate","update","__dirty","updateInnerText","forceUpdate","textEl","_textContent","textConfig","isLocal","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","isDark","traverse","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","animator","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","noAnimation","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","idx","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","getTextContent","previousTextContent","removeTextContent","cfg","getTextGuideLine","setTextGuideLine","guideLine","removeTextGuideLine","textGuide","refreshHover","refresh","dirty","inHover","textContent","addAnimator","removeAnimator","animate","updateDuringAnimation","wakeUp","stopAnimation","scope","leftAnimators","animateTo","animationProps","animateFrom","getPaintRect","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","warn","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","finishCount","doneHappened","cfgDone","cfgAborted","doneCb","abortedCb","force","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","existsAnimatorsOnSameTarget","revertedSource","reversedTarget","sourceClone","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","remaining","ts","minRun","invalidZErrorLogged","logInvalidZError","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","userSetClipPath","currentClipPath","parentClipPath","childrenRef","children","child","disp","__clipPaths","decalEl","getDecalElement","addRoot","delRoot","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","notTriggerFrameAndStageUpdate","Date","getTime","nextClip","finished","_startLoop","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","_globalHandlerScope","isPointerCapturing","globalHandlerScope","STYLE_MAGIC_KEY","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","shouldBePainted","viewWidth","viewHeight","considerClipPath","considerAncestors","invisible","culling","isDisplayableCulled","isZeroArea","parent_1","rectContain","coord","_paintRect","elRect","shadowSize","tolerance","dirtyRectTolerance","setPrevPaintRect","paintRect","_prevPaintRect","getPrevPaintRect","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","getAnimationStyleProps","mergedStyle","dispProto","incremental","tmpRect","viewRect","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","Q","Z","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","tmpAngles","modPI2","radian","normalizeArcAngles","angles","newStartAngle","newEndAngle","PathProxy","notSaveData","_version","_xi","_yi","_x0","_y0","_saveData","increaseVersion","getVersion","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","isFirst","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","ellipse","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathProxy","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","pathCopyParams","Path","decal","_decalEl","buildPath","shape","decalElStyle","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","pathData","SVGPath","isPathProxy","createPathOptions","innerOpts","createFromString","extendFromString","defaultOpts","mergePath","pathEls","pathList","pathEl","pathBundle","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","isImageLike","ZRImage","_getSize","dim","size","imageSource","__image","otherDim","otherDimSize","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","tspanProto","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","PI$2","PI2$5","mathSin$3","mathCos$3","mathACos","mathATan2","mathAbs$1","mathSqrt$4","mathMax$3","mathMin$3","x10","y10","x32","y32","computeCornerTangents","cr","clockwise","x01","y01","x11","y11","x00","y00","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","buildPath$2","innerRadius","r0","hasRadius","hasInnerRadius","cornerRadius","innerCornerRadius","halfRd","icr","cr0","cr1","xrs","yrs","xire","yire","xre","yre","xirs","yirs","it_1","ct0","ct1","SectorShape","Sector","CompoundPath","_updatePathDirty","paths","dirtyPath","IncrementalDisplayble","notClear","_displayables","_temporaryDisplayables","_cursor","getCursor","clearDisplaybles","clearTemporalDisplayables","addDisplayable","notPersistent","addDisplayables","displayables","getDisplayables","getTemporalDisplayables","eachPendingDisplayable","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","createOrUpdateImage","onload","cbPayload","__zrImageSrc","pendingWrap","isImageReady","pending","Image","onerror","imageOnLoad","__cachedImgObj","STYLE_REG","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","preparedOpts","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","contentWidth","ellipsisWidth","textLine","subLength","estimateLength","charCode","charCodeAt","parsePlainText","overflow","padding","truncate","calculatedLineHeight","lineHeight","truncateLineOverflow","lineOverflow","lines","wrapText","contentHeight","lineCount","outerHeight","outerWidth","truncateMinChar","maxWidth","RichTextToken","RichTextLine","tokens","RichTextContentBlock","parseRichText","contentBlock","topWidth","topHeight","wrapInfo","accumWidth","breakAll","exec","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","finishLine","line","outer","token","tokenStyle","styleName","rich","textPadding","paddingH","tokenHeight","innerHeight","styleTokenWidth","tokenWidthNotSpecified","percentWidth","textBackgroundColor","bgImg","remainTruncWidth","block","isEmptyStr","newLine","strLines","linesWidths","tokenPadding","tokenPaddingH","outerWidth_1","parsePercent$1","isLineHolder","tokensLen","isLatin","ch","code","breakCharMap","isWordBreakChar","isBreakAll","lastAccumWidth","currentWord","currentWordWidth","chWidth","inWord","DEFAULT_RICH_TEXT_COLOR","DEFAULT_STROKE_LINE_WIDTH","DEFAULT_TEXT_ANIMATION_PROPS","fontSize","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","lineXLeft","lineXRight","_placeToken","parentBgColorDrawn","textWidth","textHeight","topStyle","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","commonStyle","makeFont","fontFamily","fontWeight","fontStyle","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$3","IsogonShape","Isogon","dStep","deg","RingShape","Ring","sin$1","cos$1","RoseShape","Rose","PI$4","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","proj","proj_1","useVML","painterCtors","instances","delInstance","totalLum","ZRender","_sleepAfterStill","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","useDirtyRect","handerProxy","getViewportRoot","_flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","flush","triggerRendered","refreshHoverImmediately","elapsedTime","setSleepAfterStill","stillFramesCount","addHover","removeHover","clearHover","getType","clearAnimation","pathToImage","eventHandler","disposeAll","getInstance","registerPainter","zrender","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","asc","getPrecision","count","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","quantile","ascArr","reformIntervals","littleThan","curr","currClose","close_1","close","lg","numericToNumber","valFloat","isNumeric","getRandomIdBase","getGreatestCommonDividor","getLeastCommonMultiple","numberUtil","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","makePrintableStringIfPossible_1","toISOString","arg","printableStr","JSON","err","throwError","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","isValidIdOrName","warnInvalidateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","item","idNum","obj1","obj2","key1","convertOptionIdName","key2","idOrName","defaultValue","isNameSpecified","componentModel","makeInternalComponentId","idSuffix","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","queryDataIndex","payload","dataIndexInside","dataIndex","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","queryOptionMap","mainTypeSpecified","parsedKey","queryType","includeMainTypes","queryOption","defaultMainType","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","MULTIPLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getAttribute","getTooltipRenderMode","renderModeOption","interpolateRawValues","sourceValue","targetValue","isAutoPrecision","interpolated","leftArr","rightArr","length_1","info","getDimensionInfo","leftVal","rightVal","TYPE_DELIMITER","IS_CONTAINER","IS_EXTENDED_CLASS","parseClassType","componentType","main","typeArr","checkClassType","isExtendedClass","clz","enableClassExtend","rootClz","mandatoryMethods","$constructor","method","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","color$1","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","api","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","dataIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","defaultStyleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getter","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","mathMax$4","mathMin$4","_customShapeMap","extendShape","extendPathFromString","extendPath","registerShape","ShapeClass","getShapeClass","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","img","boundingRect","aspect","mergePath$1","pathRect","subPixelOptimizeLine$1","param","subPixelOptimizeRect$1","subPixelOptimize$1","animateOrSetProps","animationType","animatableModel","isFrom","removeOpt","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","isAnimationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","isElementRemoved","fadeOutDisplayable","removeElementWithFadeOut","doRemove","getTransform","ancestor","mat","applyTransform$1","invert$1","transformDirection","direction","hBase","vBase","vertex","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","clipPointsByRect","clipRectByRect","targetRect","createIcon","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","q","graphic","Text","IncrementalDisplayable","EMPTY_OBJ","setLabelText","label","labelTexts","oldStates","normal","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","stateShow","targetElEmphasisState","enableTextSetter","labelInner","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","textStyle","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","inheritColor","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","richTextStyle","setTokenTextStyle","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","inRich","fillColor","strokeColor","textBorderType","textBorderDashOffset","defaultOpacity","baseline","disableBox","borderType","getFont","gTextStyleModel","setLabelValueAnimation","getDefaultText","prevValue","normalLabelModel","valueAnimation","defaultInterpolatedText","animateLabelValue","labelInnerStore","currentValue","labelText","PATH_COLOR","tmpRichText","TextStyleMixin","getTextColor","isEmphasis","getTextRect","LINE_STYLE_KEY_MAP","getLineStyle","LineStyleMixin","ITEM_STYLE_KEY_MAP","getItemStyle","ItemStyleMixin","Model","rest","mergeOption","_doGet","parsePath","hasPath","pathFinal","resolveParentPath","isEmpty","restoreData","pathArr","base","getUID","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","componentTypeMain","enableTopologicalTravel","entity","dependencyGetter","topologicalTravel","targetNameList","fullNameList","callback","makeDepndencyGraph","graph","noEntryList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","originalDeps","successor","removeEdgeAndAdd","removeEdge","errMsg","succComponentType","entryCount","thisItem","createDependencyGraphItem","availableDeps","getAvailableDependencies","dependentName","predecessor","thatItem","dep","inheritDefaultOption","superOption","subOption","langEN","month","monthAbbr","dayOfWeek","dayOfWeekAbbr","legend","selector","toolbox","brush","title","polygon","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","stack","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","dateGetterName","hoursGetterName","minutesGetterName","secondsGetterName","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","addCommas","parts","toCamelCase","upperCaseFirst","group1","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","makeValueReadable","valueType","useUTC","USER_READABLE_DEFUALT_TIME_PATTERN","stringToUserReadable","isNumberUserReadable","isTypeTime","isValueDate","numericResult","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","$vars","alias","formatTplSimple","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","capitalFirst","convertToColorString","defaultColor","windowOpen","link","blank","open","opener","href","formatUtil","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getLayoutRect","positionInfo","containerRect","containerHeight","verticalMargin","horizontalMargin","positionElement","hv","boundingMode","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","hvIdx","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","ctor","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","decalColor","globalDefault","gradientColor","decals","dashArrayX","dashArrayY","symbolSize","symbol","dashLineOffset","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","BE_ORDINAL","Must","Might","Not","innerGlobalModel","resetSourceDefaulter","datasetMap","inheritSourceMetaRawOption","upstream","newMetaRawOption","parentMetaRawOption","metaRawOption","seriesLayoutBy","sourceHeader","startIndex","dimensions","dimensionsDefine","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","sourceFormat","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","maxLoop","dimName","dimType","dimDefItem","dataArrayRows","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","registerInternalOptionCreator","creator","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","innerColor","innerDecal","PaletteMixin","getColorFromPalette","requestNum","defaultPalette","layeredPalette","getFromPalette","clearColorPalette","clearPalette","getDecalFromPalette","defaultDecals","getNearestPalette","palettes","requestColorNum","paletteNum","that","scopeFields","paletteIdx","paletteNameMap","palette","pickedPaletteItem","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeSetOptionInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","nameStr","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","internalField","seriesIndices","airaOption","enabled","mergeTheme","seriesId","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","idName","idName_1","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","coordinateSystems","creater","getCoordinateSystems","register","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","declaredBaseOption","timelineOnRoot","timeline","timelineOptionsOnRoot","mediaOnRoot","media","hasMedia","hasTimeline","singleMedia","doPreprocess","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","toObj","globalCompatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","timelineOpt","toolboxOpt","feature","featureOpt","tooltip","set$1","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","globalBackwardCompat","seriesType","clipOverflow","clockWise","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","SourceImpl","dimensionsDetectedCount","encodeDefine","isSourceInstance","createSource","sourceData","thisMetaRawOption","detectSourceFormat","determined","determineSourceDimensions","makeEncodeDefine","createSourceFromSeriesDataOption","cloneSourceShallow","normalizeDimensionsOption","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","firstIndex","dimensions_1","nameMap","rawItem","displayName","exist","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","fillStorage","fillStorageForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","dimExtent","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","dimInfo","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","getRawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","normalizeTooltipFormatResult","markupText","markupFragment","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","valueParserMap","SortOrderComparator","order","incomparable","isDesc","_resultLT","_incomparable","evaluate","lval","rval","lvalTypeof","rvalTypeof","lvalFloat","rvalFloat","lvalNotNumeric","rvalNotNumeric","lvalIsStr","rvalIsStr","ExternalSource","getRawData","cloneRawData","cloneAllDimensionInfo","retrieveValue","retrieveValueFromItem","convertValue","rawVal","createExternalSource","internalSource","externalTransform","extSource","sourceHeaderCount","dimsByName","dimDef","dimDefExt","__isBuiltIn","rawValueGetter","externalTransformMap","registerExternalTransform","typeParsed","isBuiltIn","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","pipeLen","transOption","applySingleDataTransform","upSourceList","pipeIndex","transType","extUpSourceList","upSource","resultList","upstreamList","print","printStrArr","pipeIndexStr","datasetIndex","resultData","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSourceMgr","_getSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","doThrow","upMgr","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","TOOLTIP_NAME_TEXT_STYLE_CSS","TOOLTIP_TEXT_STYLE_RICH","TOOLTIP_VALUE_TEXT_STYLE_CSS","TOOLTIP_VALUE_TEXT_STYLE_RICH","TOOLTIP_LINE_HEIGHT_CSS","HTML_GAPS","RICH_TEXT_GAPS","createTooltipMarkup","getBuilder","fragment","builderMap","section","planLayout","subBlockLen","blocks","thisBlockHasInnerGap","noHeader","thisGapLevelBetweenSubBlocks","subBlock","subGapLevel","__gapLevelBetweenSubBlocks","build","topMarginForOuterGap","gaps","getGap","subMarkupText","buildSubBlocks","html","displayableHeader","header","wrapInlineNameRichText","richText","wrapBlockHTML","nameValue","noName","noValue","noMarker","markerType","markerStr","markupStyleCreator","makeTooltipMarker","markerColor","readableName","valueTypeOption","readableValueList","valueAlignRight","valueCloseToMarker","wrapInlineValueRichText","wrapInlineNameHTML","wrapInlineValueHTML","subMarkupTextList","subBlocks","orderMode","sortBlocks","orderMap","valueAsc","valueDesc","comparator_1","sortParam","buildTooltipMarkup","builder","gapLevelBetweenSubBlocks","encodedContent","topGap","clearfix","marginCSS","leftHasMarker","marginCss","alignRight","paddingStr","alignCSS","wrapRichTextStyle","styles","paddingLeft","retrieveVisualColorForTooltipMarker","visualDrawType","getPaddingFromTooltipModel","TooltipMarkupStyleCreator","richTextStyles","_nextStyleNameId","_generateStyleName","finalStl","defaultSeriesFormatTooltip","tooltipDims","mapDimensionsAll","tooltipDimLen","isValueArr","inlineValue","inlineValueType","formatArrResult","formatTooltipArrayValue","inlineValues","inlineValueTypes","seriesNameSpecified","inlineName","isValueMultipleLine","dimItem","setEachItem","otherDims","inner$1","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","tmpArr","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","CHANGABLE_METHODS","DOWNSAMPLE_METHODS","wrapMethod","onDataChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$2","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","ORIGIN_METHOD","RATE","THROTTLE_TYPE","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","createOrUpdate","fnAttr","rate","throttleType","originFn","lastThrottleType","lastRate","inner$3","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","decalOption","setVisual","colorCallback","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","dataCount","PI$5","defaultLoading","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","oldSeriesTaskMap","newSeriesTaskMap","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","oldAgentStubMap","newAgentStubMap","overallProgress","shouldOverallTaskDirty","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","splitLine","splitArea","minorSplitLine","colorPalette","crossStyle","subtextStyle","iconStyle","brushStyle","handleStyle","moveHandleStyle","fillerColor","dataBackground","selectedDataBackground","controlStyle","dayLabel","monthLabel","yearLabel","timeAxis","logAxis","valueAxis","categoryAxis","axisLabel","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","PI2$6","CMD$3","DEFAULT_SEARCH_SPACE","getCandidateAnchor","outPt","outDir","projectPointToArc","projectPointToLine","limitToEnds","lineLen","projectedLen","projectPointToRect","tmpPt","nearestPointOnRect","pt","nearestPointOnPath","minDist","pt0","pt1","pt2","dir2","updateLabelLinePoints","labelLineModel","labelLine","labelGuideConfig","textGuideLineConfig","searchSpace","candidates","anchorPoint","anchor","targetTransform","targetInversedTransform","candidate","limitTurnAngle","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","tan","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","newAngle","setLabelLineState","isNormal","styleObj","buildLabelLinePath","moveLen","midPoint0","midPoint2","midPoint1","setLabelLineStyle","labelIgnoreNormal","isLabelIgnored","showAbove","labelLineConfig","getLabelLineStatesModels","labelLineName","prepareLayoutList","defaultAttr","localRect","isAxisAligned","minMargin","globalRect","obb","priority","layoutOption","computedLayoutOption","axisAligned","shiftLayout","xyDim","sizeDim","minBound","maxBound","balanceShift","lastPos","adjusted","totalShifts","shiftList","first","last","minGap","maxGap","updateMinMaxGap","squeezeGaps","takeBoundsGap","squeezeWhenBailout","gapThisBound","gapOtherBound","moveDir","moveFromMaxGap","remained","maxSqeezePercent","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","hideEl","emphasisState","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","ecIns","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","isClipPathChanged","prevClipPaths","normalizeLineDash","lineType","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","canvasPattern","createPattern","repeat","DOMMatrix","rotateSelf","scaleSelf","translateSelf","setTransform","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","hasLineDash","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","brushSingle","isLast","__isRendered","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","i_1","len_1","returnFalse","createDom","newDom","newDomStyle","Layer","motionBlur","lastFrameAlpha","virtual","maxRepaintRectCount","__firstTimePaint","__used","__drawIndex","__startIndex","__endIndex","__prevStartIndex","__prevEndIndex","domStyle","onselectstart","webkitUserSelect","userSelect","webkitTapHighlightColor","domBack","ctxBack","getElementCount","initContext","setUnpainted","createBackBuffer","createRepaintRects","prevList","mergedRepaintRects","full","pendingRect","addRectToMergePool","isMerged","minDeltaArea","bestRectToMergeIdx","mergedRect","pendingRect_1","aArea","bArea","pendingArea","deltaArea","shouldPaint","prevRect","curRect","hasIntersections","_paintRects","debugGetPaintRects","clearAll","clearColor","repaintRects","haveMotionBLur","doClear","clearRect","clearColorGradientOrPattern","__canvasGradient","__painter","fillRect","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","parseInt10","isLayerValid","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_prevDisplayList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","_opts","_singleCanvas","rootStyle","innerHTML","zlevelList","layers","_width","_height","_domRoot","rootCanvas","mainLayer","isSingleCanvas","getViewportRootOffset","viewportRoot","paintAll","_redrawId","_paintList","_paintHoverList","_hoverlayer","getLayer","getHoverLayer","paintOne","redrawId","_updateLayerStatus","_doPaintList","needsRefreshHover","_compositeManually","self_1","eachLayer","eachBuiltinLayer","layerList","zi","_loop_1","this_1","useTimer","now","startTime","firstEl","repaint","repaintRect","_doPaintEl","dTime","draw","currentLayer","insertLayer","layersMap","prevLayer","prevDom","insertBefore","getLayers","updatePrevLayer","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","removeChild","display","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","ctx_1","renderToCanvas","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","canvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","findEventDispatcher","returnFirstMatch","found","wmUniqueIndex","WeakMap","_id","_guard","enumerable","configurable","has","TypeError","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","circle","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","decalMap","decalCache","decalKeys","createOrUpdatePatternFromDecal","decalObject","getDevicePixelRatio","getZr","isSVG","oldPattern","decalOpt","maxTileWidth","maxTileHeight","setPatternnSource","isValidKey","cache","svgElement","normalizeDashArrayX","normalizeDashArrayY","symbolArray","normalizeSymbolArray","lineBlockLengthsX","getLineBlockLengthX","lineBlockLengthY","getLineBlockLengthY","svgRoot","createSVGElement","pSize","getPatternSize","brushDecal","svgWidth","svgHeight","xlen","symbolRepeats","attrName","ySum","yId","yIdTotal","xId0","symbolYId","xId1","xId1Total","xSum","top_1","symbolXId","brushSymbol","isAllString","dashValue","isAllNumber","dashValue_1","blockLength","decalVisual","hasItemVisual","assert$1","each$3","isFunction$1","isObject$2","version$1","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_BRUSH","PRIORITY_VISUAL_ARIA","PRIORITY_VISUAL_DECAL","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","ARIA","DECAL","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","setTransitionOpt","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","defaultUseDirtyRect","__ECHARTS__DEFAULT__RENDERER__","devUseDirtyRect","__ECHARTS__DEFAULT__USE_DIRTY_RECT__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","notMerge","lazyUpdate","transitionOpt","setTheme","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","url","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","right_1","bottom_1","canvasList_1","dpr_1","instances$1","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","modelId","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","newObj","pendingActions","dispatcher","dirtyList","updateZ","updateStates","__transientTransitionOpt","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","transOpt","fromOpt","toOpt","to","finderOpt","fromResult","toResult","toSeries","dimension","dividingMethod","echartsProto","one","wrapped","args2","postInitFuncs","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","postInitFunc","connect","disConnect","disconnect","dispose$1","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostInit","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","dataIndexMapValueLength","valNumOrArrLengthMoreThan2","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","diffMode","_old","_new","_oldKeyGetter","_newKeyGetter","_diffModeMultiple","_add","_update","updateManyToOne","_updateManyToOne","updateOneToMany","_updateOneToMany","_remove","execute","_executeOneToOne","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","oldKey","newIdxMapVal","newIdxMapValLen","newIdx","_performRestAdd","_executeMultiple","oldDataIndexMap","oldIdxMapVal","oldIdxMapValLen","newKey","idxMapValLen","keyArr","keyGetterName","cbModeMultiple","idxMapVal","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","axisType","DataDimensionInfo","mathFloor","isObject$3","map$1","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getIndicesCtor","prepareStorage","getRawIndexWithoutIndices","getRawIndexWithIndices","getIdNameFromStore","makeIdFromName","normalizeDimensions","validateDimensions","cloneListForMapAndSample","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_storageArr","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_nameDimIdx","_nameOrdinalMeta","itemId","_idDimIdx","_idOrdinalMeta","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_dontMakeIdFromName","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","dimLen","rawExtent","rawExtentArr","storageArr","emptyDataItem","sourceIdx","dimIdx","dimRawExtent","append","dimensionInfoMap","idList","isFormatOriginal","dimStorage","getIndices","newIndices","thisCount","buffer","getByDimIdx","dimStore","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","dimIndices","filterSelf","dim0","selectRange","originalCount","quickFinished","dimStorage2","val2","dimk","mapArray","tmpRetValue","retValue","rawExtentOnDim","downSample","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","sampleFrameIdx","lttbDownSample","valueDimension","sampledIndex","currentRawIndex","maxArea","area","nextRawIndex","nextFrameStart","nextFrameEnd","avgX","avgY","frameStart","frameEnd","pointAX","pointAY","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","DataCtor","oldStore","oldLen","newStore","excludeDimensions","allDimensions","originalStorage","cloneChunk","originalChunk","childECData","thisECData","nameDimIdx","idDimIdx","nameRepeatCount","nmCnt","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","getExtent","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","OrdinalMeta","_needCollect","needCollect","_deduplication","deduplication","createByAxisModel","dedplication","getOrdinal","category","_getOrCreateMap","roundNumber","intervalScaleNiceTicks","splitNumber","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","dataNum","expandSize","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cartesian","baseAxis","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","axisExtent","bandWidth","getBandWidth","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","axisKey","stackId","doCalBarWidthAndOffset","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","valueDim","baseDim","stacked","isValueAxisH","isHorizontal","valueAxisStart","getValueAxisStart","baseValue","baseCoord","dataToPoint","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","toGlobalCoord","dataToCoord","bisect","TimeScale","settings","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","tickValue","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor$1","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","getNeedCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","getCategories","boundaryGap","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","AxisModelCommonMixin","getCoordSysModel","createList","dataStack$1","createScale","mixinAxisModelCommonMethods","helper","EPSILON$3","isAroundEqual$1","contain$2","Region","geometries","cp","exterior","loopGeo","interiors","transformTo","newRegion","decode","json","UTF8Encoding","jsonCompressed","encodeScale","UTF8Scale","geometry","coordinates","decodePolygon","encodeOffsets","coordinate","c2","prevX","prevY","parseGeoJSON","nameProperty","featureObj","region","inner$4","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","labelModel","makeCategoryLabelsActually","labels","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","formattedLabel","rawLabel","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","containData","fixExtentWithBands","coordToData","pointToData","getTicksCoords","getTickModel","ticksCoords","tickVal","alignWithLabel","fixOnBandTicksCoords","getMinorTicksCoords","minorTickModel","minorTicksCoords","getViewLabels","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","parseGeoJson","number","format$1","ecUtil","GRAPHIC_KEYS","graphic$1","LineSeriesModel","legendHoverLink","endLabel","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","getDefaultLabel","labelDims","vals","getDefaultInterpolatedLabel","interpolatedValue","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","disableAnimation","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","scaleRatio","setSymbolScale","fadeOut","animationOpt","fadeLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","symbolUpdateOpt","getSymbolPoint","symbolEl","oldIdx","_getSymbolPoint","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","valueAxisDim","baseDataOffset","stackResultDim","dataDimsForPoint","getStackedOnPoint","dataCoordInfo","stackedData","supportFloat32Array","Float32ArrayCtor","createFloat32Array","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","oldPoints","diffItem","pointAdded","oldIdx2","newIdx2","currentX","currentY","newDataDimsForPoint","oldPt","stackedOnPoint","oldDataDimsForPoint","newPt","newStackedOnPt","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","i2","idx2","stackedOnCurrent","stackedOnNext","mathMin$5","mathMax$5","isPointNull","drawSegment","segLen","allLen","cpx0","cpy0","tmpK","ratioNextSeg","nextCpx0","nextCpy0","lenPrevSeg","lenNextSeg","ECPolylineShape","ECPolyline","getPointOn","xOrY","isDimX","nRoot","t_1","ECPolygonShape","ECPolygon","stackedOnPoints","stackedOnSmooth","createGridClipPath","hasAnimation","getArea","isAxisInversed","duringCb","createPolarClipPath","sectorArea","isRadial","createClipPath","isCoordinateSystemType","isPointsSame","points1","points2","bboxFromPoints","minX","minY","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","nextPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","gradient","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","isPointNull$1","getLastIndexNotNull","getPointAtIndex","getIndexRange","prevIndex","nextIndex","createLineClipPath","lineView","endLabelModel_1","showEndLabel","valueAnimation_1","data_1","labelAnimationRecord_1","lastFrameIndex","clipRect","_endLabelOnDuring","_endLabel","originalX","originalY","getEndLabelStateSpecified","endLabelModel","isBaseInversed","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","polyline","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_initSymbolLabelAnimation","_newPolyline","_newPolygon","_initOrUpdateEndLabel","_stackedOnPoints","_points","_doUpdateAnimation","lineJoin","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","isHorizontalOrRadial","isAxisInverse","seriesDuration","seriesDalay","seriesDalayValue","polarClip","pointToCoord","gridClip","ratio","data_2","animationRecord","dataIndexRange","endValue","__points","updatedDataInfo","diffStatus","ptIdx","pointsLayout","forceStoreInTypedArray","useTypedArray","dimInfo0","dimInfo1","dimIdx0","dimIdx1","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","axisTick","showMinLabel","showMaxLabel","primary","logBase","axisDefault","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","CartesianAxisModel","extraOption","categorySortInfo","PI$6","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labelRotation","rawCategoryData","itemLabelModel","rawCategoryItem","collect","axesInfo","seriesInvolved","coordSysAxesInfo","coordSysMap","collectAxesInfo","collectSeriesInfo","globalTooltipModel","globalAxisPointerModel","linksOption","linkGroups","axisPointerEnabled","coordSysKey","makeKey","axesInfoInCoordSys","coordSysModel","baseTooltipModel","getAxes","saveTooltipAxisInfo","getTooltipAxes","triggerAxis","cross","tooltipAxes","baseAxes","otherAxes","fromTooltip","triggerTooltip","axisPointerModel","axisPointerShow","isHandleTrigger","makeAxisPointerModel","snap","involveSeries","axisInfo","useHandle","linkGroup","groupIndex","getLinkGroupIndex","mapper","tooltipAxisPointerModel","volatileOption","field","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","fixValue","getAxisInfo","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$5","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","condVal","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","addAxis","cartesian2DDimensions","canCalculateAffineTransform","Cartesian2D","calcAffineTransform","_transform","_invTransform","xAxisScale","yAxisScale","xScaleExtent","yScaleExtent","xScaleSpan","yScaleSpan","translateX","translateY","axisX","axisY","toLocalCoord","xVal","yVal","clampData","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","boxLayoutParams","isContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","realtimeSort","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$6","mathMin$6","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","removeOnRenderedListener","_updateDrawMode","coordinateSystemType","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","animationModel","axis2DModel","_initSort","_onRendered","_updateSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","isInitSort","isChangeOrder","createBackground","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","signR","__dataIndex","animateProperty","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","pieLabelLayout","hasLabelRotate","minShowLabelRadian","setNotShow","isLabelShown","labelLineLen","labelLineLen2","midAngle","isLabelInside","notShowLabel","getSectorCornerRadius","PiePiece","firstCreate","_updateLabel","visualOpacity","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$7","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels","ScatterSeriesModel","BOOST_SIZE_THRESHOLD","LargeSymbolPathShape","LargeSymbolPath","symbolProxy","symbolProxyShape","canBoost","softClipShape","findDataIndex","LargeSymbolDraw","_incremental","_setCommon","endIndex","byteOffset","_clearIncremental","isIncremental","extrudeShadow","ecData_1","ScatterView","_updateSymbolDraw","_getClipShape","clipArea","isEC4CompatibleStyle","elType","hasOwnTextContentOption","hasOwnTextConfig","legacy","convertFromEC4CompatibleStyle","hostStyle","srcStyle","textContentStyle","hasOwnPos","textDistance","convertEC4CompatibleRichItem","richItem","textStrokeWidth","textLineHeight","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","inner$6","_nonShapeGraphicElements","compoundPath","graphicOption","elements","GraphicComponentModel","existList","flattenedList","_flatten","elOptionsToUpdate","_elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","els","GraphicComponentView","_elMap","graphicModel","_lastGraphicModel","_updateElements","_relocate","rootGroup","elOption","elExisting","parentId","targetElParent","elOptionStyle","textContentOption","convertResult","elOptionCleaned","getCleanedElOption","createEl","removeEl","textContentExisting","elInner","__ecGraphicWidthOption","__ecGraphicHeightOption","setEventData","elOptions","apiWidth","apiHeight","parentEl","isParentRoot","parentElInner","__ecGraphicWidth","__ecGraphicHeight","containerInfo","bounding","graphicType","__ecGraphicId","existElParent","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","newType","existItem","existingGroupOpt","newGroupOpt","findPointFromSeries","getTooltipPosition","isStacked","inner$7","axisTrigger","currTrigger","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputPayload","showValueMap","dataByCoordSys","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","noSnap","outputFinder","payloadInfo","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","getAxisTooltipData","nestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysType","coordSysMainType","dataByAxis","valueLabelOpt","seriesDataIndices","outputAxesInfo","valItem","tooltipOption","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","inner$8","each$4","initGlobalListeners","initialized","useHandler","doEnter","onLeave","dis","makeDispatchAction","dispatchTooltipFinally","pendings","showLen","showTip","hideLen","hideTip","actuallyPayload","unregister","AxisPointerView","triggerOn","inner$9","clone$3","bind$1","BaseAxisPointer","_dragging","_axisModel","_axisPointerModel","_lastValue","_lastStatus","_group","handle","_handle","makeElOption","graphicKey","_lastGraphicKey","moveAnimation","_moveAnimation","determineAnimation","createPointerEl","createLabelEl","doUpdateProps","updateProps$1","updatePointerEl","updateLabelEl","updateMandatoryProps","_renderHandle","isCategoryAxis","useSnap","pointerOption","pointerEl","labelEl","updateLabelShowHide","updateHandleTransform","handleModel","onmousemove","onmousedown","_onHandleDragMove","ondragend","_onHandleDragEnd","handleSize","_moveHandleToValue","getHandleTransProps","getHandleTransform","trans","_payloadInfo","lastProp","_doDispatchAxisPointer","cursorPoint","buildLabel","xy","xDimIndex","propsEqual","lastProps","equals_1","buildElStyle","axisPointerType","buildLabelElOption","labelPos","getValueLabel","paddings","confineInContainer","bgColor","params_1","axisDimension","seriesData","idxItem","getTransformedPosition","layoutInfo","buildCartesianSingleLabelElOption","textLayout","makeLineShape","makeRectShape","CartesianAxisPointer","otherExtent","pixelValue","elStyle","pointerShapeBuilder","currPosition","cursorOtherValue","tooltipOptions","getAxisDimIndex","shadow","AxisPointerModel","shadowStyle","icon","TooltipModel","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","transitionDuration","enterable","shouldTooltipConfine","tooltipModel","confineOption","vendors","gCssText","mirrorPos","assembleArrow","arrowPosition","arrowPos","positionStyle","transformStyle","vendorPrefix","styleCss","assembleTransition","onlyFade","transitionCurve","transitionText","assembleFont","assembleCssText","enableTransition","boxShadow","borderName","camelCase","makeStyleCoord","appendToBody","zrPainter","zrViewportRoot","body","viewportRootOffset","TooltipHTMLContent","_show","_styleCoord","_enterable","_firstShow","_longHide","_appendToBody","_container","onmouseenter","_hideTimeout","_inContent","onmouseleave","hideLater","_hideDelay","currentStyle","_moveIfResized","className","nearPointColor","_longHideTimeout","styleCoord","offsetHeight","pointerEvents","setContent","setEnterable","getSize","ratioX","ratioY","visibility","isShow","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","TooltipRichContent","makeStyleCoord$1","shadowOuterSize","calcShadowOuterSize","mathMaxWith0","bind$2","each$5","parsePercent$3","proxyRect","TooltipView","_renderMode","_tooltipContent","_tooltipModel","_ecModel","_alwaysShowContent","tooltipContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","_lastDataByCoordSys","makeDispatchAction$1","_ticket","_manuallyAxisShowTip","pointInfo","manuallyHideTip","tooltipCascadedModel","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleTooltipModel","cbParamsList","articleMarkup","markupTextArrLegacy","itemCoordSys","axisItem","axisValue","axisValueLabel","axisSectionMarkup","cbParams","seriesTooltipResult","positionExpr","builtMarkupText","blockBreak","allMarkupText","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","tooltipTrigger","asyncTicket","subTooltipModel","defaultHtml","nearPoint","_getNearestPoint","params0","isTimeAxis","cbTicket","tooltipDataParams","contentSize","vAlign","viewSize","boxLayoutPosition","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","lastItem","indexAxis","lastIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","getDefaultSelectorOptions","LegendModel","_updateSelector","_updateData","legendData","hasSelected","potentialData","availableNames","isPotential","_availableNames","unSelect","toggleSelected","allSelect","inverseSelect","getOrient","itemGap","itemWidth","itemHeight","inactiveColor","inactiveBorderColor","selectorLabel","selectorPosition","selectorItemGap","selectorButtonGap","legendSelectActionHandler","isToggleSelect","legendModel","isItemSelected","layout$2","viewportSize","makeBackground","curry$1","each$6","Group$1","LegendView","newlineDisabled","_contentGroup","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","isFirstRender","resetInner","itemAlign","renderInner","mainRect","layoutInner","_backgroundEl","contentGroup","legendDrawnMap","selectMode","legendSymbolType","itemGroup","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","_createSelector","selectorGroup","createSelectorButton","selectorItem","onclick","emphasisLabelModel","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","legendIndex","__legendDataIndex","contentRect","contentPos","selectorRect","selectorPos","orientIdx","hw","yx","dataName","isUseHoverLayer","legendFilter","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","mergeAndNormalizeLayoutParams","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","horizontal","vertical","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","raw","Group$2","WH","XY","ScrollableLegendView","_currentIndex","_containerGroup","_controllerGroup","__rectSize","controllerGroup","pageIconSizeArr","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","processMaxSize","_layoutContentAndController","containerGroup","controllerRect","showController","_showController","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","legendId","canJump","pageText","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","itemRect","itemInfo","winStart","targetDataIndex","defaultIndex","legendDataIdx","TitleModel","subtext","subtarget","TitleView","titleModel","subtextStyleModel","subText","subTextEl","sublink","groupRect","alignStyle","fillLabel","inner$a","MarkerModel","createdBySelf","hostSeries","__hostSeries","markerOpt","markerModel","createMarkerModelFromSeries","getMarkerModelFromSeries","MarkPointModel","masterMarkerModel","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","numCalculate","coordArrValue","markerTypeCalculator","median","dataTransform","getAxisInfo$1","coordInfo","baseDataDim","valueDataDim","radiusAxis","angleAxis","valueIndex","dataDimToCoordDim","dataFilter$1","sum_1","count_1","inner$b","MarkerView","markerGroupMap","markKeep","drawGroup","seriesModelList","updateMarkerLayout","xPx","yPx","MarkPointView","markPointModel","mpModel","symbolDrawMap","createList$1","coordDimsInfos","dataOpt","MarkLineModel","straightLineProto","bezierCurveProto","StraightLineShape","CurveShape","isStraightLine","ECLinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","createSymbol$1","lineData","symbolSizeArr","__specifiedRotation","createLine","setLinePoints","Line$1","_createLine","_updateCommonStl","getLinePath","blurLineStyle","selectLineStyle","lineState","lineStateStyle","stateStyle","labelNormalModel","__align","__verticalAlign","__position","__labelDistance","linePath","symbolFrom","symbolTo","invScale","fromPos","toPos","setSymbolRotation","specifiedRotation","tangent","distanceX","distanceY","halfPercent","LineDraw","LineCtor","_LineCtor","lineDraw","oldLineData","_lineData","makeSeriesScope$1","_doUpdate","isEffectObject","lineNeedsDraw","newLineData","isPointNaN","pts","inner$c","markLineTransform","mlModel","itemArray","mlType","mlFrom","mlTo","normalizedItem","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","MarkLineView","markLineModel","mlData_1","fromData_1","toData_1","lineDrawMap","createList$2","fromData","toData","updateDataVisualAndLayout","fromSymbolRotate","fromSymbolSize","fromSymbol","toSymbolRotate","toSymbolSize","toSymbol","optData","dimValueGetter$1","MarkAreaModel","inner$d","markAreaTransform","maModel","ltCoord","rbCoord","isInifinity$1","ifMarkAreaHasOnlyDim","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","MarkAreaView","markAreaModel","areaData_1","areaGroupMap","polygonGroup","areaData","createList$3","xValue","yValue","DATA_ZOOM_AXIS_DIMENSIONS","SERIES_COORDS","isCoordSupported","coordType","getAxisMainType","findEffectedDataZooms","axisRecords","effectedModels","effectedModelMap","dataZoomModel","addToEffected","foundNewLink","processSingle","isLinked","markAxisControlled","isLink","eachTargetAxis","axisIdxArr","collectReferCoordSysModelInfo","coordSysInfoWrap","infoList","infoMap","coordSysUid","axisModels","DataZoomAxisInfo","indexList","indexMap","axisCmptIdx","DataZoomModel","_autoThrottle","_noTarget","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","_doInit","_setDefaultThrottle","_updateRangeUse","_resetTarget","optionOrient","targetAxisIndexMap","_targetAxisInfoMap","hasAxisSpecified","_fillSpecifiedTargetAxis","_orient","_makeAutoOrientByTargetAxis","_fillAutoTargetAxisByOrient","refering","needAuto","setParallelAxis","gridModel_1","axModel","globalOption","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","noTarget","getFirstTargetAxisModel","firstAxisModel","getAxisProxy","getAxisModel","__dzAxisProxy","setRawRange","setCalculatedRange","getPercentRange","axisProxy","findRepresentativeAxisProxy","getDataPercentWindow","getValueRange","getDataValueWindow","firstProxy","axisDimList","hostedBy","getRangePropMode","filterMode","DataZoomView","SliderZoomModel","handleIcon","moveHandleSize","moveHandleIcon","showDetail","showDataShadow","realtime","zoomLock","brushSelect","sliderMove","handleEnds","handleIndex","minSpan","maxSpan","restrict","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","Rect$1","DEFAULT_LOCATION_EDGE_GAP","DEFAULT_FRAME_BORDER_WIDTH","DEFAULT_FILLER_SIZE","DEFAULT_MOVE_HANDLE_SIZE","HORIZONTAL","VERTICAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","REALTIME_ANIMATION_CONFIG","SliderZoomView","_onBrush","_onBrushEnd","_buildView","_updateView","thisGroup","_brushing","brushRect","_resetLocation","_resetInterval","barGroup","sliderGroup","_renderDataShadow","_positionGroup","showMoveHandle","coordRect","_findCoordRect","ecSize","layoutParams","_location","_size","targetAxisModel","otherAxisInverse","_dataShadowInfo","_getViewExtent","clickPanel","_onClickPanel","_onBrushStart","_prepareDataShadowInfo","dataShadowSegs","getShadowDim","otherDataExtent","otherOffset","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","lastIsEmpty","otherCoord","createDataShadowGroup","isSelectedArea","getTargetSeriesModels","thisAxis","getOtherDim","thisDim","handles","handleLabels","filler","_onDragMove","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","_handleHeight","_handleWidth","handleColor","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","iconSize","moveZoneExpandSize","moveZone","ondragstart","_range","viewExtent","_handleEnds","_updateInterval","viewExtend","minMaxSpan","getMinMaxSpan","percentExtent","lastRange","nonRealtime","displaybles","handleInterval","handleHeight","segIntervals","segGroup","_updateDataInfo","dataInterval","calculateDataWindow","valueWindow","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelPrecision","valueStr","showOrHide","changed","_dispatchZoomAction","localPoint","_brushStart","_brushStartTime","brushShape","brushEndTime","_updateBrushRect","mouseX","mouseY","brushStart","endPoint","dataZoomId","coordSysInfoList","each$7","asc$1","AxisProxy","_dimName","_axisIndex","_dataZoomModel","_valueWindow","_percentWindow","axisMainType","_minMaxSpan","_dataExtent","percentWindow","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","suffix","targetSeries","calculateDataExtent","_updateMinMaxSpan","dataWindow","_setAxisModel","filterData","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","percentSpan","valueSpan","eachAxisModel","proxyList","percentRange","valueRange","InsideZoomModel","disabled","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","ATTR","take","resourceKey","userKey","getStore","release","uKey","isTaken","RoamController","mousedownHandler","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","controlType","_opt","isDragging","isPinching","_pinching","setPointerChecker","pointerChecker","isAvailableBehavior","oldX","oldY","newX","newY","shouldZoom","shouldMove","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","scrollDelta","controller","behaviorToCheck","contollerEvent","inner$e","apiInner","coordSysRecordMap","coordSysRecord","dataZoomInfoMap","dzReferCoordSysWrap","dzCoordSysInfo","createCoordSysRecord","dzReferCoordSysInfo","getRange","firstDzInfo","firstDzKey","disposeCoordSysRecord","controllerParams","mergeControllerParams","containsPoint","setViewInfoToCoordSysRecord","dzInfo","disposeCoordSysRecordIfNeeded","coordSysKeyArr","dzUid","typePriority","dataZoomInfo","oneType","InsideZoomView","pan","getRangeHandlers","scrollMove","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","pixel","makeMover","getPercentDelta","percentDelta","oldPoint","newPoint","radiusExtent","getRadiusAxis","angleExtent","getAngleAxis","ToolboxFeature","registerFeature","getFeature","ToolboxModel","featureName","Feature","itemSize","showTitle","ToolboxView","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","featureModel","newTitle","isUserFeatureName","unusable","createIconPaths","setIconStatus","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconsMap","titlesMap","pathEmphasisState","__title","hoverStyle","defaultTextPosition","titleText","emphasisTextConfig","emphasisTextState","emphasisTextStyle","needPutOnTop","topOffset","SaveAsImage","MouseEvent","$a","download","evt","bubbles","cancelable","dispatchEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","blob","Blob","tab","write","INNER_STACK_KEYWORD","radioTypes","MagicType","availableIcons","seriesOptGenreator","generateNewSeriesTypes","newSeriesOpt","radio","currentType","isStack","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","assembleSeriesWithCategoryAxis","groups","tables","headers","columns","assembleOtherSeries","getContentFromModel","trim$1","isTSVFormat","firstLine","itemSplitRegex","RegExp","parseTSVContents","tsv","tsvLines","parseListContents","hasName","parseContents","blockMetaList","blockMeta","DataView","viewMain","textarea","optionToContent","contentToOption","htmlOrDom","readOnly","buttonContainer","buttonStyle","closeButton","refreshButton","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","tryMergeDataOption","originalData","newVal","newValIsObject","shouldDeleteName","newSeriesOptList","BRUSH_PANEL_GLOBAL","mathMin$7","mathMax$7","mathPow$2","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","sw","nw","se","DEFAULT_BRUSH_OPT","transformable","brushMode","removeOnClick","baseUID","BrushController","_covers","_handlers","_uid","pointerHandlers","enableBrush","brushOption","_mounted","_brushType","_doDisableBrush","brushType","_doEnableBrush","_enableGlobalPan","_brushOption","setPanels","panelOpts","panels_1","_panels","panelId","enableGlobalPan","updateCovers","coverConfigList","coverConfig","tmpIdPrefix","oldCovers","newCovers","creatingCover","_creatingCover","oldGetKey","getKey","addOrUpdate","cover","__brushOption","newBrushInternal","endCreating","createCover","updateCoverAfterCreation","unmount","clearCovers","coverRenderers","coverRenderer","getCoverRenderer","updateCoverShape","updateCommon","getPanelByPoint","localCursorPoint","panels","panel","pn","isTargetByCursor","getPanelByCover","covers","originalLength","trigger$1","areas","isEnd","shouldShowCover","getTrackEnds","createBaseRectCover","rectRangeConverter","edgeNameSequences","makeStyle","driftRect","nameSequence","updateBaseRect","localRange","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection1","getGlobalDirection2","pointsToRect","clipByPanel","formatRectRange","getTransform$1","localDirName","inverseMap","localDirNameSeq","dirNameSequence","rectRange","toRectRange","localDelta","toLocalDelta","dirName","ind","fromRectRange","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","_creatingPanel","thisBrushOption","eventParams","determineBrushType","coverBrushOption","getCreatingRange","defaultBrushType","handleDragEnd","getLineRenderer","returnInput","localTrack","ends","xyIndex","getLinearBrushOtherExtent","IRRELEVANT_EXCLUDES","onIrrelevantElement","targetCoordSysModel","makeRectPanelClipPath","normalizeRect","localPoints","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","BrushTargetManager","_targetInfoList","foundCpts","parseFinder$1","targetInfoBuilders","include","setOutputRanges","matchOutputRanges","coordRange","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","setInputRanges","rangeOffset","getScales","makePanelOpts","getDefaultBrushType","getPanelRect","controlSeries","targetInfoList","areaPanelId","targetInfoMatchers","formatMinMax","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","panelRectBuilders","xAxisDeclared","yAxisDeclared","geoModels","geoModel","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","sizeOrigin","each$8","inner$f","newSnapshot","storedSnapshots","getStoreSnapshots","snapshot","clear$1","snapshots","SelectDataZoomModel","SelectDataZoomView","each$9","DATA_ZOOM_ID_BASE","DataZoomFeature","brushController","updateZoomBtnStatus","updateBackBtnStatus","handlers","eventParam","brushTargetManager","makeAxisFinder","setBatch","findDataZoom","minValueSpan","maxValueSpan","dzModel","nextActive","isZoomActive","dataZoomSelectActive","dzFeatureModel","xAxisId","yAxisId","zoomActive","dzOptions","finderResult","buildInternalOptions","axisIndexPropName","$fromToolbox","RestoreOption","DEFAULT_OPTION","inner$g","decalPaletteScope","ariaVisual","ariaModel","setDecal","decalModel","useDecal","paletteScopeGroupByType_1","decalScope","enableAriaDecal","dataAll_1","idxMap_1","decalScope_1","dataCount_1","paletteDecal","specifiedDecal","mergeDecal","resultDecal","labelLocale","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","seriesLabels_1","seriesCount","seriesLabel","getSeriesTypeName","partialLabel","displayCnt","dataLabels","dataLabel","middleSeparator_1","endSeparator_1","separatorModel","middleSeparator","endSeparator","keyValues","ariaPreprocessor","PRIORITY_VISUAL_ARIA$1","createElementNS","NONE","mathRound","mathSin$4","mathCos$4","PI$7","PI2$8","degree","EPSILON$4","round3","round4","isAroundZero$1","pathHasFill","pathHasStroke","svgEl","attrXLink","setAttributeNS","attrXML","bindStyle","strokeWidth","strokeScale_1","SVGPathRebuilder","_d","_str","firstCmd","dThetaPositive","isCircle","unifiedTheta","_invalid","generateStr","getStr","svgPath","__svgEl","pathVersion","elExt","svgPathBuilder","__svgPathBuilder","__svgPathVersion","svgImage","HTMLImageElement","__imageSrc","TEXT_ALIGN_TO_ANCHOR","adjustTextY$1","svgText","textSvgEl","textSvgElStyle","equals","newLen","editLength","maxEditLength","bestPath","newPos","oldPos","extractCommon","added","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","clonePath","pushComponent","buildValues","commonCount","componentPos","componentLen","arrayDiff","MARK_UNUSED","MARK_USED","Definable","zrId","tagNames","markLabel","domName","nextId","_domName","_zrId","_svgRoot","_tagNames","_markLabel","getDefs","isForceCreating","defs","getElementsByTagName","defs_1","contains","doUpdate","onUpdate","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","markDomUsed","markDomUnused","isDomUnused","removeUnused","getSvgProxy","getSvgElement","isLinearGradient","isRadialGradient","isGradient","GradientManager","addWithoutUpdate","that_1","__dom","markUsed","updateDom","stop_1","hex","isPattern","patternDomMap","PatternManager","patternDom","SVGElement","prevImage","imageSrc","HTMLCanvasElement","createdImage","generateClipPathsKey","hasClipPath","ClippathManager","_refGroups","_keyDuplicateCount","_getClipPathGroup","prevDisplayable","keyDuplicateCount","clipPathKey","clipGroup","clipPathEl","svgProxy","newRefGroupsMap","ShadowManager","_shadowDomMap","_shadowDomPool","_getFromPool","shadowDom","domChild","shadowKey","getShadowKey","_shadowDom","globalScale","stdDx","stdDy","stdDeviation","shadowDomsPool","parseInt10$1","checkParentAvailable","insertAfter","prevSibling","prepend","removeFromMyParent","SVGPainter","createMethodNotSupport","svgDom","bgRoot","_gradientManager","_patternManager","_clipPathManager","_shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","_backgroundNode","bgNode","tag","gradientManager","patternManager","clipPathManager","shadowManager","visibleList","listLen","newVisibleList","prevSvgElement","topPrevSvgElement","currentClipGroup","isAdd","_getDefs","viewportStyle","viewportNode","encodeURIComponent","outerHTML","innerDrawElementOnCanvas","util"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(console, args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function mergeAll(targetAndSources, overwrite) {\r\n var result = targetAndSources[0];\r\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\r\n result = merge(result, targetAndSources[i], overwrite);\r\n }\r\n return result;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function find(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n return arr[i];\r\n }\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function concatArray(a, b) {\r\n var newArray = new a.constructor(a.length + b.length);\r\n for (var i = 0; i < a.length; i++) {\r\n newArray[i] = a[i];\r\n }\r\n var offset = a.length;\r\n for (var i = 0; i < b.length; i++) {\r\n newArray[i + offset] = b[i];\r\n }\r\n return newArray;\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n var zrUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $override: $override,\n guid: guid,\n logError: logError,\n clone: clone,\n merge: merge,\n mergeAll: mergeAll,\n extend: extend,\n defaults: defaults,\n createCanvas: createCanvas,\n indexOf: indexOf,\n inherits: inherits,\n mixin: mixin,\n isArrayLike: isArrayLike,\n each: each,\n map: map,\n reduce: reduce,\n filter: filter,\n find: find,\n keys: keys,\n bind: bind,\n curry: curry,\n isArray: isArray,\n isFunction: isFunction,\n isString: isString,\n isStringSafe: isStringSafe,\n isNumber: isNumber,\n isObject: isObject,\n isBuiltInObject: isBuiltInObject,\n isTypedArray: isTypedArray,\n isDom: isDom,\n isGradientObject: isGradientObject,\n isPatternObject: isPatternObject,\n isRegExp: isRegExp,\n eqNaN: eqNaN,\n retrieve: retrieve,\n retrieve2: retrieve2,\n retrieve3: retrieve3,\n slice: slice,\n normalizeCssArray: normalizeCssArray,\n assert: assert,\n trim: trim,\n setAsPrimitive: setAsPrimitive,\n isPrimitive: isPrimitive,\n HashMap: HashMap,\n createHashMap: createHashMap,\n concatArray: concatArray,\n createObject: createObject,\n hasOwn: hasOwn,\n noop: noop\n });\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function set(out, a, b) {\r\n out[0] = a;\r\n out[1] = b;\r\n return out;\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n var length = len;\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n var lengthSquare = lenSquare;\r\n function mul(out, v1, v2) {\r\n out[0] = v1[0] * v2[0];\r\n out[1] = v1[1] * v2[1];\r\n return out;\r\n }\r\n function div(out, v1, v2) {\r\n out[0] = v1[0] / v2[0];\r\n out[1] = v1[1] / v2[1];\r\n return out;\r\n }\r\n function dot(v1, v2) {\r\n return v1[0] * v2[0] + v1[1] * v2[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function negate(out, v) {\r\n out[0] = -v[0];\r\n out[1] = -v[1];\r\n return out;\r\n }\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var vector = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create,\n copy: copy,\n clone: clone$1,\n set: set,\n add: add,\n scaleAndAdd: scaleAndAdd,\n sub: sub,\n len: len,\n length: length,\n lenSquare: lenSquare,\n lengthSquare: lengthSquare,\n mul: mul,\n div: div,\n dot: dot,\n scale: scale,\n normalize: normalize,\n distance: distance,\n dist: dist,\n distanceSquare: distanceSquare,\n distSquare: distSquare,\n negate: negate,\n lerp: lerp,\n applyTransform: applyTransform,\n min: min,\n max: max\n });\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n var _calcOut = [];\r\n function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\r\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\r\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\r\n }\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut$1 = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut$1, el, ex, ey)) {\r\n out.zrX = _calcOut$1[0];\r\n out.zrY = _calcOut$1[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\r\n function isMiddleOrRightButtonOnMouseUpDown(e) {\r\n return e.which === 2 || e.which === 3;\r\n }\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n var ignoreClip = false;\r\n while (el) {\r\n if (el.ignoreClip) {\r\n ignoreClip = true;\r\n }\r\n if (!ignoreClip) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul$1(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\r\n function clone$2(a) {\r\n var b = create$1();\r\n copy$1(b, a);\r\n return b;\r\n }\n\n var matrix = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create$1,\n identity: identity,\n copy: copy$1,\n mul: mul$1,\n translate: translate,\n rotate: rotate,\n scale: scale$1,\n invert: invert,\n clone: clone$2\n });\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul$1(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul$1(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul$1(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssAngle(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 360 ? 360 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function lerpNumber(a, b, p) {\r\n return a + (b - a) * p;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n var strLen = str.length;\r\n if (str.charAt(0) === '#') {\r\n if (strLen === 4 || strLen === 5) {\r\n var iv = parseInt(str.slice(1, 4), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (strLen === 7 || strLen === 9) {\r\n var iv = parseInt(str.slice(1, 7), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === strLen) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n return params.length === 3\r\n ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\r\n : setRgba(rgbaArr, 0, 0, 0, 1);\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function rgba2hsla(rgba) {\r\n if (!rgba) {\r\n return;\r\n }\r\n var R = rgba[0] / 255;\r\n var G = rgba[1] / 255;\r\n var B = rgba[2] / 255;\r\n var vMin = Math.min(R, G, B);\r\n var vMax = Math.max(R, G, B);\r\n var delta = vMax - vMin;\r\n var L = (vMax + vMin) / 2;\r\n var H;\r\n var S;\r\n if (delta === 0) {\r\n H = 0;\r\n S = 0;\r\n }\r\n else {\r\n if (L < 0.5) {\r\n S = delta / (vMax + vMin);\r\n }\r\n else {\r\n S = delta / (2 - vMax - vMin);\r\n }\r\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\r\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\r\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\r\n if (R === vMax) {\r\n H = deltaB - deltaG;\r\n }\r\n else if (G === vMax) {\r\n H = (1 / 3) + deltaR - deltaB;\r\n }\r\n else if (B === vMax) {\r\n H = (2 / 3) + deltaG - deltaR;\r\n }\r\n if (H < 0) {\r\n H += 1;\r\n }\r\n if (H > 1) {\r\n H -= 1;\r\n }\r\n }\r\n var hsla = [H * 360, S, L];\r\n if (rgba[3] != null) {\r\n hsla.push(rgba[3]);\r\n }\r\n return hsla;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function toHex(color) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\r\n }\r\n }\r\n function fastLerp(normalizedValue, colors, out) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n out = out || [];\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = colors[leftIndex];\r\n var rightColor = colors[rightIndex];\r\n var dv = value - leftIndex;\r\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\r\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\r\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\r\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\r\n return out;\r\n }\r\n var fastMapToColor = fastLerp;\r\n function lerp$1(normalizedValue, colors, fullOutput) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = parse(colors[leftIndex]);\r\n var rightColor = parse(colors[rightIndex]);\r\n var dv = value - leftIndex;\r\n var color = stringify([\r\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\r\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\r\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\r\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\r\n ], 'rgba');\r\n return fullOutput\r\n ? {\r\n color: color,\r\n leftIndex: leftIndex,\r\n rightIndex: rightIndex,\r\n value: value\r\n }\r\n : color;\r\n }\r\n var mapToColor = lerp$1;\r\n function modifyHSL(color, h, s, l) {\r\n var colorArr = parse(color);\r\n if (color) {\r\n colorArr = rgba2hsla(colorArr);\r\n h != null && (colorArr[0] = clampCssAngle(h));\r\n s != null && (colorArr[1] = parseCssFloat(s));\r\n l != null && (colorArr[2] = parseCssFloat(l));\r\n return stringify(hsla2rgba(colorArr), 'rgba');\r\n }\r\n }\r\n function modifyAlpha(color, alpha) {\r\n var colorArr = parse(color);\r\n if (colorArr && alpha != null) {\r\n colorArr[3] = clampCssFloat(alpha);\r\n return stringify(colorArr, 'rgba');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\r\n function random() {\r\n var r = Math.round(Math.random() * 255);\r\n var g = Math.round(Math.random() * 255);\r\n var b = Math.round(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\n\n var color = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse,\n lift: lift,\n toHex: toHex,\n fastLerp: fastLerp,\n fastMapToColor: fastMapToColor,\n lerp: lerp$1,\n mapToColor: mapToColor,\n modifyHSL: modifyHSL,\n modifyAlpha: modifyAlpha,\n stringify: stringify,\n lum: lum,\n random: random\n });\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n if (this._additiveTrack) {\r\n this._additiveTrack.setFinished();\r\n }\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.needsAnimate()\r\n && additiveTrack.needsAnimate()\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n var additiveValue = this._additiveValue;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop && additiveTo) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimators = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._setTracksFinished();\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n if (doneList) {\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n }\r\n };\r\n Animator.prototype._abortedCallback = function () {\r\n this._setTracksFinished();\r\n var animation = this.animation;\r\n var abortedList = this._abortedList;\r\n if (animation) {\r\n animation.removeClip(this._clip);\r\n }\r\n this._clip = null;\r\n if (abortedList) {\r\n for (var i = 0; i < abortedList.length; i++) {\r\n abortedList[i].call(this);\r\n }\r\n }\r\n };\r\n Animator.prototype._setTracksFinished = function () {\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n tracks[tracksKeys[i]].setFinished();\r\n }\r\n };\r\n Animator.prototype._getAdditiveTrack = function (trackName) {\r\n var additiveTrack;\r\n var additiveAnimators = this._additiveAnimators;\r\n if (additiveAnimators) {\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n var track = additiveAnimators[i].getTrack(trackName);\r\n if (track) {\r\n additiveTrack = track;\r\n }\r\n }\r\n }\r\n return additiveTrack;\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n var additiveAnimators = self._additiveAnimators;\r\n if (additiveAnimators) {\r\n var stillHasAdditiveAnimator = false;\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n if (additiveAnimators[i]._clip) {\r\n stillHasAdditiveAnimator = true;\r\n break;\r\n }\r\n }\r\n if (!stillHasAdditiveAnimator) {\r\n self._additiveAnimators = null;\r\n }\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n var onframeList = self._onframeList;\r\n if (onframeList) {\r\n for (var i = 0; i < onframeList.length; i++) {\r\n onframeList[i](self._target, percent);\r\n }\r\n }\r\n },\r\n ondestroy: function () {\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n this._abortedCallback();\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.during = function (cb) {\r\n if (cb) {\r\n if (!this._onframeList) {\r\n this._onframeList = [];\r\n }\r\n this._onframeList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n if (!this._doneList) {\r\n this._doneList = [];\r\n }\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.aborted = function (cb) {\r\n if (cb) {\r\n if (!this._abortedList) {\r\n this._abortedList = [];\r\n }\r\n this._abortedList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted) {\r\n this._abortedCallback();\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0 && isFinite(width)) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0 && isFinite(height)) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n if (isFinite(this.x) && isFinite(this.width)) {\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n }\r\n else {\r\n this.width = other.width;\r\n }\r\n if (isFinite(this.y) && isFinite(this.height)) {\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n }\r\n else {\r\n this.height = other.height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.prototype.isFinite = function () {\r\n return isFinite(this.x)\r\n && isFinite(this.y)\r\n && isFinite(this.width)\r\n && isFinite(this.height);\r\n };\r\n BoundingRect.prototype.isZero = function () {\r\n return this.width === 0 || this.height === 0;\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio\r\n || (window.screen.deviceXDPI / window.screen.logicalXDPI)\r\n || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n if (this.__dirty) {\r\n this.updateInnerText();\r\n }\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n var isDark = this.__zr.isDarkMode();\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function (noAnimation) {\r\n this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states, noAnimation) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n zr && zr.wakeUp();\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.prototype.getPaintRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.ignoreClip = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var finishCount = animators.length;\r\n var doneHappened = false;\r\n var cfgDone = cfg.done;\r\n var cfgAborted = cfg.aborted;\r\n var doneCb = function () {\r\n doneHappened = true;\r\n finishCount--;\r\n if (finishCount <= 0) {\r\n doneHappened\r\n ? (cfgDone && cfgDone())\r\n : (cfgAborted && cfgAborted());\r\n }\r\n };\r\n var abortedCb = function () {\r\n finishCount--;\r\n if (finishCount <= 0) {\r\n doneHappened\r\n ? (cfgDone && cfgDone())\r\n : (cfgAborted && cfgAborted());\r\n }\r\n };\r\n if (!finishCount) {\r\n cfgDone && cfgDone();\r\n }\r\n if (animators.length > 0 && cfg.during) {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n var animator = animators[i];\r\n if (doneCb) {\r\n animator.done(doneCb);\r\n }\r\n if (abortedCb) {\r\n animator.aborted(abortedCb);\r\n }\r\n animator.start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n if (isTypedArray(source[key])) {\r\n var len = source[key].length;\r\n if (target[key].length !== len) {\r\n target[key] = new (source[key].constructor)(len);\r\n copyArrShallow(target[key], source[key], len);\r\n }\r\n }\r\n else {\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0\r\n || (cfg.force && !animators.length)) {\r\n var existsAnimators = animatable.animators;\r\n var existsAnimatorsOnSameTarget = [];\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n existsAnimatorsOnSameTarget.push(existsAnimators[i]);\r\n }\r\n }\r\n if (!additive && existsAnimatorsOnSameTarget.length) {\r\n for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\r\n var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n el.update();\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (el.ignoreClip) {\r\n clipPaths = null;\r\n }\r\n else if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.__dirty |= Element.REDARAW_BIT;\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var decalEl = el.getDecalElement && el.getDecalElement();\r\n if (decalEl) {\r\n this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n requestAnimationFrame = (typeof window !== 'undefined'\r\n && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame)) || function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n if (!notTriggerFrameAndStageUpdate) {\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n this.stage.update && this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n this.start();\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n if (event.target !== this.dom) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this._localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this._globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this._globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\r\n var m = this.transform;\r\n if (this.ignore\r\n || this.invisible\r\n || this.style.opacity === 0\r\n || (this.culling\r\n && isDisplayableCulled(this, viewWidth, viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n return false;\r\n }\r\n if (considerClipPath && this.__clipPaths) {\r\n for (var i = 0; i < this.__clipPaths.length; ++i) {\r\n if (this.__clipPaths[i].isZeroArea()) {\r\n return false;\r\n }\r\n }\r\n }\r\n if (considerAncestors && this.parent) {\r\n var parent_1 = this.parent;\r\n while (parent_1) {\r\n if (parent_1.ignore) {\r\n return false;\r\n }\r\n parent_1 = parent_1.parent;\r\n }\r\n }\r\n return true;\r\n };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.getPaintRect = function () {\r\n var rect = this._paintRect;\r\n if (!this._paintRect || this.__dirty) {\r\n var transform = this.transform;\r\n var elRect = this.getBoundingRect();\r\n var style = this.style;\r\n var shadowSize = style.shadowBlur || 0;\r\n var shadowOffsetX = style.shadowOffsetX || 0;\r\n var shadowOffsetY = style.shadowOffsetY || 0;\r\n rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\r\n if (transform) {\r\n BoundingRect.applyTransform(rect, elRect, transform);\r\n }\r\n else {\r\n rect.copy(elRect);\r\n }\r\n if (shadowSize || shadowOffsetX || shadowOffsetY) {\r\n rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\r\n rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\r\n rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\r\n rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\r\n }\r\n var tolerance = this.dirtyRectTolerance;\r\n if (!rect.isZero()) {\r\n rect.x = Math.floor(rect.x - tolerance);\r\n rect.y = Math.floor(rect.y - tolerance);\r\n rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\r\n rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\r\n }\r\n }\r\n return rect;\r\n };\r\n Displayable.prototype.setPrevPaintRect = function (paintRect) {\r\n if (paintRect) {\r\n this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\r\n this._prevPaintRect.copy(paintRect);\r\n }\r\n else {\r\n this._prevPaintRect = null;\r\n }\r\n };\r\n Displayable.prototype.getPrevPaintRect = function () {\r\n return this._prevPaintRect;\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this.getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.dirtyRectTolerance = 0;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var tmpAngles = [];\r\n function modPI2(radian) {\r\n var n = Math.round(radian / PI * 1e8) / 1e8;\r\n return (n % 2) * PI;\r\n }\r\n function normalizeArcAngles(angles, anticlockwise) {\r\n var newStartAngle = modPI2(angles[0]);\r\n if (newStartAngle < 0) {\r\n newStartAngle += PI2$1;\r\n }\r\n var delta = newStartAngle - angles[0];\r\n var newEndAngle = angles[1];\r\n newEndAngle += delta;\r\n if (!anticlockwise && newEndAngle - newStartAngle >= PI2$1) {\r\n newEndAngle = newStartAngle + PI2$1;\r\n }\r\n else if (anticlockwise && newStartAngle - newEndAngle >= PI2$1) {\r\n newEndAngle = newStartAngle - PI2$1;\r\n }\r\n else if (!anticlockwise && newStartAngle > newEndAngle) {\r\n newEndAngle = newStartAngle +\r\n (PI2$1 - modPI2(newStartAngle - newEndAngle));\r\n }\r\n else if (anticlockwise && newStartAngle < newEndAngle) {\r\n newEndAngle = newStartAngle -\r\n (PI2$1 - modPI2(newEndAngle - newStartAngle));\r\n }\r\n angles[0] = newStartAngle;\r\n angles[1] = newEndAngle;\r\n }\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._version = 0;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.increaseVersion = function () {\r\n this._version++;\r\n };\r\n PathProxy.prototype.getVersion = function () {\r\n return this._version;\r\n };\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n this._version++;\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n tmpAngles[0] = startAngle;\r\n tmpAngles[1] = endAngle;\r\n normalizeArcAngles(tmpAngles, anticlockwise);\r\n startAngle = tmpAngles[0];\r\n endAngle = tmpAngles[1];\r\n var delta = endAngle - startAngle;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < this._len;) {\r\n var cmd = data[i++];\r\n var isFirst = i === 1;\r\n if (isFirst) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (isFirst) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n var isFirst = i === 1;\r\n if (isFirst) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (isFirst) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n var isFirst = i === 1;\r\n if (isFirst) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse && ctx.ellipse) {\r\n ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (isFirst) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta >= PI2$4 - 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (startAngle > endAngle) {\r\n var tmp_1 = startAngle;\r\n startAngle = endAngle;\r\n endAngle = tmp_1;\r\n }\r\n if (startAngle < 0) {\r\n startAngle += PI2$4;\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(path, lineWidth, isStroke, x, y) {\r\n var data = path.data;\r\n var len = path.len();\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n var isFirst = i === 1;\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (isFirst) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (!isFirst) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathProxy, x, y) {\r\n return containPath(pathProxy, 0, false, x, y);\r\n }\r\n function containStroke$4(pathProxy, lineWidth, x, y) {\r\n return containPath(pathProxy, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var pathCopyParams = [\r\n 'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\r\n 'culling', 'z', 'z2', 'zlevel', 'parent'\r\n ];\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype.update = function () {\r\n var _this = this;\r\n _super.prototype.update.call(this);\r\n var style = this.style;\r\n if (style.decal) {\r\n var decalEl = this._decalEl\r\n = this._decalEl || new Path();\r\n if (decalEl.buildPath === Path.prototype.buildPath) {\r\n decalEl.buildPath = function (ctx) {\r\n _this.buildPath(ctx, _this.shape);\r\n };\r\n }\r\n decalEl.silent = true;\r\n var decalElStyle = decalEl.style;\r\n for (var key in style) {\r\n if (decalElStyle[key] !== style[key]) {\r\n decalElStyle[key] = style[key];\r\n }\r\n }\r\n decalElStyle.fill = style.fill ? style.decal : null;\r\n decalElStyle.decal = null;\r\n decalElStyle.shadowColor = null;\r\n style.strokeFirst && (decalElStyle.stroke = null);\r\n for (var i = 0; i < pathCopyParams.length; ++i) {\r\n decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\r\n }\r\n decalEl.__dirty |= Element.REDARAW_BIT;\r\n }\r\n else if (this._decalEl) {\r\n this._decalEl = null;\r\n }\r\n };\r\n Path.prototype.getDecalElement = function () {\r\n return this._decalEl;\r\n };\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.5) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke() && this.path && this.path.len() > 0) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n var strokeContainThreshold = this.strokeContainThreshold;\r\n w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathProxy = this.path;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathProxy, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathProxy, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n if (this._decalEl) {\r\n this._decalEl.dirtyShape();\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath(path, m) {\r\n var data = path.data;\r\n var len = path.len();\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < len;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n path.increaseVersion();\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\r\n function extendFromString(str, defaultOpts) {\r\n var innerOpts = createPathOptions(str, defaultOpts);\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.applyTransform = innerOpts.applyTransform;\r\n _this.buildPath = innerOpts.buildPath;\r\n return _this;\r\n }\r\n return Sub;\r\n }(SVGPath));\r\n return Sub;\r\n }\r\n function mergePath(pathEls, opts) {\r\n var pathList = [];\r\n var len = pathEls.length;\r\n for (var i = 0; i < len; i++) {\r\n var pathEl = pathEls[i];\r\n if (!pathEl.path) {\r\n pathEl.createPathProxy();\r\n }\r\n if (pathEl.shapeChanged()) {\r\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\r\n }\r\n pathList.push(pathEl.path);\r\n }\r\n var pathBundle = new Path(opts);\r\n pathBundle.createPathProxy();\r\n pathBundle.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.appendPath(pathList);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n };\r\n return pathBundle;\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n function isImageLike(source) {\r\n return !!(source\r\n && typeof source !== 'string'\r\n && source.width && source.height);\r\n }\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getSize = function (dim) {\r\n var style = this.style;\r\n var size = style[dim];\r\n if (size != null) {\r\n return size;\r\n }\r\n var imageSource = isImageLike(style.image)\r\n ? style.image : this.__image;\r\n if (!imageSource) {\r\n return 0;\r\n }\r\n var otherDim = dim === 'width' ? 'height' : 'width';\r\n var otherDimSize = style[otherDim];\r\n if (otherDimSize == null) {\r\n return imageSource[dim];\r\n }\r\n else {\r\n return imageSource[dim] / imageSource[otherDim] * otherDimSize;\r\n }\r\n };\r\n ZRImage.prototype.getWidth = function () {\r\n return this._getSize('width');\r\n };\r\n ZRImage.prototype.getHeight = function () {\r\n return this._getSize('height');\r\n };\r\n ZRImage.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline(points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier(points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top',\r\n miterLimit: 2\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n TSpan.initDefaultProps = (function () {\r\n var tspanProto = TSpan.prototype;\r\n tspanProto.dirtyRectTolerance = 10;\r\n })();\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n function parseXML(svg) {\r\n if (isString(svg)) {\r\n var parser = new DOMParser();\r\n svg = parser.parseFromString(svg, 'text/xml');\r\n }\r\n var svgNode = svg;\r\n if (svgNode.nodeType === 9) {\r\n svgNode = svgNode.firstChild;\r\n }\r\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\r\n svgNode = svgNode.nextSibling;\r\n }\r\n return svgNode;\r\n }\n\n var PI$2 = Math.PI;\r\n var PI2$5 = PI$2 * 2;\r\n var mathSin$3 = Math.sin;\r\n var mathCos$3 = Math.cos;\r\n var mathACos = Math.acos;\r\n var mathATan2 = Math.atan2;\r\n var mathAbs$1 = Math.abs;\r\n var mathSqrt$4 = Math.sqrt;\r\n var mathMax$3 = Math.max;\r\n var mathMin$3 = Math.min;\r\n var e = 1e-4;\r\n function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\r\n var x10 = x1 - x0;\r\n var y10 = y1 - y0;\r\n var x32 = x3 - x2;\r\n var y32 = y3 - y2;\r\n var t = y32 * x10 - x32 * y10;\r\n if (t * t < e) {\r\n return;\r\n }\r\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\r\n return [x0 + t * x10, y0 + t * y10];\r\n }\r\n function computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\r\n var x01 = x0 - x1;\r\n var y01 = y0 - y1;\r\n var lo = (clockwise ? cr : -cr) / mathSqrt$4(x01 * x01 + y01 * y01);\r\n var ox = lo * y01;\r\n var oy = -lo * x01;\r\n var x11 = x0 + ox;\r\n var y11 = y0 + oy;\r\n var x10 = x1 + ox;\r\n var y10 = y1 + oy;\r\n var x00 = (x11 + x10) / 2;\r\n var y00 = (y11 + y10) / 2;\r\n var dx = x10 - x11;\r\n var dy = y10 - y11;\r\n var d2 = dx * dx + dy * dy;\r\n var r = radius - cr;\r\n var s = x11 * y10 - x10 * y11;\r\n var d = (dy < 0 ? -1 : 1) * mathSqrt$4(mathMax$3(0, r * r * d2 - s * s));\r\n var cx0 = (s * dy - dx * d) / d2;\r\n var cy0 = (-s * dx - dy * d) / d2;\r\n var cx1 = (s * dy + dx * d) / d2;\r\n var cy1 = (-s * dx + dy * d) / d2;\r\n var dx0 = cx0 - x00;\r\n var dy0 = cy0 - y00;\r\n var dx1 = cx1 - x00;\r\n var dy1 = cy1 - y00;\r\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\r\n cx0 = cx1;\r\n cy0 = cy1;\r\n }\r\n return {\r\n cx: cx0,\r\n cy: cy0,\r\n x01: -ox,\r\n y01: -oy,\r\n x11: cx0 * (radius / r - 1),\r\n y11: cy0 * (radius / r - 1)\r\n };\r\n }\r\n function buildPath$2(ctx, shape) {\r\n var radius = mathMax$3(shape.r, 0);\r\n var innerRadius = mathMax$3(shape.r0 || 0, 0);\r\n var hasRadius = radius > 0;\r\n var hasInnerRadius = innerRadius > 0;\r\n if (!hasRadius && !hasInnerRadius) {\r\n return;\r\n }\r\n if (!hasRadius) {\r\n radius = innerRadius;\r\n innerRadius = 0;\r\n }\r\n if (innerRadius > radius) {\r\n var tmp = radius;\r\n radius = innerRadius;\r\n innerRadius = tmp;\r\n }\r\n var clockwise = !!shape.clockwise;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var tmpAngles = [startAngle, endAngle];\r\n normalizeArcAngles(tmpAngles, !clockwise);\r\n var arc = mathAbs$1(tmpAngles[0] - tmpAngles[1]);\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var cornerRadius = shape.cornerRadius || 0;\r\n var innerCornerRadius = shape.innerCornerRadius || 0;\r\n if (!(radius > e)) {\r\n ctx.moveTo(x, y);\r\n }\r\n else if (arc > PI2$5 - e) {\r\n ctx.moveTo(x + radius * mathCos$3(startAngle), y + radius * mathSin$3(startAngle));\r\n ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\r\n if (innerRadius > e) {\r\n ctx.moveTo(x + innerRadius * mathCos$3(endAngle), y + innerRadius * mathSin$3(endAngle));\r\n ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\r\n }\r\n }\r\n else {\r\n var halfRd = mathAbs$1(radius - innerRadius) / 2;\r\n var cr = mathMin$3(halfRd, cornerRadius);\r\n var icr = mathMin$3(halfRd, innerCornerRadius);\r\n var cr0 = icr;\r\n var cr1 = cr;\r\n var xrs = radius * mathCos$3(startAngle);\r\n var yrs = radius * mathSin$3(startAngle);\r\n var xire = innerRadius * mathCos$3(endAngle);\r\n var yire = innerRadius * mathSin$3(endAngle);\r\n var xre = void 0;\r\n var yre = void 0;\r\n var xirs = void 0;\r\n var yirs = void 0;\r\n if (cr > e || icr > e) {\r\n xre = radius * mathCos$3(endAngle);\r\n yre = radius * mathSin$3(endAngle);\r\n xirs = innerRadius * mathCos$3(startAngle);\r\n yirs = innerRadius * mathSin$3(startAngle);\r\n if (arc < PI$2) {\r\n var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\r\n if (it_1) {\r\n var x0 = xrs - it_1[0];\r\n var y0 = yrs - it_1[1];\r\n var x1 = xre - it_1[0];\r\n var y1 = yre - it_1[1];\r\n var a = 1 / mathSin$3(mathACos((x0 * x1 + y0 * y1) / (mathSqrt$4(x0 * x0 + y0 * y0) * mathSqrt$4(x1 * x1 + y1 * y1))) / 2);\r\n var b = mathSqrt$4(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\r\n cr0 = mathMin$3(icr, (innerRadius - b) / (a - 1));\r\n cr1 = mathMin$3(cr, (radius - b) / (a + 1));\r\n }\r\n }\r\n }\r\n if (!(arc > e)) {\r\n ctx.moveTo(x + xrs, y + yrs);\r\n }\r\n else if (cr1 > e) {\r\n var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\r\n var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\r\n ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\r\n if (cr1 < cr) {\r\n ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\r\n }\r\n else {\r\n ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\r\n ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\r\n ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\r\n }\r\n }\r\n else {\r\n ctx.moveTo(x + xrs, y + yrs);\r\n ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\r\n }\r\n if (!(innerRadius > e) || !(arc > e)) {\r\n ctx.lineTo(x + xire, y + yire);\r\n }\r\n else if (cr0 > e) {\r\n var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\r\n var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\r\n ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\r\n if (cr0 < icr) {\r\n ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\r\n }\r\n else {\r\n ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\r\n ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\r\n ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\r\n }\r\n }\r\n else {\r\n ctx.lineTo(x + xire, y + yire);\r\n ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\r\n }\r\n }\r\n ctx.closePath();\r\n }\n\n var SectorShape = (function () {\r\n function SectorShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n this.cornerRadius = 0;\r\n this.innerCornerRadius = 0;\r\n }\r\n return SectorShape;\r\n }());\r\n var Sector = (function (_super) {\r\n __extends(Sector, _super);\r\n function Sector(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Sector.prototype.getDefaultShape = function () {\r\n return new SectorShape();\r\n };\r\n Sector.prototype.buildPath = function (ctx, shape) {\r\n buildPath$2(ctx, shape);\r\n };\r\n Sector.prototype.isZeroArea = function () {\r\n return this.shape.startAngle === this.shape.endAngle\r\n || this.shape.r === this.shape.r0;\r\n };\r\n return Sector;\r\n }(Path));\r\n Sector.prototype.type = 'sector';\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n function finishLine(line, lineWidth, lineHeight) {\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.innerHeight = tokenHeight;\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n finishLine(line, lineWidth, lineHeight);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n finishLine(line, lineWidth, lineHeight);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n rectEl.strokeContainThreshold = 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var commonStyle = (rectEl || imgEl).style;\r\n commonStyle.shadowBlur = style.shadowBlur || 0;\r\n commonStyle.shadowColor = style.shadowColor || 'transparent';\r\n commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$3 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var PI$4 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$4 / n) / cos$2(PI$4 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$4 / n;\r\n var deg = -PI$4 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n var instances = {};\r\n function delInstance(id) {\r\n delete instances[id];\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n var _this = this;\r\n this._sleepAfterStill = 10;\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n opts.useDirtyRect = opts.useDirtyRect == null\r\n ? false\r\n : opts.useDirtyRect;\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: function () { return _this._flush(true); }\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n if (!el) {\r\n return;\r\n }\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n if (!el) {\r\n return;\r\n }\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this.refresh();\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this.refresh();\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update(true);\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n this._flush(false);\r\n };\r\n ZRender.prototype._flush = function (fromInside) {\r\n var triggerRendered;\r\n var start = new Date().getTime();\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(fromInside);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n var end = new Date().getTime();\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered', {\r\n elapsedTime: end - start\r\n });\r\n }\r\n else if (this._sleepAfterStill > 0) {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > this._sleepAfterStill) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\r\n this._sleepAfterStill = stillFramesCount;\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n instances[zr.id] = zr;\r\n return zr;\r\n }\r\n function dispose(zr) {\r\n zr.dispose();\r\n }\r\n function disposeAll() {\r\n for (var key in instances) {\r\n if (instances.hasOwnProperty(key)) {\r\n instances[key].dispose();\r\n }\r\n }\r\n instances = {};\r\n }\r\n function getInstance(id) {\r\n return instances[id];\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\r\n var version = '5.0.1';\n\n var zrender = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init,\n dispose: dispose,\n disposeAll: disposeAll,\n getInstance: getInstance,\n registerPainter: registerPainter,\n version: version\n });\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function asc(arr) {\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n return arr;\r\n }\r\n function getPrecision(val) {\r\n val = +val;\r\n if (isNaN(val)) {\r\n return 0;\r\n }\r\n var e = 1;\r\n var count = 0;\r\n while (Math.round(val * e) / e !== val) {\r\n e *= 10;\r\n count++;\r\n }\r\n return count;\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n var MAX_SAFE_INTEGER = 9007199254740991;\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function quantile(ascArr, p) {\r\n var H = (ascArr.length - 1) * p + 1;\r\n var h = Math.floor(H);\r\n var v = +ascArr[h - 1];\r\n var e = H - h;\r\n return e ? v + e * (ascArr[h] - v) : v;\r\n }\r\n function reformIntervals(list) {\r\n list.sort(function (a, b) {\r\n return littleThan(a, b, 0) ? -1 : 1;\r\n });\r\n var curr = -Infinity;\r\n var currClose = 1;\r\n for (var i = 0; i < list.length;) {\r\n var interval = list[i].interval;\r\n var close_1 = list[i].close;\r\n for (var lg = 0; lg < 2; lg++) {\r\n if (interval[lg] <= curr) {\r\n interval[lg] = curr;\r\n close_1[lg] = (!lg ? 1 - currClose : 1);\r\n }\r\n curr = interval[lg];\r\n currClose = close_1[lg];\r\n }\r\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\r\n list.splice(i, 1);\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return list;\r\n function littleThan(a, b, lg) {\r\n return a.interval[lg] < b.interval[lg]\r\n || (a.interval[lg] === b.interval[lg]\r\n && ((a.close[lg] - b.close[lg] === (!lg ? 1 : -1))\r\n || (!lg && littleThan(a, b, 1))));\r\n }\r\n }\r\n function numericToNumber(val) {\r\n var valFloat = parseFloat(val);\r\n return (valFloat == val\r\n && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0)) ? valFloat : NaN;\r\n }\r\n function isNumeric(val) {\r\n return !isNaN(numericToNumber(val));\r\n }\r\n function getRandomIdBase() {\r\n return Math.round(Math.random() * 9);\r\n }\r\n function getGreatestCommonDividor(a, b) {\r\n if (b === 0) {\r\n return a;\r\n }\r\n return getGreatestCommonDividor(b, a % b);\r\n }\r\n function getLeastCommonMultiple(a, b) {\r\n if (a == null) {\r\n return b;\r\n }\r\n if (b == null) {\r\n return a;\r\n }\r\n return a * b / getGreatestCommonDividor(a, b);\r\n }\n\n var numberUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n linearMap: linearMap,\n parsePercent: parsePercent$2,\n round: round$1,\n asc: asc,\n getPrecision: getPrecision,\n getPrecisionSafe: getPrecisionSafe,\n getPixelPrecision: getPixelPrecision,\n getPercentWithPrecision: getPercentWithPrecision,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,\n remRadian: remRadian,\n isRadianAroundZero: isRadianAroundZero,\n parseDate: parseDate,\n quantity: quantity,\n quantityExponent: quantityExponent,\n nice: nice,\n quantile: quantile,\n reformIntervals: reformIntervals,\n numericToNumber: numericToNumber,\n isNumeric: isNumeric,\n getRandomIdBase: getRandomIdBase,\n getGreatestCommonDividor: getGreatestCommonDividor,\n getLeastCommonMultiple: getLeastCommonMultiple\n });\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function error(str) {\r\n if (hasConsole) {\r\n console.error(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n var makePrintableStringIfPossible_1 = function (val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : null;\r\n };\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else {\r\n var printableStr = makePrintableStringIfPossible_1(arg);\r\n if (printableStr != null) {\r\n return printableStr;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n var printableStr = makePrintableStringIfPossible_1(val);\r\n return printableStr == null ? val : printableStr;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\r\n function throwError(msg) {\r\n throw new Error(msg);\r\n }\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n if (__DEV__) {\r\n if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\r\n warnInvalidateIdOrName(cmptOption.id);\r\n }\r\n if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\r\n warnInvalidateIdOrName(cmptOption.name);\r\n }\r\n }\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n var nextIdx = 0;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = convertOptionIdName(obj1[attr], null);\r\n var key2 = convertOptionIdName(obj2[attr], null);\r\n return key1 != null && key2 != null && key1 === key2;\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return convertOptionIdName(val, '');\r\n }\r\n function convertOptionIdName(idOrName, defaultValue) {\r\n if (idOrName == null) {\r\n return defaultValue;\r\n }\r\n var type = typeof idOrName;\r\n return type === 'string'\r\n ? idOrName\r\n : (type === 'number' || isStringSafe(idOrName))\r\n ? idOrName + ''\r\n : defaultValue;\r\n }\r\n function warnInvalidateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function makeInternalComponentId(idSuffix) {\r\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = getRandomIdBase();\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n var mainTypeSpecified = false;\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n mainTypeSpecified = mainTypeSpecified || !!mainType;\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n if (!mainTypeSpecified && defaultMainType) {\r\n queryOptionMap.set(defaultMainType, {});\r\n }\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: defaultMainType === mainType,\r\n enableAll: (opt && opt.enableAll != null) ? opt.enableAll : true,\r\n enableNone: (opt && opt.enableNone != null) ? opt.enableNone : true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n var MULTIPLE_REFERRING = { useDefault: false, enableAll: true, enableNone: true };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n opt = opt || SINGLE_REFERRING;\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\r\n function getTooltipRenderMode(renderModeOption) {\r\n if (renderModeOption === 'auto') {\r\n return env.domSupported ? 'html' : 'richText';\r\n }\r\n else {\r\n return renderModeOption || 'html';\r\n }\r\n }\r\n function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\r\n var isAutoPrecision = precision == null || precision === 'auto';\r\n if (targetValue == null) {\r\n return targetValue;\r\n }\r\n if (typeof targetValue === 'number') {\r\n var value = interpolateNumber(sourceValue || 0, targetValue, percent);\r\n return round$1(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue))\r\n : precision);\r\n }\r\n else if (typeof targetValue === 'string') {\r\n return percent < 1 ? sourceValue : targetValue;\r\n }\r\n else {\r\n var interpolated = [];\r\n var leftArr = sourceValue || [];\r\n var rightArr = targetValue;\r\n var length_1 = Math.max(leftArr.length, rightArr.length);\r\n for (var i = 0; i < length_1; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = (percent < 1 ? leftArr : rightArr)[i];\r\n }\r\n else {\r\n var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\r\n var rightVal = rightArr[i];\r\n var value = leftArr == null\r\n ? targetValue[i]\r\n : interpolateNumber(leftVal, rightVal, percent);\r\n interpolated[i] = round$1(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal))\r\n : precision);\r\n }\r\n }\r\n return interpolated;\r\n }\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper(properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color$1) {\r\n if (typeof color$1 !== 'string') {\r\n return color$1;\r\n }\r\n var liftedColor = liftedColorCache.get(color$1);\r\n if (!liftedColor) {\r\n liftedColor = lift(color$1, -0.1);\r\n liftedColorCache.put(color$1, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n if (el.hoverState === HOVER_STATE_EMPHASIS) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n if (el.hoverState === HOVER_STATE_BLUR) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(api) {\r\n var model = api.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? api.getViewOfSeriesModel(componentModel)\r\n : api.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\r\n var ecModel = api.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(api);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = api.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = api.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, api) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n var ecData = getECData(el);\r\n if (focus != null) {\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n else if (ecData.focus) {\r\n ecData.focus = null;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var defaultStyleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getter) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var mathMax$4 = Math.max;\r\n var mathMin$4 = Math.min;\r\n var _customShapeMap = {};\r\n function extendShape(opts) {\r\n return Path.extend(opts);\r\n }\r\n var extendPathFromString = extendFromString;\r\n function extendPath(pathData, opts) {\r\n return extendPathFromString(pathData, opts);\r\n }\r\n function registerShape(name, ShapeClass) {\r\n _customShapeMap[name] = ShapeClass;\r\n }\r\n function getShapeClass(name) {\r\n if (_customShapeMap.hasOwnProperty(name)) {\r\n return _customShapeMap[name];\r\n }\r\n }\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n var mergePath$1 = mergePath;\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function subPixelOptimizeLine$1(param) {\r\n subPixelOptimizeLine(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n function subPixelOptimizeRect$1(param) {\r\n subPixelOptimizeRect(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n var subPixelOptimize$1 = subPixelOptimize;\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n var removeOpt;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n removeOpt = dataIndex.removeOpt;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n removeOpt = removeOpt || {};\r\n duration = retrieve2(removeOpt.duration, 200);\r\n animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n }\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(),\r\n !isFrom && el.attr(props),\r\n cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n during && during(1);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function getTransform(target, ancestor) {\r\n var mat = identity([]);\r\n while (target && target !== ancestor) {\r\n mul$1(mat, target.getLocalTransform(), mat);\r\n target = target.parent;\r\n }\r\n return mat;\r\n }\r\n function applyTransform$1(target, transform, invert$1) {\r\n if (transform && !isArrayLike(transform)) {\r\n transform = Transformable.getLocalTransform(transform);\r\n }\r\n if (invert$1) {\r\n transform = invert([], transform);\r\n }\r\n return applyTransform([], target, transform);\r\n }\r\n function transformDirection(direction, transform, invert) {\r\n var hBase = (transform[4] === 0 || transform[5] === 0 || transform[0] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[0]);\r\n var vBase = (transform[4] === 0 || transform[5] === 0 || transform[2] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[2]);\r\n var vertex = [\r\n direction === 'left' ? -hBase : direction === 'right' ? hBase : 0,\r\n direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0\r\n ];\r\n vertex = applyTransform$1(vertex, transform, invert);\r\n return Math.abs(vertex[0]) > Math.abs(vertex[1])\r\n ? (vertex[0] > 0 ? 'right' : 'left')\r\n : (vertex[1] > 0 ? 'bottom' : 'top');\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\r\n function clipPointsByRect(points, rect) {\r\n return map(points, function (point) {\r\n var x = point[0];\r\n x = mathMax$4(x, rect.x);\r\n x = mathMin$4(x, rect.x + rect.width);\r\n var y = point[1];\r\n y = mathMax$4(y, rect.y);\r\n y = mathMin$4(y, rect.y + rect.height);\r\n return [x, y];\r\n });\r\n }\r\n function clipRectByRect(targetRect, rect) {\r\n var x = mathMax$4(targetRect.x, rect.x);\r\n var x2 = mathMin$4(targetRect.x + targetRect.width, rect.x + rect.width);\r\n var y = mathMax$4(targetRect.y, rect.y);\r\n var y2 = mathMin$4(targetRect.y + targetRect.height, rect.y + rect.height);\r\n if (x2 >= x && y2 >= y) {\r\n return {\r\n x: x,\r\n y: y,\r\n width: x2 - x,\r\n height: y2 - y\r\n };\r\n }\r\n }\r\n function createIcon(iconStr, opt, rect) {\r\n var innerOpts = extend({ rectHover: true }, opt);\r\n var style = innerOpts.style = { strokeNoScale: true };\r\n rect = rect || { x: -1, y: -1, width: 2, height: 2 };\r\n if (iconStr) {\r\n return iconStr.indexOf('image://') === 0\r\n ? (style.image = iconStr.slice(8),\r\n defaults(style, rect),\r\n new ZRImage(innerOpts))\r\n : (makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center'));\r\n }\r\n }\r\n function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\r\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\r\n var p = points[i];\r\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\r\n return true;\r\n }\r\n p2 = p;\r\n }\r\n }\r\n function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\r\n var mx = a2x - a1x;\r\n var my = a2y - a1y;\r\n var nx = b2x - b1x;\r\n var ny = b2y - b1y;\r\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\r\n if (nearZero(nmCrossProduct)) {\r\n return false;\r\n }\r\n var b1a1x = a1x - b1x;\r\n var b1a1y = a1y - b1y;\r\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\r\n if (q < 0 || q > 1) {\r\n return false;\r\n }\r\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\r\n if (p < 0 || p > 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function crossProduct2d(x1, y1, x2, y2) {\r\n return x1 * y2 - x2 * y1;\r\n }\r\n function nearZero(val) {\r\n return val <= (1e-6) && val >= -(1e-6);\r\n }\r\n registerShape('circle', Circle);\r\n registerShape('ellipse', Ellipse);\r\n registerShape('sector', Sector);\r\n registerShape('ring', Ring);\r\n registerShape('polygon', Polygon);\r\n registerShape('polyline', Polyline);\r\n registerShape('rect', Rect);\r\n registerShape('line', Line);\r\n registerShape('bezierCurve', BezierCurve);\r\n registerShape('arc', Arc);\n\n var graphic = /*#__PURE__*/Object.freeze({\n __proto__: null,\n extendShape: extendShape,\n extendPath: extendPath,\n registerShape: registerShape,\n getShapeClass: getShapeClass,\n makePath: makePath,\n makeImage: makeImage,\n mergePath: mergePath$1,\n resizePath: resizePath,\n subPixelOptimizeLine: subPixelOptimizeLine$1,\n subPixelOptimizeRect: subPixelOptimizeRect$1,\n subPixelOptimize: subPixelOptimize$1,\n updateProps: updateProps,\n initProps: initProps,\n removeElement: removeElement,\n removeElementWithFadeOut: removeElementWithFadeOut,\n isElementRemoved: isElementRemoved,\n getTransform: getTransform,\n applyTransform: applyTransform$1,\n transformDirection: transformDirection,\n groupTransition: groupTransition,\n clipPointsByRect: clipPointsByRect,\n clipRectByRect: clipRectByRect,\n createIcon: createIcon,\n linePolygonIntersect: linePolygonIntersect,\n lineLineIntersect: lineLineIntersect,\n Group: Group,\n Image: ZRImage,\n Text: ZRText,\n Circle: Circle,\n Ellipse: Ellipse,\n Sector: Sector,\n Ring: Ring,\n Polygon: Polygon,\n Polyline: Polyline,\n Rect: Rect,\n Line: Line,\n BezierCurve: BezierCurve,\n Arc: Arc,\n IncrementalDisplayable: IncrementalDisplayble,\n CompoundPath: CompoundPath,\n LinearGradient: LinearGradient,\n RadialGradient: RadialGradient,\n BoundingRect: BoundingRect,\n OrientedBoundingRect: OrientedBoundingRect,\n Point: Point,\n Path: Path\n });\n\n var EMPTY_OBJ = {};\r\n function setLabelText(label, labelTexts) {\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var text = labelTexts[stateName];\r\n var state = label.ensureState(stateName);\r\n state.style = state.style || {};\r\n state.style.text = text;\r\n }\r\n var oldStates = label.currentStates.slice();\r\n label.clearStates(true);\r\n label.setStyle({ text: labelTexts.normal });\r\n label.useStates(oldStates, true);\r\n }\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, overrideValue) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = !!normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\r\n if (stateShow !== showNormal) {\r\n stateObj.ignore = !stateShow;\r\n }\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n if (opt.enableTextSetter) {\r\n labelInner(textContent).setLabelText = function (overrideValue) {\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels, overrideValue);\r\n setLabelText(textContent, labelStatesTexts);\r\n };\r\n }\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius', 'borderDashOffset',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n if (!isAttached) {\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n }\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (textBorderWidth != null) {\r\n textStyle.lineWidth = textBorderWidth;\r\n }\r\n var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\r\n if (textBorderType != null) {\r\n textStyle.lineDash = textBorderType;\r\n }\r\n var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\r\n if (textBorderDashOffset != null) {\r\n textStyle.lineDashOffset = textBorderDashOffset;\r\n }\r\n if (!isNotNormal && (opacity == null) && !inRich) {\r\n opacity = opt && opt.defaultOpacity;\r\n }\r\n if (opacity != null) {\r\n textStyle.opacity = opacity;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n var borderType = textStyleModel.getShallow('borderType');\r\n if (borderType != null) {\r\n textStyle.borderDash = borderType;\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\r\n var labelInner = makeInner();\r\n function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\r\n if (!label) {\r\n return;\r\n }\r\n var obj = labelInner(label);\r\n obj.prevValue = obj.value;\r\n obj.value = value;\r\n var normalLabelModel = labelStatesModels.normal;\r\n obj.valueAnimation = normalLabelModel.get('valueAnimation');\r\n if (obj.valueAnimation) {\r\n obj.precision = normalLabelModel.get('precision');\r\n obj.defaultInterpolatedText = getDefaultText;\r\n obj.statesModels = labelStatesModels;\r\n }\r\n }\r\n function animateLabelValue(textEl, dataIndex, data, seriesModel) {\r\n var labelInnerStore = labelInner(textEl);\r\n if (!labelInnerStore.valueAnimation) {\r\n return;\r\n }\r\n var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\r\n var prevValue = labelInnerStore.prevValue;\r\n var currentValue = labelInnerStore.value;\r\n function during(percent) {\r\n var interpolated = interpolateRawValues(data, labelInnerStore.precision, prevValue, currentValue, percent);\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n defaultText: defaultInterpolatedText\r\n ? defaultInterpolatedText(interpolated)\r\n : interpolated + ''\r\n }, labelInnerStore.statesModels, interpolated);\r\n setLabelText(textEl, labelText);\r\n }\r\n (prevValue == null ? initProps\r\n : updateProps)(textEl, {}, seriesModel, dataIndex, null, during);\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor'],\r\n ['lineDash', 'type'],\r\n ['lineDashOffset', 'dashOffset'],\r\n ['lineCap', 'cap'],\r\n ['lineJoin', 'join'],\r\n ['miterLimit']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n return getLineStyle(this, excludes);\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor'],\r\n ['lineDash', 'borderType'],\r\n ['lineDashOffset', 'borderDashOffset'],\r\n ['lineCap', 'borderCap'],\r\n ['lineJoin', 'borderJoin'],\r\n ['miterLimit', 'borderMiterLimit']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n return getItemStyle(this, excludes, includes);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var noEntryList = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (noEntryList.length) {\r\n var currComponentType = noEntryList.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\r\n }\r\n throw new Error(errMsg);\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n noEntryList.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}-{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, isUTC, lang) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, isUTC, lang);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\r\n deprecateLog('getTextRect is deprecated.');\r\n var textEl = new ZRText({\r\n style: {\r\n text: text,\r\n font: font,\r\n align: align,\r\n verticalAlign: verticalAlign,\r\n padding: padding,\r\n rich: rich,\r\n overflow: truncate ? 'truncate' : null,\r\n lineHeight: lineHeight\r\n }\r\n });\r\n return textEl.getBoundingRect();\r\n }\n\n function addCommas(x) {\r\n if (!isNumeric(x)) {\r\n return isString(x) ? x : '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n function toCamelCase(str, upperCaseFirst) {\r\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (upperCaseFirst && str) {\r\n str = str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n return str;\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&amp;',\r\n '<': '&lt;',\r\n '>': '&gt;',\r\n '\"': '&quot;',\r\n '\\'': '&#39;'\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n function makeValueReadable(value, valueType, useUTC) {\r\n var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\r\n function stringToUserReadable(str) {\r\n return (str && trim(str)) ? str : '-';\r\n }\r\n function isNumberUserReadable(num) {\r\n return !!(num != null && !isNaN(num) && isFinite(num));\r\n }\r\n var isTypeTime = valueType === 'time';\r\n var isValueDate = value instanceof Date;\r\n if (isTypeTime || isValueDate) {\r\n var date = isTypeTime ? parseDate(value) : value;\r\n if (!isNaN(+date)) {\r\n return format(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\r\n }\r\n else if (isValueDate) {\r\n return '-';\r\n }\r\n }\r\n if (valueType === 'ordinal') {\r\n return isStringSafe(value)\r\n ? stringToUserReadable(value)\r\n : isNumber(value)\r\n ? (isNumberUserReadable(value) ? value + '' : '-')\r\n : '-';\r\n }\r\n var numericResult = numericToNumber(value);\r\n return isNumberUserReadable(numericResult)\r\n ? addCommas(numericResult)\r\n : isStringSafe(value)\r\n ? stringToUserReadable(value)\r\n : '-';\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n return tpl;\r\n }\r\n function formatTplSimple(tpl, param, encode) {\r\n each(param, function (value, key) {\r\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\r\n });\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;'\r\n + 'border-radius:4px;width:4px;height:4px;background-color:'\r\n + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>'\r\n : '<span style=\"display:inline-block;margin-right:4px;'\r\n + 'border-radius:10px;width:10px;height:10px;background-color:'\r\n + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\r\n }\r\n else {\r\n var markerId = opt.markerId || 'markerX';\r\n return {\r\n renderMode: renderMode,\r\n content: '{' + markerId + '|} ',\r\n style: type === 'subItem'\r\n ? {\r\n width: 4,\r\n height: 4,\r\n borderRadius: 2,\r\n backgroundColor: color\r\n }\r\n : {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 5,\r\n backgroundColor: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\r\n }\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\r\n function capitalFirst(str) {\r\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\r\n }\r\n function convertToColorString(color, defaultColor) {\r\n defaultColor = defaultColor || 'transparent';\r\n return isString(color)\r\n ? color\r\n : isObject(color)\r\n ? (color.colorStops\r\n && (color.colorStops[0] || {}).color\r\n || defaultColor)\r\n : defaultColor;\r\n }\r\n function windowOpen(link, target) {\r\n if (target === '_blank' || target === 'blank') {\r\n var blank = window.open();\r\n blank.opener = null;\r\n blank.location.href = link;\r\n }\r\n else {\r\n window.open(link, target);\r\n }\r\n }\n\n var formatUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addCommas: addCommas,\n toCamelCase: toCamelCase,\n normalizeCssArray: normalizeCssArray$1,\n encodeHTML: encodeHTML,\n makeValueReadable: makeValueReadable,\n formatTpl: formatTpl,\n formatTplSimple: formatTplSimple,\n getTooltipMarker: getTooltipMarker,\n formatTime: formatTime,\n capitalFirst: capitalFirst,\n convertToColorString: convertToColorString,\n windowOpen: windowOpen,\n truncateText: truncateText,\n getTextRect: getTextRect\n });\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var box = boxLayout;\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function positionElement(el, positionInfo, containerRect, margin, opt) {\r\n var h = !opt || !opt.hv || opt.hv[0];\r\n var v = !opt || !opt.hv || opt.hv[1];\r\n var boundingMode = opt && opt.boundingMode || 'all';\r\n if (!h && !v) {\r\n return;\r\n }\r\n var rect;\r\n if (boundingMode === 'raw') {\r\n rect = el.type === 'group'\r\n ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0)\r\n : el.getBoundingRect();\r\n }\r\n else {\r\n rect = el.getBoundingRect();\r\n if (el.needLocalTransform()) {\r\n var transform = el.getLocalTransform();\r\n rect = rect.clone();\r\n rect.applyTransform(transform);\r\n }\r\n }\r\n var layoutRect = getLayoutRect(defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin);\r\n var dx = h ? layoutRect.x - rect.x : 0;\r\n var dy = v ? layoutRect.y - rect.y : 0;\r\n if (boundingMode === 'raw') {\r\n el.x = dx;\r\n el.y = dy;\r\n }\r\n else {\r\n el.x += dx;\r\n el.y += dy;\r\n }\r\n el.markRedraw();\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var decalColor = 'rgba(0, 0, 0, 0.2)';\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#fac858',\r\n '#ee6666',\r\n '#73c0de',\r\n '#3ba272',\r\n '#fc8452',\r\n '#9a60b4',\r\n '#ea7ccc'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n aria: {\r\n decal: {\r\n decals: [{\r\n color: decalColor,\r\n dashArrayX: [1, 0],\r\n dashArrayY: [2, 5],\r\n symbolSize: 1,\r\n rotation: Math.PI / 6\r\n }, {\r\n color: decalColor,\r\n symbol: 'circle',\r\n dashArrayX: [[8, 8], [0, 8, 8, 0]],\r\n dashArrayY: [6, 0],\r\n symbolSize: 0.8\r\n }, {\r\n color: decalColor,\r\n dashArrayX: [1, 0],\r\n dashArrayY: [4, 3],\r\n dashLineOffset: 0,\r\n rotation: -Math.PI / 4\r\n }, {\r\n color: decalColor,\r\n dashArrayX: [[6, 6], [0, 6, 6, 0]],\r\n dashArrayY: [6, 0]\r\n }, {\r\n color: decalColor,\r\n dashArrayX: [[1, 0], [1, 6]],\r\n dashArrayY: [1, 0, 6, 0],\r\n rotation: Math.PI / 4\r\n }, {\r\n color: decalColor,\r\n symbol: 'triangle',\r\n dashArrayX: [[9, 9], [0, 9, 9, 0]],\r\n dashArrayY: [7, 2],\r\n symbolSize: 0.75\r\n }]\r\n }\r\n },\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function inheritSourceMetaRawOption(upstream, newMetaRawOption) {\r\n var parentMetaRawOption = upstream ? upstream.metaRawOption : null;\r\n var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, parentMetaRawOption ? parentMetaRawOption.seriesLayoutBy : null);\r\n var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upstream ? upstream.startIndex : null);\r\n var dimensions = retrieve2(newMetaRawOption.dimensions, upstream ? upstream.dimensionsDefine : null);\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function registerInternalOptionCreator(mainType, creator) {\r\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\r\n internalOptionCreatorMap.set(mainType, creator);\r\n }\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var innerColor = makeInner();\r\n var innerDecal = makeInner();\r\n var PaletteMixin = (function () {\r\n function PaletteMixin() {\r\n }\r\n PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\r\n var defaultPalette = normalizeToArray(this.get('color', true));\r\n var layeredPalette = this.get('colorLayer', true);\r\n return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\r\n };\r\n PaletteMixin.prototype.clearColorPalette = function () {\r\n clearPalette(this, innerColor);\r\n };\r\n return PaletteMixin;\r\n }());\r\n function getDecalFromPalette(ecModel, name, scope, requestNum) {\r\n var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\r\n return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\r\n }\r\n function getNearestPalette(palettes, requestColorNum) {\r\n var paletteNum = palettes.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (palettes[i].length > requestColorNum) {\r\n return palettes[i];\r\n }\r\n }\r\n return palettes[paletteNum - 1];\r\n }\r\n function getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\r\n scope = scope || that;\r\n var scopeFields = inner(scope);\r\n var paletteIdx = scopeFields.paletteIdx || 0;\r\n var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\r\n if (paletteNameMap.hasOwnProperty(name)) {\r\n return paletteNameMap[name];\r\n }\r\n var palette = ((requestNum == null || !layeredPalette)\r\n ? defaultPalette : getNearestPalette(layeredPalette, requestNum));\r\n palette = palette || defaultPalette;\r\n if (!palette || !palette.length) {\r\n return;\r\n }\r\n var pickedPaletteItem = palette[paletteIdx];\r\n if (name) {\r\n paletteNameMap[name] = pickedPaletteItem;\r\n }\r\n scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\r\n return pickedPaletteItem;\r\n }\r\n function clearPalette(that, inner) {\r\n inner(that).paletteIdx = 0;\r\n inner(that).paletteNameMap = {};\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeSetOptionInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeSetOptionInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n var nameStr = convertOptionIdName(name, null);\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && nameStr != null && oneSeries.name === nameStr; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n if (ComponentModel.hasClass(componentType)) {\r\n componentTypes.push(componentType);\r\n }\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n var airaOption = baseOption.aria;\r\n if (isObject(airaOption) && airaOption.enabled == null) {\r\n airaOption.enabled = true;\r\n }\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seriesIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap();\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n var idName = convertOptionIdName(idOrNameItem, null);\r\n idName != null && keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n var idName_1 = convertOptionIdName(idOrName, null);\r\n return filter(cmpts, function (cmpt) { return cmpt && idName_1 != null && cmpt[attr] === idName_1; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeSetOptionInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, PaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getOption',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var declaredBaseOption = rawOption.baseOption;\r\n var timelineOnRoot = rawOption.timeline;\r\n var timelineOptionsOnRoot = rawOption.options;\r\n var mediaOnRoot = rawOption.media;\r\n var hasMedia = !!rawOption.media;\r\n var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || (declaredBaseOption && declaredBaseOption.timeline));\r\n if (declaredBaseOption) {\r\n baseOption = declaredBaseOption;\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOnRoot;\r\n }\r\n }\r\n else {\r\n if (hasTimeline || hasMedia) {\r\n rawOption.options = rawOption.media = null;\r\n }\r\n baseOption = rawOption;\r\n }\r\n if (hasMedia) {\r\n if (isArray(mediaOnRoot)) {\r\n each(mediaOnRoot, function (singleMedia) {\r\n if (__DEV__) {\r\n if (singleMedia\r\n && !singleMedia.option\r\n && isObject(singleMedia.query)\r\n && isObject(singleMedia.query.option)) {\r\n error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\r\n }\r\n }\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n if (__DEV__) {\r\n error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\r\n }\r\n }\r\n }\r\n doPreprocess(baseOption);\r\n each(timelineOptionsOnRoot, function (option) { return doPreprocess(option); });\r\n each(mediaList, function (media) { return doPreprocess(media.option); });\r\n function doPreprocess(option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n }\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptionsOnRoot || [],\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function globalCompatStyle(option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set$1(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function globalBackwardCompat(option, isTheme) {\r\n globalCompatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set$1(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack(ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var SourceImpl = (function () {\r\n function SourceImpl(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n return SourceImpl;\r\n }());\r\n function isSourceInstance(val) {\r\n return val instanceof SourceImpl;\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\r\n var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new SourceImpl({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: seriesLayoutBy,\r\n dimensionsDefine: determined.dimensionsDefine,\r\n startIndex: determined.startIndex,\r\n dimensionsDetectedCount: determined.dimensionsDetectedCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function createSourceFromSeriesDataOption(data) {\r\n return new SourceImpl({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n }\r\n function cloneSourceShallow(source) {\r\n return new SourceImpl({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectedCount: source.dimensionsDetectedCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectedCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectedCount: dimensionsDetectedCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectedCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectedCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectedCount: dimensionsDetectedCount\r\n };\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (rawItem, index) {\r\n rawItem = isObject(rawItem) ? rawItem : { name: rawItem };\r\n var item = {\r\n name: rawItem.name,\r\n displayName: rawItem.displayName,\r\n type: rawItem.type\r\n };\r\n if (name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !isSourceInstance(sourceParam)\r\n ? createSourceFromSeriesDataOption(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n provider.fillStorage = fillStorageForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var data = this._data;\r\n var dimSize = this._dimSize;\r\n var offset = dimSize * idx;\r\n for (var i = 0; i < dimSize; i++) {\r\n out[i] = data[offset + i];\r\n }\r\n return out;\r\n };\r\n var fillStorageForTypedArray = function (start, end, storage, extent) {\r\n var data = this._data;\r\n var dimSize = this._dimSize;\r\n for (var dim = 0; dim < dimSize; dim++) {\r\n var dimExtent = extent[dim];\r\n var min = dimExtent[0] == null ? Infinity : dimExtent[0];\r\n var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\r\n var count = end - start;\r\n var arr = storage[dim];\r\n for (var i = 0; i < count; i++) {\r\n var val = data[(start + i) * dimSize + dim];\r\n arr[start + i] = val;\r\n val < min && (min = val);\r\n val > max && (max = val);\r\n }\r\n dimExtent[0] = min;\r\n dimExtent[1] = max;\r\n }\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var dimName = dimsDef[i].name;\r\n if (__DEV__) {\r\n if (dimName == null) {\r\n throw new Error();\r\n }\r\n }\r\n var col = rawData[dimName];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n if (__DEV__) {\r\n if (dimName == null) {\r\n throw new Error();\r\n }\r\n }\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\r\n function normalizeTooltipFormatResult(result) {\r\n var markupText;\r\n var markupFragment;\r\n if (isObject(result)) {\r\n if (result.type) {\r\n markupFragment = result;\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\r\n }\r\n }\r\n }\r\n else {\r\n markupText = result;\r\n }\r\n return {\r\n markupText: markupText,\r\n markupFragment: markupFragment\r\n };\r\n }\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\r\n var valueParserMap = createHashMap({\r\n 'number': function (val) {\r\n return parseFloat(val);\r\n },\r\n 'time': function (val) {\r\n return +parseDate(val);\r\n },\r\n 'trim': function (val) {\r\n return typeof val === 'string' ? trim(val) : val;\r\n }\r\n });\r\n var SortOrderComparator = (function () {\r\n function SortOrderComparator(order, incomparable) {\r\n var isDesc = order === 'desc';\r\n this._resultLT = isDesc ? 1 : -1;\r\n if (incomparable == null) {\r\n incomparable = isDesc ? 'min' : 'max';\r\n }\r\n this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\r\n }\r\n SortOrderComparator.prototype.evaluate = function (lval, rval) {\r\n var lvalTypeof = typeof lval;\r\n var rvalTypeof = typeof rval;\r\n var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\r\n var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\r\n var lvalNotNumeric = isNaN(lvalFloat);\r\n var rvalNotNumeric = isNaN(rvalFloat);\r\n if (lvalNotNumeric) {\r\n lvalFloat = this._incomparable;\r\n }\r\n if (rvalNotNumeric) {\r\n rvalFloat = this._incomparable;\r\n }\r\n if (lvalNotNumeric && rvalNotNumeric) {\r\n var lvalIsStr = lvalTypeof === 'string';\r\n var rvalIsStr = rvalTypeof === 'string';\r\n if (lvalIsStr) {\r\n lvalFloat = rvalIsStr ? lval : 0;\r\n }\r\n if (rvalIsStr) {\r\n rvalFloat = lvalIsStr ? rval : 0;\r\n }\r\n }\r\n return lvalFloat < rvalFloat ? this._resultLT\r\n : lvalFloat > rvalFloat ? -this._resultLT\r\n : 0;\r\n };\r\n return SortOrderComparator;\r\n }());\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getRawData = function () {\r\n throw new Error('not supported');\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n throw new Error('not supported');\r\n };\r\n ExternalSource.prototype.cloneRawData = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.cloneAllDimensionInfo = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(internalSource, externalTransform) {\r\n var extSource = new ExternalSource();\r\n var data = internalSource.data;\r\n var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\r\n var sourceHeaderCount = internalSource.startIndex;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n var dimsDef = internalSource.dimensionsDefine;\r\n if (dimsDef) {\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n var errMsg = '';\r\n if (hasOwn(dimsByName, name)) {\r\n if (__DEV__) {\r\n errMsg = 'dimension name \"' + name + '\" duplicated.';\r\n }\r\n throwError(errMsg);\r\n }\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n }\r\n else {\r\n for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\r\n dimensions.push({ index: i });\r\n }\r\n }\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n if (externalTransform.__isBuiltIn) {\r\n extSource.getRawDataItem = function (dataIndex) {\r\n return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\r\n };\r\n extSource.getRawData = bind(getRawData, null, internalSource);\r\n }\r\n extSource.cloneRawData = bind(cloneRawData, null, internalSource);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveValue = function (dataIndex, dimIndex) {\r\n var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\r\n return retrieveValueFromItem(rawItem, dimIndex);\r\n };\r\n var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(dataItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\r\n return extSource;\r\n }\r\n function getRawData(upstream) {\r\n var sourceFormat = upstream.sourceFormat;\r\n var data = upstream.data;\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS\r\n || !data\r\n || (isArray(data) && !data.length)) {\r\n return upstream.data;\r\n }\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\r\n }\r\n throwError(errMsg);\r\n }\r\n function cloneRawData(upstream) {\r\n var sourceFormat = upstream.sourceFormat;\r\n var data = upstream.data;\r\n if (!data) {\r\n return data;\r\n }\r\n else if (isArray(data) && !data.length) {\r\n return [];\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var result = [];\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n result.push(data[i].slice());\r\n }\r\n return result;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var result = [];\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n result.push(extend({}, data[i]));\r\n }\r\n return result;\r\n }\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function cloneAllDimensionInfo(dimensions) {\r\n return clone(dimensions);\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n var errMsg = '';\r\n if (!type) {\r\n if (__DEV__) {\r\n errMsg = 'Must have a `type` when `registerTransform`.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var typeParsed = type.split(':');\r\n if (typeParsed.length !== 2) {\r\n if (__DEV__) {\r\n errMsg = 'Name must include namespace like \"ns:regression\".';\r\n }\r\n throwError(errMsg);\r\n }\r\n var isBuiltIn = false;\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n isBuiltIn = true;\r\n }\r\n externalTransform.__isBuiltIn = isBuiltIn;\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n var pipeLen = pipedTransOption.length;\r\n var errMsg = '';\r\n if (!pipeLen) {\r\n if (__DEV__) {\r\n errMsg = 'If `transform` declared, it should at least contain one transform.';\r\n }\r\n throwError(errMsg);\r\n }\r\n for (var i = 0, len = pipeLen; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\r\n if (i !== len - 1) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\r\n var errMsg = '';\r\n if (!upSourceList.length) {\r\n if (__DEV__) {\r\n errMsg = 'Must have at least one upstream dataset.';\r\n }\r\n throwError(errMsg);\r\n }\r\n if (!isObject(transOption)) {\r\n if (__DEV__) {\r\n errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n if (!externalTransform) {\r\n if (__DEV__) {\r\n errMsg = 'Can not find transform on type \"' + transType + '\".';\r\n }\r\n throwError(errMsg);\r\n }\r\n var extUpSourceList = map(upSourceList, function (upSource) { return createExternalSource(upSource, externalTransform); });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n upstream: extUpSourceList[0],\r\n upstreamList: extUpSourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\r\n return [\r\n '=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions)\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n var errMsg = '';\r\n if (!isObject(result)) {\r\n if (__DEV__) {\r\n errMsg = 'A transform should not return some empty results.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var resultData = result.data;\r\n if (resultData != null) {\r\n if (!isObject(resultData) && !isArrayLike(resultData)) {\r\n if (__DEV__) {\r\n errMsg = 'Result data should be object or array in data transform.';\r\n }\r\n throwError(errMsg);\r\n }\r\n }\r\n else {\r\n resultData = upSourceList[0].data;\r\n }\r\n var resultMetaRawOption = inheritSourceMetaRawOption(upSourceList[0], {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: 0,\r\n dimensions: result.dimensions\r\n });\r\n return createSource(resultData, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption(upSource, this._getSourceMetaRawOption());\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n if (__DEV__) {\r\n assert(fromTransformResult != null || transformOption != null);\r\n }\r\n if (fromTransformResult != null) {\r\n var errMsg = '';\r\n if (upMgrList.length !== 1) {\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n }\r\n var sourceList;\r\n var upSourceList = [];\r\n var upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult || 0);\r\n var errMsg = '';\r\n if (fromTransformResult != null && !upSource) {\r\n if (__DEV__) {\r\n errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\r\n }\r\n doThrow(errMsg);\r\n }\r\n upSourceList.push(upSource);\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n if (transformOption) {\r\n sourceList = applyDataTransform(transformOption, upSourceList, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n sourceList = [cloneSourceShallow(upSourceList[0])];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._getSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var TOOLTIP_NAME_TEXT_STYLE_CSS = 'font-size:12px;color:#6e7079';\r\n var TOOLTIP_TEXT_STYLE_RICH = {\r\n fontSize: 12,\r\n fill: '#6e7079'\r\n };\r\n var TOOLTIP_VALUE_TEXT_STYLE_CSS = 'font-size:14px;color:#464646;font-weight:900';\r\n var TOOLTIP_VALUE_TEXT_STYLE_RICH = {\r\n fontSize: 14,\r\n fill: '#464646',\r\n fontWeight: 900\r\n };\r\n var TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\r\n var HTML_GAPS = [0, 10, 20, 30];\r\n var RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\r\n function createTooltipMarkup(type, option) {\r\n option.type = type;\r\n return option;\r\n }\r\n function getBuilder(fragment) {\r\n return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\r\n }\r\n var builderMap = {\r\n section: {\r\n planLayout: function (fragment) {\r\n var subBlockLen = fragment.blocks.length;\r\n var thisBlockHasInnerGap = subBlockLen > 1 || (subBlockLen > 0 && !fragment.noHeader);\r\n var thisGapLevelBetweenSubBlocks = 0;\r\n each(fragment.blocks, function (subBlock) {\r\n getBuilder(subBlock).planLayout(subBlock);\r\n var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\r\n if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\r\n thisGapLevelBetweenSubBlocks = subGapLevel + ((thisBlockHasInnerGap && (!subGapLevel\r\n || (subBlock.type === 'section' && !subBlock.noHeader))) ? 1 : 0);\r\n }\r\n });\r\n fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\r\n },\r\n build: function (ctx, fragment, topMarginForOuterGap) {\r\n var noHeader = fragment.noHeader;\r\n var gaps = getGap(fragment);\r\n var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html);\r\n if (noHeader) {\r\n return subMarkupText;\r\n }\r\n var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\r\n if (ctx.renderMode === 'richText') {\r\n return wrapInlineNameRichText(ctx, displayableHeader) + gaps.richText\r\n + subMarkupText;\r\n }\r\n else {\r\n return wrapBlockHTML(\"<div style=\\\"\" + TOOLTIP_NAME_TEXT_STYLE_CSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\"\r\n + encodeHTML(displayableHeader)\r\n + '</div>'\r\n + subMarkupText, topMarginForOuterGap);\r\n }\r\n }\r\n },\r\n nameValue: {\r\n planLayout: function (fragment) {\r\n fragment.__gapLevelBetweenSubBlocks = 0;\r\n },\r\n build: function (ctx, fragment, topMarginForOuterGap) {\r\n var renderMode = ctx.renderMode;\r\n var noName = fragment.noName;\r\n var noValue = fragment.noValue;\r\n var noMarker = !fragment.markerType;\r\n var name = fragment.name;\r\n var value = fragment.value;\r\n var useUTC = ctx.useUTC;\r\n if (noName && noValue) {\r\n return;\r\n }\r\n var markerStr = noMarker\r\n ? ''\r\n : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\r\n var readableName = noName\r\n ? ''\r\n : makeValueReadable(name, 'ordinal', useUTC);\r\n var valueTypeOption = fragment.valueType;\r\n var readableValueList = noValue\r\n ? []\r\n : (isArray(value)\r\n ? map(value, function (val, idx) { return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC); })\r\n : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)]);\r\n var valueAlignRight = !noMarker || !noName;\r\n var valueCloseToMarker = !noMarker && noName;\r\n return renderMode === 'richText'\r\n ? ((noMarker ? '' : markerStr)\r\n + (noName ? '' : wrapInlineNameRichText(ctx, readableName))\r\n + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker)))\r\n : wrapBlockHTML((noMarker ? '' : markerStr)\r\n + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker))\r\n + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker)), topMarginForOuterGap);\r\n }\r\n }\r\n };\r\n function buildSubBlocks(ctx, fragment, topMarginForOuterGap) {\r\n var subMarkupTextList = [];\r\n var subBlocks = fragment.blocks || [];\r\n assert(!subBlocks || isArray(subBlocks));\r\n subBlocks = subBlocks || [];\r\n var orderMode = ctx.orderMode;\r\n if (fragment.sortBlocks && orderMode) {\r\n subBlocks = subBlocks.slice();\r\n var orderMap = { valueAsc: 'asc', valueDesc: 'desc' };\r\n if (hasOwn(orderMap, orderMode)) {\r\n var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\r\n subBlocks.sort(function (a, b) { return comparator_1.evaluate(a.sortParam, b.sortParam); });\r\n }\r\n else if (orderMode === 'seriesDesc') {\r\n subBlocks.reverse();\r\n }\r\n }\r\n var gaps = getGap(fragment);\r\n each(subBlocks, function (subBlock, idx) {\r\n var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0);\r\n subMarkupText != null && subMarkupTextList.push(subMarkupText);\r\n });\r\n if (!subMarkupTextList.length) {\r\n return;\r\n }\r\n return ctx.renderMode === 'richText'\r\n ? subMarkupTextList.join(gaps.richText)\r\n : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\r\n }\r\n function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC) {\r\n if (!fragment) {\r\n return;\r\n }\r\n var builder = getBuilder(fragment);\r\n builder.planLayout(fragment);\r\n var ctx = {\r\n useUTC: useUTC,\r\n renderMode: renderMode,\r\n orderMode: orderMode,\r\n markupStyleCreator: markupStyleCreator\r\n };\r\n return builder.build(ctx, fragment, 0);\r\n }\r\n function getGap(fragment) {\r\n var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\r\n return {\r\n html: HTML_GAPS[gapLevelBetweenSubBlocks],\r\n richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\r\n };\r\n }\r\n function wrapBlockHTML(encodedContent, topGap) {\r\n var clearfix = '<div style=\"clear:both\"></div>';\r\n var marginCSS = \"margin: \" + topGap + \"px 0 0\";\r\n return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\"\r\n + encodedContent + clearfix\r\n + '</div>';\r\n }\r\n function wrapInlineNameHTML(name, leftHasMarker) {\r\n var marginCss = leftHasMarker ? 'margin-left:2px' : '';\r\n return \"<span style=\\\"\" + TOOLTIP_NAME_TEXT_STYLE_CSS + \";\" + marginCss + \"\\\">\"\r\n + encodeHTML(name)\r\n + '</span>';\r\n }\r\n function wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker) {\r\n var paddingStr = valueCloseToMarker ? '10px' : '20px';\r\n var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\r\n return (\"<span style=\\\"\" + alignCSS + \";\" + TOOLTIP_VALUE_TEXT_STYLE_CSS + \"\\\">\"\r\n + map(valueList, function (value) { return encodeHTML(value); }).join('&nbsp;&nbsp;')\r\n + '</span>');\r\n }\r\n function wrapInlineNameRichText(ctx, name) {\r\n return ctx.markupStyleCreator.wrapRichTextStyle(name, TOOLTIP_TEXT_STYLE_RICH);\r\n }\r\n function wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker) {\r\n var styles = [TOOLTIP_VALUE_TEXT_STYLE_RICH];\r\n var paddingLeft = valueCloseToMarker ? 10 : 20;\r\n alignRight && styles.push({ padding: [0, 0, 0, paddingLeft], align: 'right' });\r\n return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join(' '), styles);\r\n }\r\n function retrieveVisualColorForTooltipMarker(series, dataIndex) {\r\n var style = series.getData().getItemVisual(dataIndex, 'style');\r\n var color = style[series.visualDrawType];\r\n return convertToColorString(color);\r\n }\r\n function getPaddingFromTooltipModel(model, renderMode) {\r\n var padding = model.get('padding');\r\n return padding != null\r\n ? padding\r\n : renderMode === 'richText'\r\n ? [8, 10]\r\n : 10;\r\n }\r\n var TooltipMarkupStyleCreator = (function () {\r\n function TooltipMarkupStyleCreator() {\r\n this.richTextStyles = {};\r\n this._nextStyleNameId = getRandomIdBase();\r\n }\r\n TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\r\n return '__EC_aUTo_' + this._nextStyleNameId++;\r\n };\r\n TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\r\n var markerId = renderMode === 'richText'\r\n ? this._generateStyleName()\r\n : null;\r\n var marker = getTooltipMarker({\r\n color: colorStr,\r\n type: markerType,\r\n renderMode: renderMode,\r\n markerId: markerId\r\n });\r\n if (isString(marker)) {\r\n return marker;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(markerId);\r\n }\r\n this.richTextStyles[markerId] = marker.style;\r\n return marker.content;\r\n }\r\n };\r\n TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\r\n var finalStl = {};\r\n if (isArray(styles)) {\r\n each(styles, function (stl) { return extend(finalStl, stl); });\r\n }\r\n else {\r\n extend(finalStl, styles);\r\n }\r\n var styleName = this._generateStyleName();\r\n this.richTextStyles[styleName] = finalStl;\r\n return \"{\" + styleName + \"|\" + text + \"}\";\r\n };\r\n return TooltipMarkupStyleCreator;\r\n }());\n\n function defaultSeriesFormatTooltip(opt) {\r\n var series = opt.series;\r\n var dataIndex = opt.dataIndex;\r\n var multipleSeries = opt.multipleSeries;\r\n var data = series.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = series.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\r\n var inlineValue;\r\n var inlineValueType;\r\n var subBlocks;\r\n var sortParam;\r\n if (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen)) {\r\n var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\r\n inlineValue = formatArrResult.inlineValues;\r\n inlineValueType = formatArrResult.inlineValueTypes;\r\n subBlocks = formatArrResult.blocks;\r\n sortParam = formatArrResult.inlineValues[0];\r\n }\r\n else if (tooltipDimLen) {\r\n var dimInfo = data.getDimensionInfo(tooltipDims[0]);\r\n sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\r\n inlineValueType = dimInfo.type;\r\n }\r\n else {\r\n sortParam = inlineValue = isValueArr ? value[0] : value;\r\n }\r\n var seriesNameSpecified = isNameSpecified(series);\r\n var seriesName = seriesNameSpecified && series.name || '';\r\n var itemName = data.getName(dataIndex);\r\n var inlineName = multipleSeries ? seriesName : itemName;\r\n return createTooltipMarkup('section', {\r\n header: seriesName,\r\n noHeader: multipleSeries || !seriesNameSpecified,\r\n sortParam: sortParam,\r\n blocks: [\r\n createTooltipMarkup('nameValue', {\r\n markerType: 'item',\r\n markerColor: markerColor,\r\n name: inlineName,\r\n noName: !trim(inlineName),\r\n value: inlineValue,\r\n valueType: inlineValueType\r\n })\r\n ].concat(subBlocks || [])\r\n });\r\n }\r\n function formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\r\n var data = series.getData();\r\n var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return isValueMultipleLine = isValueMultipleLine\r\n || (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, false);\r\n var inlineValues = [];\r\n var inlineValueTypes = [];\r\n var blocks = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n if (isValueMultipleLine) {\r\n blocks.push(createTooltipMarkup('nameValue', {\r\n markerType: 'subItem',\r\n markerColor: colorStr,\r\n name: dimInfo.displayName,\r\n value: val,\r\n valueType: dimInfo.type\r\n }));\r\n }\r\n else {\r\n inlineValues.push(val);\r\n inlineValueTypes.push(dimInfo.type);\r\n }\r\n }\r\n return { inlineValues: inlineValues, inlineValueTypes: inlineValueTypes, blocks: blocks };\r\n }\n\n var inner$1 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$1(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$1(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$1(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$1(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$1(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$1(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$1(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$1(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n return defaultSeriesFormatTooltip({\r\n series: this,\r\n dataIndex: dataIndex,\r\n multipleSeries: multipleSeries\r\n });\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, PaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataChange, seriesModel));\r\n });\r\n }\r\n function onDataChange(seriesModel, newList) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd((newList || this).count());\r\n }\r\n return newList;\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner() {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = !!fields.large;\r\n var originalProgressive = !!fields.progressiveRender;\r\n var large = fields.large = !!(pipelineContext && pipelineContext.large);\r\n var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\r\n return (!!((originalLarge !== large) || (originalProgressive !== progressive)) && 'reset');\r\n };\r\n }\n\n var inner$2 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$2(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$2(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n var ORIGIN_METHOD = '\\0__throttleOriginMethod';\r\n var RATE = '\\0__throttleRate';\r\n var THROTTLE_TYPE = '\\0__throttleType';\r\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\r\n function createOrUpdate(obj, fnAttr, rate, throttleType) {\r\n var fn = obj[fnAttr];\r\n if (!fn) {\r\n return;\r\n }\r\n var originFn = fn[ORIGIN_METHOD] || fn;\r\n var lastThrottleType = fn[THROTTLE_TYPE];\r\n var lastRate = fn[RATE];\r\n if (lastRate !== rate || lastThrottleType !== throttleType) {\r\n if (rate == null || !throttleType) {\r\n return (obj[fnAttr] = originFn);\r\n }\r\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\r\n fn[ORIGIN_METHOD] = originFn;\r\n fn[THROTTLE_TYPE] = throttleType;\r\n fn[RATE] = rate;\r\n }\r\n return fn;\r\n }\r\n function clear(obj, fnAttr) {\r\n var fn = obj[fnAttr];\r\n if (fn && fn[ORIGIN_METHOD]) {\r\n obj[fnAttr] = fn[ORIGIN_METHOD];\r\n }\r\n }\n\n var inner$3 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var decalOption = styleModel.getShallow('decal');\r\n if (decalOption) {\r\n data.setVisual('decal', decalOption);\r\n decalOption.dirty = true;\r\n }\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (sharedModel.option.decal) {\r\n data.setItemVisual(idx, 'decal', sharedModel.option.decal);\r\n sharedModel.option.decal.dirty = true;\r\n }\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$3(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$3(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n var name_1 = dataAll.getName(rawIdx) || (rawIdx + '');\r\n var dataCount = dataAll.count();\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\r\n }\r\n });\r\n });\r\n }\r\n };\n\n var PI$5 = Math.PI;\r\n function defaultLoading(api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#5470c6',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$5 / 2,\r\n endAngle: -PI$5 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$5 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$5 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.api.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\r\n }\r\n assert(!(handler.reset && handler.overallReset), errMsg);\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId)\r\n || createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var oldAgentStubMap = overallTask.agentStubMap;\r\n var newAgentStubMap = overallTask.agentStubMap = createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n var shouldOverallTaskDirty = false;\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", '\r\n + 'becuase it will block all streams.';\r\n }\r\n assert(!stageHandler.createOnAllSeries, errMsg);\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId)\r\n || (shouldOverallTaskDirty = true,\r\n createTask({ reset: stubReset, onDirty: stubOnDirty })));\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n if (shouldOverallTaskDirty) {\r\n overallTask.dirty();\r\n }\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#B9B8CE';\r\n var backgroundColor = '#100C2A';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n color: '#484753'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\r\n }\r\n },\r\n minorSplitLine: {\r\n lineStyle: {\r\n color: '#20203B'\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#4992ff',\r\n '#7cffb2',\r\n '#fddd60',\r\n '#ff6e76',\r\n '#58d9f9',\r\n '#05c091',\r\n '#ff8a45',\r\n '#8d48e3',\r\n '#dd79ff'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: backgroundColor,\r\n axisPointer: {\r\n lineStyle: {\r\n color: '#817f91'\r\n },\r\n crossStyle: {\r\n color: '#817f91'\r\n },\r\n label: {\r\n color: '#fff'\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: '#EEF1FA'\r\n },\r\n subtextStyle: {\r\n color: '#B9B8CE'\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n borderColor: contrastColor\r\n }\r\n },\r\n dataZoom: {\r\n borderColor: '#71708A',\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n brushStyle: {\r\n color: 'rgba(135,163,206,0.3)'\r\n },\r\n handleStyle: {\r\n color: '#353450',\r\n borderColor: '#C5CBE3'\r\n },\r\n moveHandleStyle: {\r\n color: '#B0B6C3',\r\n opacity: 0.3\r\n },\r\n fillerColor: 'rgba(135,163,206,0.2)',\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#91B7F2',\r\n color: '#4D587D'\r\n },\r\n moveHandleStyle: {\r\n color: '#636D9A',\r\n opacity: 0.7\r\n }\r\n },\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#71708A',\r\n width: 1\r\n },\r\n areaStyle: {\r\n color: '#71708A'\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#87A3CE'\r\n },\r\n areaStyle: {\r\n color: '#87A3CE'\r\n }\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n color: contrastColor\r\n },\r\n controlStyle: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n },\r\n calendar: {\r\n itemStyle: {\r\n color: backgroundColor\r\n },\r\n dayLabel: {\r\n color: contrastColor\r\n },\r\n monthLabel: {\r\n color: contrastColor\r\n },\r\n yearLabel: {\r\n color: contrastColor\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n color: contrastColor\r\n },\r\n axisLine: {\r\n lineStyle: {\r\n color: [[1, 'rgba(207,212,219,0.2)']]\r\n }\r\n },\r\n axisLabel: {\r\n color: contrastColor\r\n },\r\n detail: {\r\n color: '#EEF1FA'\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\n\n var PI2$6 = Math.PI * 2;\r\n var CMD$3 = PathProxy.CMD;\r\n var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\r\n function getCandidateAnchor(pos, distance, rect, outPt, outDir) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n switch (pos) {\r\n case 'top':\r\n outPt.set(rect.x + width / 2, rect.y - distance);\r\n outDir.set(0, -1);\r\n break;\r\n case 'bottom':\r\n outPt.set(rect.x + width / 2, rect.y + height + distance);\r\n outDir.set(0, 1);\r\n break;\r\n case 'left':\r\n outPt.set(rect.x - distance, rect.y + height / 2);\r\n outDir.set(-1, 0);\r\n break;\r\n case 'right':\r\n outPt.set(rect.x + width + distance, rect.y + height / 2);\r\n outDir.set(1, 0);\r\n break;\r\n }\r\n }\r\n function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n x /= d;\r\n y /= d;\r\n var ox = x * r + cx;\r\n var oy = y * r + cy;\r\n if (Math.abs(startAngle - endAngle) % PI2$6 < 1e-4) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$6;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$6;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$6 >= startAngle && angle + PI2$6 <= endAngle)) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n var x1 = r * Math.cos(startAngle) + cx;\r\n var y1 = r * Math.sin(startAngle) + cy;\r\n var x2 = r * Math.cos(endAngle) + cx;\r\n var y2 = r * Math.sin(endAngle) + cy;\r\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\r\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\r\n if (d1 < d2) {\r\n out[0] = x1;\r\n out[1] = y1;\r\n return Math.sqrt(d1);\r\n }\r\n else {\r\n out[0] = x2;\r\n out[1] = y2;\r\n return Math.sqrt(d2);\r\n }\r\n }\r\n function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\r\n var dx = x - x1;\r\n var dy = y - y1;\r\n var dx1 = x2 - x1;\r\n var dy1 = y2 - y1;\r\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n dx1 /= lineLen;\r\n dy1 /= lineLen;\r\n var projectedLen = dx * dx1 + dy * dy1;\r\n var t = projectedLen / lineLen;\r\n if (limitToEnds) {\r\n t = Math.min(Math.max(t, 0), 1);\r\n }\r\n t *= lineLen;\r\n var ox = out[0] = x1 + t * dx1;\r\n var oy = out[1] = y1 + t * dy1;\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n function projectPointToRect(x1, y1, width, height, x, y, out) {\r\n if (width < 0) {\r\n x1 = x1 + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y1 = y1 + height;\r\n height = -height;\r\n }\r\n var x2 = x1 + width;\r\n var y2 = y1 + height;\r\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\r\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n var tmpPt = [];\r\n function nearestPointOnRect(pt, rect, out) {\r\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\r\n out.set(tmpPt[0], tmpPt[1]);\r\n return dist;\r\n }\r\n function nearestPointOnPath(pt, path, out) {\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n var minDist = Infinity;\r\n var data = path.data;\r\n var x = pt.x;\r\n var y = pt.y;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var d = minDist;\r\n switch (cmd) {\r\n case CMD$3.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$3.L:\r\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.C:\r\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.Q:\r\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i <= 1) {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\r\n break;\r\n case CMD$3.Z:\r\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n if (d < minDist) {\r\n minDist = d;\r\n out.set(tmpPt[0], tmpPt[1]);\r\n }\r\n }\r\n return minDist;\r\n }\r\n var pt0 = new Point();\r\n var pt1 = new Point();\r\n var pt2 = new Point();\r\n var dir = new Point();\r\n var dir2 = new Point();\r\n function updateLabelLinePoints(target, labelLineModel) {\r\n if (!target) {\r\n return;\r\n }\r\n var labelLine = target.getTextGuideLine();\r\n var label = target.getTextContent();\r\n if (!(label && labelLine)) {\r\n return;\r\n }\r\n var labelGuideConfig = target.textGuideLineConfig || {};\r\n var points = [[0, 0], [0, 0], [0, 0]];\r\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\r\n var labelRect = label.getBoundingRect().clone();\r\n labelRect.applyTransform(label.getComputedTransform());\r\n var minDist = Infinity;\r\n var anchorPoint = labelGuideConfig.anchor;\r\n var targetTransform = target.getComputedTransform();\r\n var targetInversedTransform = targetTransform && invert([], targetTransform);\r\n var len = labelLineModel.get('length2') || 0;\r\n if (anchorPoint) {\r\n pt2.copy(anchorPoint);\r\n }\r\n for (var i = 0; i < searchSpace.length; i++) {\r\n var candidate = searchSpace[i];\r\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\r\n Point.scaleAndAdd(pt1, pt0, dir, len);\r\n pt1.transform(targetInversedTransform);\r\n var boundingRect = target.getBoundingRect();\r\n var dist = anchorPoint ? anchorPoint.distance(pt1)\r\n : (target instanceof Path\r\n ? nearestPointOnPath(pt1, target.path, pt2)\r\n : nearestPointOnRect(pt1, boundingRect, pt2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n pt1.transform(targetTransform);\r\n pt2.transform(targetTransform);\r\n pt2.toArray(points[0]);\r\n pt1.toArray(points[1]);\r\n pt0.toArray(points[2]);\r\n }\r\n }\r\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\r\n labelLine.setShape({ points: points });\r\n }\r\n var tmpArr = [];\r\n var tmpProjPoint = new Point();\r\n function limitTurnAngle(linePoints, minTurnAngle) {\r\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\r\n return;\r\n }\r\n minTurnAngle = minTurnAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt0, pt1);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(dir2);\r\n var minTurnAngleCos = Math.cos(minTurnAngle);\r\n if (minTurnAngleCos < angleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\r\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\r\n return;\r\n }\r\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt1, pt0);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(surfaceNormal);\r\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\r\n if (angleCos < maxSurfaceAngleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n var showAbove = normalModel.get('showAbove');\r\n var labelLineConfig = (targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {});\r\n labelLineConfig.showAbove = showAbove || false;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n function hideEl(el) {\r\n if (!el.ignore) {\r\n var emphasisState = el.ensureState('emphasis');\r\n if (emphasisState.ignore == null) {\r\n emphasisState.ignore = false;\r\n }\r\n }\r\n el.ignore = true;\r\n }\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n hideEl(label);\r\n labelLine && hideEl(labelLine);\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelItem.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n rect: labelRect,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n if (textEl && !textEl.disableLabelLayout) {\r\n _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var hostModel = labelItem.seriesModel;\r\n if (labelItem.dataIndex != null) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n hostModel = data.getItemModel(labelItem.dataIndex);\r\n }\r\n label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftX';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftY';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl\r\n && !textEl.ignore\r\n && !textEl.invisible\r\n && !el.disableLabelAnimation\r\n && !isElementRemoved(el)) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n var data = seriesModel.getData(ecData.dataType);\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n if (!labelInner(textEl).valueAnimation) {\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel, dataIndex);\r\n }\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel, dataIndex);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n animateLabelValue(textEl, dataIndex, data, seriesModel);\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns, ecModel) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\n\n function normalizeLineDash(lineType, lineWidth) {\r\n if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\r\n return null;\r\n }\r\n lineWidth = lineWidth || 1;\r\n return lineType === 'dashed'\r\n ? [4 * lineWidth, 2 * lineWidth]\r\n : lineType === 'dotted'\r\n ? [lineWidth]\r\n : isNumber(lineType)\r\n ? [lineType] : isArray(lineType) ? lineType : null;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\r\n if (typeof DOMMatrix === 'function') {\r\n var matrix = new DOMMatrix();\r\n matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\r\n matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\r\n matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\r\n canvasPattern.setTransform(matrix);\r\n }\r\n return canvasPattern;\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = el.getWidth();\r\n var height = el.getHeight();\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n var hasLineDash = void 0;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n hasLineDash = true;\r\n }\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n if (hasLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brushSingle(ctx, el) {\r\n brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\r\n el.__dirty &= ~Element.REDARAW_BIT;\r\n el.__isRendered = false;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n el.__isRendered = false;\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n el.__isRendered = true;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.maxRepaintRectCount = 5;\r\n _this.__dirty = true;\r\n _this.__firstTimePaint = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n _this.__prevStartIndex = null;\r\n _this.__prevEndIndex = null;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.afterBrush = function () {\r\n this.__prevStartIndex = this.__startIndex;\r\n this.__prevEndIndex = this.__endIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.setUnpainted = function () {\r\n this.__firstTimePaint = true;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\r\n if (this.__firstTimePaint) {\r\n this.__firstTimePaint = false;\r\n return null;\r\n }\r\n var mergedRepaintRects = [];\r\n var maxRepaintRectCount = this.maxRepaintRectCount;\r\n var full = false;\r\n var pendingRect = new BoundingRect(0, 0, 0, 0);\r\n function addRectToMergePool(rect) {\r\n if (!rect.isFinite() || rect.isZero()) {\r\n return;\r\n }\r\n if (mergedRepaintRects.length === 0) {\r\n var boundingRect = new BoundingRect(0, 0, 0, 0);\r\n boundingRect.copy(rect);\r\n mergedRepaintRects.push(boundingRect);\r\n }\r\n else {\r\n var isMerged = false;\r\n var minDeltaArea = Infinity;\r\n var bestRectToMergeIdx = 0;\r\n for (var i = 0; i < mergedRepaintRects.length; ++i) {\r\n var mergedRect = mergedRepaintRects[i];\r\n if (mergedRect.intersect(rect)) {\r\n var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\r\n pendingRect_1.copy(mergedRect);\r\n pendingRect_1.union(rect);\r\n mergedRepaintRects[i] = pendingRect_1;\r\n isMerged = true;\r\n break;\r\n }\r\n else if (full) {\r\n pendingRect.copy(rect);\r\n pendingRect.union(mergedRect);\r\n var aArea = rect.width * rect.height;\r\n var bArea = mergedRect.width * mergedRect.height;\r\n var pendingArea = pendingRect.width * pendingRect.height;\r\n var deltaArea = pendingArea - aArea - bArea;\r\n if (deltaArea < minDeltaArea) {\r\n minDeltaArea = minDeltaArea;\r\n bestRectToMergeIdx = i;\r\n }\r\n }\r\n }\r\n if (full) {\r\n mergedRepaintRects[bestRectToMergeIdx].union(rect);\r\n isMerged = true;\r\n }\r\n if (!isMerged) {\r\n var boundingRect = new BoundingRect(0, 0, 0, 0);\r\n boundingRect.copy(rect);\r\n mergedRepaintRects.push(boundingRect);\r\n }\r\n if (!full) {\r\n full = mergedRepaintRects.length >= maxRepaintRectCount;\r\n }\r\n }\r\n }\r\n for (var i = this.__startIndex; i < this.__endIndex; ++i) {\r\n var el = displayList[i];\r\n if (el) {\r\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\r\n var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\r\n ? el.getPrevPaintRect()\r\n : null;\r\n if (prevRect) {\r\n addRectToMergePool(prevRect);\r\n }\r\n var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\r\n ? el.getPaintRect()\r\n : null;\r\n if (curRect) {\r\n addRectToMergePool(curRect);\r\n }\r\n }\r\n }\r\n for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\r\n var el = prevList[i];\r\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\r\n if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\r\n var prevRect = el.getPrevPaintRect();\r\n if (prevRect) {\r\n addRectToMergePool(prevRect);\r\n }\r\n }\r\n }\r\n var hasIntersections;\r\n do {\r\n hasIntersections = false;\r\n for (var i = 0; i < mergedRepaintRects.length;) {\r\n if (mergedRepaintRects[i].isZero()) {\r\n mergedRepaintRects.splice(i, 1);\r\n continue;\r\n }\r\n for (var j = i + 1; j < mergedRepaintRects.length;) {\r\n if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\r\n hasIntersections = true;\r\n mergedRepaintRects[i].union(mergedRepaintRects[j]);\r\n mergedRepaintRects.splice(j, 1);\r\n }\r\n else {\r\n j++;\r\n }\r\n }\r\n i++;\r\n }\r\n } while (hasIntersections);\r\n this._paintRects = mergedRepaintRects;\r\n return mergedRepaintRects;\r\n };\r\n Layer.prototype.debugGetPaintRects = function () {\r\n return (this._paintRects || []).slice();\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n var domBack = this.domBack;\r\n function doClear(x, y, width, height) {\r\n ctx.clearRect(x, y, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.setUnpainted();\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(x, y, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, x, y, width, height);\r\n ctx.restore();\r\n }\r\n }\r\n if (!repaintRects || haveMotionBLur) {\r\n doClear(0, 0, width, height);\r\n }\r\n else if (repaintRects.length) {\r\n each(repaintRects, function (rect) {\r\n doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\r\n });\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._prevDisplayList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n this._prevDisplayList = [];\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var prevList = this._prevDisplayList;\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, prevList, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n if (this._opts.useDirtyRect) {\r\n this._prevDisplayList = list.slice();\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype.paintOne = function (ctx, el) {\r\n brushSingle(ctx, el);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, prevList, paintAll, redrawId);\r\n });\r\n }\r\n else {\r\n this.eachLayer(function (layer) {\r\n layer.afterBrush && layer.afterBrush();\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\r\n var _this = this;\r\n var layerList = [];\r\n var useDirtyRect = this._opts.useDirtyRect;\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n var _loop_1 = function (k) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var repaintRects = useDirtyRect\r\n && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this_1._zlevelList[0]\r\n ? this_1._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor, repaintRects);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor, repaintRects);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i;\r\n var repaint = function (repaintRect) {\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: _this._width,\r\n viewHeight: _this._height\r\n };\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n };\r\n if (repaintRects) {\r\n if (repaintRects.length === 0) {\r\n i = layer.__endIndex;\r\n }\r\n else {\r\n var dpr = this_1.dpr;\r\n for (var r = 0; r < repaintRects.length; ++r) {\r\n var rect = repaintRects[r];\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\r\n ctx.clip();\r\n repaint(rect);\r\n ctx.restore();\r\n }\r\n }\r\n }\r\n else {\r\n ctx.save();\r\n repaint();\r\n ctx.restore();\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n };\r\n var this_1 = this;\r\n for (var k = 0; k < layerList.length; k++) {\r\n _loop_1(k);\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\r\n var ctx = currentLayer.ctx;\r\n if (useDirtyRect) {\r\n var paintRect = el.getPaintRect();\r\n if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\r\n brush(ctx, el, scope, isLast);\r\n el.setPrevPaintRect(paintRect);\r\n }\r\n }\r\n else {\r\n brush(ctx, el, scope, isLast);\r\n }\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n each(this._layers, function (layer) {\r\n layer.setUnpainted();\r\n });\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n function findEventDispatcher(target, det, returnFirstMatch) {\r\n var found;\r\n while (target) {\r\n if (det(target)) {\r\n found = target;\r\n if (returnFirstMatch) {\r\n break;\r\n }\r\n }\r\n target = target.__hostTarget || target.parent;\r\n }\r\n return found;\r\n }\n\n var wmUniqueIndex = Math.round(Math.random() * 9);\r\n var WeakMap = (function () {\r\n function WeakMap() {\r\n this._id = '__ec_inner_' + wmUniqueIndex++;\r\n }\r\n WeakMap.prototype.get = function (key) {\r\n return this._guard(key)[this._id];\r\n };\r\n WeakMap.prototype.set = function (key, value) {\r\n var target = this._guard(key);\r\n if (typeof Object.defineProperty === 'function') {\r\n Object.defineProperty(target, this._id, {\r\n value: value,\r\n enumerable: false,\r\n configurable: true\r\n });\r\n }\r\n else {\r\n target[this._id] = value;\r\n }\r\n return this;\r\n };\r\n WeakMap.prototype[\"delete\"] = function (key) {\r\n if (this.has(key)) {\r\n delete this._guard(key)[this._id];\r\n return true;\r\n }\r\n return false;\r\n };\r\n WeakMap.prototype.has = function (key) {\r\n return !!this._guard(key)[this._id];\r\n };\r\n WeakMap.prototype._guard = function (key) {\r\n if (key !== Object(key)) {\r\n throw TypeError('Value of WeakMap is not a non-null object.');\r\n }\r\n return key;\r\n };\r\n return WeakMap;\r\n }());\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n var decalMap = new WeakMap();\r\n var decalCache = new LRU(100);\r\n var decalKeys = [\r\n 'symbol', 'symbolSize', 'symbolKeepAspect',\r\n 'color', 'backgroundColor',\r\n 'dashArrayX', 'dashArrayY', 'dashLineOffset',\r\n 'maxTileWidth', 'maxTileHeight'\r\n ];\r\n function createOrUpdatePatternFromDecal(decalObject, api) {\r\n if (decalObject === 'none') {\r\n return null;\r\n }\r\n var dpr = api.getDevicePixelRatio();\r\n var zr = api.getZr();\r\n var isSVG = zr.painter.type === 'svg';\r\n if (decalObject.dirty) {\r\n decalMap[\"delete\"](decalObject);\r\n }\r\n var oldPattern = decalMap.get(decalObject);\r\n if (oldPattern) {\r\n return oldPattern;\r\n }\r\n var decalOpt = defaults(decalObject, {\r\n symbol: 'rect',\r\n symbolSize: 1,\r\n symbolKeepAspect: true,\r\n color: 'rgba(0, 0, 0, 0.2)',\r\n backgroundColor: null,\r\n dashArrayX: 5,\r\n dashArrayY: 5,\r\n dashLineOffset: 0,\r\n rotation: 0,\r\n maxTileWidth: 512,\r\n maxTileHeight: 512\r\n });\r\n if (decalOpt.backgroundColor === 'none') {\r\n decalOpt.backgroundColor = null;\r\n }\r\n var pattern = { repeat: 'repeat' };\r\n setPatternnSource(pattern);\r\n pattern.rotation = decalOpt.rotation;\r\n pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\r\n decalMap.set(decalObject, pattern);\r\n decalObject.dirty = false;\r\n return pattern;\r\n function setPatternnSource(pattern) {\r\n var keys = [dpr];\r\n var isValidKey = true;\r\n for (var i = 0; i < decalKeys.length; ++i) {\r\n var value = decalOpt[decalKeys[i]];\r\n var valueType = typeof value;\r\n if (value != null\r\n && !isArray(value)\r\n && valueType !== 'string'\r\n && valueType !== 'number'\r\n && valueType !== 'boolean') {\r\n isValidKey = false;\r\n break;\r\n }\r\n keys.push(value);\r\n }\r\n var cacheKey;\r\n if (isValidKey) {\r\n cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\r\n var cache = decalCache.get(cacheKey);\r\n if (cache) {\r\n isSVG ? pattern.svgElement = cache\r\n : pattern.image = cache;\r\n }\r\n }\r\n var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\r\n var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\r\n var symbolArray = normalizeSymbolArray(decalOpt.symbol);\r\n var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\r\n var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\r\n var canvas = !isSVG && createCanvas();\r\n var svgRoot = isSVG && zr.painter.createSVGElement('g');\r\n var pSize = getPatternSize();\r\n var ctx;\r\n if (canvas) {\r\n canvas.width = pSize.width * dpr;\r\n canvas.height = pSize.height * dpr;\r\n ctx = canvas.getContext('2d');\r\n }\r\n brushDecal();\r\n if (isValidKey) {\r\n decalCache.put(cacheKey, canvas || svgRoot);\r\n }\r\n pattern.image = canvas;\r\n pattern.svgElement = svgRoot;\r\n pattern.svgWidth = pSize.width;\r\n pattern.svgHeight = pSize.height;\r\n function getPatternSize() {\r\n var width = 1;\r\n for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\r\n width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\r\n }\r\n var symbolRepeats = 1;\r\n for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\r\n symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\r\n }\r\n width *= symbolRepeats;\r\n var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\r\n if (__DEV__) {\r\n var warn = function (attrName) {\r\n console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\r\n };\r\n if (width > decalOpt.maxTileWidth) {\r\n warn('maxTileWidth');\r\n }\r\n if (height > decalOpt.maxTileHeight) {\r\n warn('maxTileHeight');\r\n }\r\n }\r\n return {\r\n width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\r\n height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\r\n };\r\n }\r\n function brushDecal() {\r\n if (ctx) {\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n if (decalOpt.backgroundColor) {\r\n ctx.fillStyle = decalOpt.backgroundColor;\r\n ctx.fillRect(0, 0, canvas.width, canvas.height);\r\n }\r\n }\r\n var ySum = 0;\r\n for (var i = 0; i < dashArrayY.length; ++i) {\r\n ySum += dashArrayY[i];\r\n }\r\n if (ySum <= 0) {\r\n return;\r\n }\r\n var y = -lineBlockLengthY;\r\n var yId = 0;\r\n var yIdTotal = 0;\r\n var xId0 = 0;\r\n while (y < pSize.height) {\r\n if (yId % 2 === 0) {\r\n var symbolYId = (yIdTotal / 2) % symbolArray.length;\r\n var x = 0;\r\n var xId1 = 0;\r\n var xId1Total = 0;\r\n while (x < pSize.width * 2) {\r\n var xSum = 0;\r\n for (var i = 0; i < dashArrayX[xId0].length; ++i) {\r\n xSum += dashArrayX[xId0][i];\r\n }\r\n if (xSum <= 0) {\r\n break;\r\n }\r\n if (xId1 % 2 === 0) {\r\n var size = (1 - decalOpt.symbolSize) * 0.5;\r\n var left = x + dashArrayX[xId0][xId1] * size;\r\n var top_1 = y + dashArrayY[yId] * size;\r\n var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\r\n var height = dashArrayY[yId] * decalOpt.symbolSize;\r\n var symbolXId = (xId1Total / 2) % symbolArray[symbolYId].length;\r\n brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\r\n }\r\n x += dashArrayX[xId0][xId1];\r\n ++xId1Total;\r\n ++xId1;\r\n if (xId1 === dashArrayX[xId0].length) {\r\n xId1 = 0;\r\n }\r\n }\r\n ++xId0;\r\n if (xId0 === dashArrayX.length) {\r\n xId0 = 0;\r\n }\r\n }\r\n y += dashArrayY[yId];\r\n ++yIdTotal;\r\n ++yId;\r\n if (yId === dashArrayY.length) {\r\n yId = 0;\r\n }\r\n }\r\n function brushSymbol(x, y, width, height, symbolType) {\r\n var scale = isSVG ? 1 : dpr;\r\n var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\r\n if (isSVG) {\r\n svgRoot.appendChild(zr.painter.paintOne(symbol));\r\n }\r\n else {\r\n brushSingle(ctx, symbol);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function normalizeSymbolArray(symbol) {\r\n if (!symbol || symbol.length === 0) {\r\n return [['rect']];\r\n }\r\n if (typeof symbol === 'string') {\r\n return [[symbol]];\r\n }\r\n var isAllString = true;\r\n for (var i = 0; i < symbol.length; ++i) {\r\n if (typeof symbol[i] !== 'string') {\r\n isAllString = false;\r\n break;\r\n }\r\n }\r\n if (isAllString) {\r\n return normalizeSymbolArray([symbol]);\r\n }\r\n var result = [];\r\n for (var i = 0; i < symbol.length; ++i) {\r\n if (typeof symbol[i] === 'string') {\r\n result.push([symbol[i]]);\r\n }\r\n else {\r\n result.push(symbol[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n function normalizeDashArrayX(dash) {\r\n if (!dash || dash.length === 0) {\r\n return [[0, 0]];\r\n }\r\n if (typeof dash === 'number') {\r\n var dashValue = Math.ceil(dash);\r\n return [[dashValue, dashValue]];\r\n }\r\n var isAllNumber = true;\r\n for (var i = 0; i < dash.length; ++i) {\r\n if (typeof dash[i] !== 'number') {\r\n isAllNumber = false;\r\n break;\r\n }\r\n }\r\n if (isAllNumber) {\r\n return normalizeDashArrayX([dash]);\r\n }\r\n var result = [];\r\n for (var i = 0; i < dash.length; ++i) {\r\n if (typeof dash[i] === 'number') {\r\n var dashValue = Math.ceil(dash[i]);\r\n result.push([dashValue, dashValue]);\r\n }\r\n else {\r\n var dashValue = map(dash[i], function (n) { return Math.ceil(n); });\r\n if (dashValue.length % 2 === 1) {\r\n result.push(dashValue.concat(dashValue));\r\n }\r\n else {\r\n result.push(dashValue);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function normalizeDashArrayY(dash) {\r\n if (!dash || typeof dash === 'object' && dash.length === 0) {\r\n return [0, 0];\r\n }\r\n if (typeof dash === 'number') {\r\n var dashValue_1 = Math.ceil(dash);\r\n return [dashValue_1, dashValue_1];\r\n }\r\n var dashValue = map(dash, function (n) { return Math.ceil(n); });\r\n return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\r\n }\r\n function getLineBlockLengthX(dash) {\r\n return map(dash, function (line) {\r\n return getLineBlockLengthY(line);\r\n });\r\n }\r\n function getLineBlockLengthY(dash) {\r\n var blockLength = 0;\r\n for (var i = 0; i < dash.length; ++i) {\r\n blockLength += dash[i];\r\n }\r\n if (dash.length % 2 === 1) {\r\n return blockLength * 2;\r\n }\r\n return blockLength;\r\n }\n\n function decalVisual(ecModel, api) {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n if (data.hasItemVisual()) {\r\n data.each(function (idx) {\r\n var decal = data.getItemVisual(idx, 'decal');\r\n if (decal) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\r\n }\r\n });\r\n }\r\n var decal = data.getVisual('decal');\r\n if (decal) {\r\n var style = data.getVisual('style');\r\n style.decal = createOrUpdatePatternFromDecal(decal, api);\r\n }\r\n });\r\n }\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version$1 = '5.0.0';\r\n var dependencies = {\r\n zrender: '5.0.1'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY_VISUAL_ARIA = 6000;\r\n var PRIORITY_VISUAL_DECAL = 7000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\r\n ARIA: PRIORITY_VISUAL_ARIA,\r\n DECAL: PRIORITY_VISUAL_DECAL\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var setTransitionOpt;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var root = (typeof window === 'undefined' ? global : window);\r\n var defaultRenderer = 'canvas';\r\n var defaultUseDirtyRect = false;\r\n if (__DEV__) {\r\n defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\r\n defaultUseDirtyRect = devUseDirtyRect == null\r\n ? defaultUseDirtyRect\r\n : devUseDirtyRect;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height,\r\n useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && globalBackwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n var transitionOpt;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n transitionOpt = notMerge.transition;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n setTransitionOpt(this, transitionOpt);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this.getZr().wakeUp();\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances$1, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '<g transform=\"translate(' + x + ','\r\n + y + ')\">' + item.dom + '</g>';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else {\r\n el && findEventDispatcher(el, function (parent) {\r\n var ecData = getECData(parent);\r\n if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n return true;\r\n }\r\n else if (ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n return true;\r\n }\r\n }, true);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this, this._model);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances$1[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap();\r\n each$3(normalizeToArray(excludeSeriesId), function (id) {\r\n var modelId = convertOptionIdName(id, null);\r\n if (modelId != null) {\r\n excludeSeriesIdMap.set(modelId, true);\r\n }\r\n });\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload, ecIns._api);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, function (target) { return getECData(target).dataIndex != null; }, true);\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n seriesModel.__transientTransitionOpt = null;\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateZ(seriesModel, chartView);\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 2;\r\n }\r\n if (labelLine) {\r\n var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.getModel = function () {\r\n return ecIns.getModel();\r\n };\r\n class_1.prototype.getViewOfComponentModel = function (componentModel) {\r\n return ecIns.getViewOfComponentModel(componentModel);\r\n };\r\n class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return ecIns.getViewOfSeriesModel(seriesModel);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances$1, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n setTransitionOpt = function (chart, transitionOpt) {\r\n var ecModel = chart._model;\r\n each(normalizeToArray(transitionOpt), function (transOpt) {\r\n var errMsg;\r\n var fromOpt = transOpt.from;\r\n var toOpt = transOpt.to;\r\n if (toOpt == null) {\r\n if (__DEV__) {\r\n errMsg = '`transition.to` must be specified.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var finderOpt = {\r\n includeMainTypes: ['series'],\r\n enableAll: false,\r\n enableNone: false\r\n };\r\n var fromResult = fromOpt ? parseFinder(ecModel, fromOpt, finderOpt) : null;\r\n var toResult = parseFinder(ecModel, toOpt, finderOpt);\r\n var toSeries = toResult.seriesModel;\r\n if (toSeries == null) {\r\n errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '`transition` is only supported on series.';\r\n }\r\n }\r\n if (fromResult && fromResult.seriesModel !== toSeries) {\r\n errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\r\n }\r\n }\r\n if (errMsg != null) {\r\n throwError(errMsg);\r\n }\r\n toSeries.__transientTransitionOpt = {\r\n from: fromOpt ? fromOpt.dimension : null,\r\n to: toOpt.dimension,\r\n dividingMethod: transOpt.dividingMethod\r\n };\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postInitFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances$1 = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances$1[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n each$3(postInitFuncs, function (postInitFunc) {\r\n postInitFunc(chart);\r\n });\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose$1(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances$1[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances$1[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances$1[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostInit(postInitFunc) {\r\n postInitFunc && postInitFuncs.push(postInitFunc);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_DECAL, decalVisual);\r\n registerPreprocessor(globalBackwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', defaultLoading);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\r\n return valNumOrArrLengthMoreThan2 == null\r\n ? 0\r\n : (valNumOrArrLengthMoreThan2.length || 1);\r\n }\r\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n this._diffModeMultiple = diffMode === 'multiple';\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.updateManyToOne = function (func) {\r\n this._updateManyToOne = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.updateOneToMany = function (func) {\r\n this._updateOneToMany = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\r\n };\r\n DataDiffer.prototype._executeOneToOne = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = new Array(oldArr.length);\r\n var newDataKeyArr = new Array(newArr.length);\r\n this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (var i = 0; i < oldArr.length; i++) {\r\n var oldKey = oldDataKeyArr[i];\r\n var newIdxMapVal = newDataIndexMap[oldKey];\r\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\r\n if (newIdxMapValLen > 1) {\r\n var newIdx = newIdxMapVal.shift();\r\n if (newIdxMapVal.length === 1) {\r\n newDataIndexMap[oldKey] = newIdxMapVal[0];\r\n }\r\n this._update && this._update(newIdx, i);\r\n }\r\n else if (newIdxMapValLen === 1) {\r\n newDataIndexMap[oldKey] = null;\r\n this._update && this._update(newIdxMapVal, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\r\n };\r\n DataDiffer.prototype._executeMultiple = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (var i = 0; i < oldDataKeyArr.length; i++) {\r\n var oldKey = oldDataKeyArr[i];\r\n var oldIdxMapVal = oldDataIndexMap[oldKey];\r\n var newIdxMapVal = newDataIndexMap[oldKey];\r\n var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\r\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\r\n if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\r\n this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\r\n newDataIndexMap[oldKey] = null;\r\n }\r\n else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\r\n this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\r\n newDataIndexMap[oldKey] = null;\r\n }\r\n else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\r\n this._update && this._update(newIdxMapVal, oldIdxMapVal);\r\n newDataIndexMap[oldKey] = null;\r\n }\r\n else if (oldIdxMapValLen > 1) {\r\n for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\r\n this._remove && this._remove(oldIdxMapVal[i_1]);\r\n }\r\n }\r\n else {\r\n this._remove && this._remove(oldIdxMapVal);\r\n }\r\n }\r\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\r\n };\r\n DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\r\n for (var i = 0; i < newDataKeyArr.length; i++) {\r\n var newKey = newDataKeyArr[i];\r\n var newIdxMapVal = newDataIndexMap[newKey];\r\n var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\r\n if (idxMapValLen > 1) {\r\n for (var j = 0; j < idxMapValLen; j++) {\r\n this._add && this._add(newIdxMapVal[j]);\r\n }\r\n }\r\n else if (idxMapValLen === 1) {\r\n this._add && this._add(newIdxMapVal);\r\n }\r\n newDataIndexMap[newKey] = null;\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n var cbModeMultiple = this._diffModeMultiple;\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n if (!cbModeMultiple) {\r\n keyArr[i] = key;\r\n }\r\n if (!map) {\r\n continue;\r\n }\r\n var idxMapVal = map[key];\r\n var idxMapValLen = dataIndexMapValueLength(idxMapVal);\r\n if (idxMapValLen === 0) {\r\n map[key] = i;\r\n if (cbModeMultiple) {\r\n keyArr.push(key);\r\n }\r\n }\r\n else if (idxMapValLen === 1) {\r\n map[key] = [idxMapVal, i];\r\n }\r\n else {\r\n idxMapVal.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var mathFloor = Math.floor;\r\n var isObject$3 = isObject;\r\n var map$1 = map;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getIndicesCtor;\r\n var prepareStorage;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var getIdNameFromStore;\r\n var makeIdFromName;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._storageArr = [];\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n if (otherDims.itemName === 0) {\r\n this._nameDimIdx = i;\r\n this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\r\n }\r\n if (otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n this._idOrdinalMeta = dimensionInfo.ordinalMeta;\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = isSourceInstance(data) || isArrayLike(data);\r\n var provider = notProvider\r\n ? new DefaultDataProvider(data, this.dimensions.length)\r\n : data;\r\n if (__DEV__) {\r\n assert(notProvider || (isFunction(provider.getItem)\r\n && isFunction(provider.count)), 'Inavlid data provider.');\r\n }\r\n this._rawData = provider;\r\n var sourceFormat = provider.getSource().sourceFormat;\r\n this._storage = {};\r\n this._indices = null;\r\n this._dontMakeIdFromName =\r\n this._idDimIdx != null\r\n || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY\r\n || !!provider.fillStorage;\r\n this._nameList = (nameList || []).slice();\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, provider.count());\r\n if (provider.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end, true);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n prepareStorage(storage, this._dimensionInfos[dim], end, true);\r\n }\r\n var rawExtentArr = map$1(dimensions, function (dim) {\r\n return rawExtent[dim];\r\n });\r\n var storageArr = this._storageArr = map$1(dimensions, function (dim) {\r\n return storage[dim];\r\n });\r\n var emptyDataItem = [];\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\r\n var dim = dimensions[dimIdx];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\r\n storageArr[dimIdx][idx] = val;\r\n var dimRawExtent = rawExtentArr[dimIdx];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n if (!this._dontMakeIdFromName) {\r\n makeIdFromName(this, idx);\r\n }\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end, append) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var sourceFormat = rawData.getSource().sourceFormat;\r\n var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n prepareStorage(storage, dimensionInfoMap[dim], end, append);\r\n }\r\n var storageArr = this._storageArr = map$1(dimensions, function (dim) {\r\n return storage[dim];\r\n });\r\n var rawExtentArr = map$1(dimensions, function (dim) {\r\n return rawExtent[dim];\r\n });\r\n if (rawData.fillStorage) {\r\n rawData.fillStorage(start, end, storageArr, rawExtentArr);\r\n }\r\n else {\r\n var dataItem = [];\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\r\n var dim = dimensions[dimIdx];\r\n var dimStorage = storageArr[dimIdx];\r\n var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\r\n dimStorage[idx] = val;\r\n var dimRawExtent = rawExtentArr[dimIdx];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (isFormatOriginal && !rawData.pure && dataItem) {\r\n var itemName = dataItem.name;\r\n if (nameList[idx] == null && itemName != null) {\r\n nameList[idx] = convertOptionIdName(itemName, null);\r\n }\r\n var itemId = dataItem.id;\r\n if (idList[idx] == null && itemId != null) {\r\n idList[idx] = convertOptionIdName(itemId, null);\r\n }\r\n }\r\n if (!this._dontMakeIdFromName) {\r\n makeIdFromName(this, idx);\r\n }\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.getByDimIdx = function (dimIdx, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storageArr[dimIdx];\r\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n return dimStore ? dimStore[rawIdx] : NaN;\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var rawIdx = this.getRawIndex(i);\r\n var value = dimData[rawIdx];\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var dataIndex = this.getRawIndex(i);\r\n var diff = value - dimData[dataIndex];\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n var name = this._nameList[rawIndex];\r\n if (name == null && this._nameDimIdx != null) {\r\n name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\r\n }\r\n if (name == null) {\r\n name = '';\r\n }\r\n return name;\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n var _this = this;\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map$1(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n var dimIndices = map$1(dimNames, function (dimName) {\r\n return _this._dimensionInfos[dimName].index;\r\n });\r\n var storageArr = this._storageArr;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var rawIdx = this.getRawIndex(i);\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = storageArr[dimIndices[k]][rawIdx];\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n var _this = this;\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map$1(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dimIndices = map$1(dimNames, function (dimName) {\r\n return _this._dimensionInfos[dimName].index;\r\n });\r\n var dim0 = dimIndices[0];\r\n var storageArr = this._storageArr;\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = storageArr[dim0][rawIdx];\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = storageArr[dimIndices[k]][rawIdx];\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n var _this = this;\r\n var len = this._count;\r\n if (!len) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var dimIndices = map$1(dimensions, function (dimName) {\r\n return _this._dimensionInfos[dimName].index;\r\n });\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var storageArr = this._storageArr;\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = storageArr[dimIndices[0]];\r\n for (var i = 0; i < len; i++) {\r\n var val = dimStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = storageArr[dimIndices[0]];\r\n var dimStorage2 = storageArr[dimIndices[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var i = 0; i < len; i++) {\r\n var val = dimStorage[i];\r\n var val2 = dimStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = storageArr[dimIndices[0]][rawIndex];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = storageArr[dimIndices[k]][rawIndex];\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map$1(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n var storage = list._storage;\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var tmpRetValue = [];\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[rawIndex] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = mathFloor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n frameValues[k] = dimStore[dataIdx];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n dimStore[sampleFrameIdx] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.lttbDownSample = function (valueDimension, rate) {\r\n var list = cloneListForMapAndSample(this, []);\r\n var targetStorage = list._storage;\r\n var dimStore = targetStorage[valueDimension];\r\n var len = this.count();\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var sampledIndex = 0;\r\n var frameSize = mathFloor(1 / rate);\r\n var currentRawIndex = this.getRawIndex(0);\r\n var maxArea;\r\n var area;\r\n var nextRawIndex;\r\n newIndices[sampledIndex++] = currentRawIndex;\r\n for (var i = 1; i < len - 1; i += frameSize) {\r\n var nextFrameStart = Math.min(i + frameSize, len - 1);\r\n var nextFrameEnd = Math.min(i + frameSize * 2, len);\r\n var avgX = (nextFrameEnd + nextFrameStart) / 2;\r\n var avgY = 0;\r\n for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\r\n var rawIndex = this.getRawIndex(idx);\r\n var y = dimStore[rawIndex];\r\n if (isNaN(y)) {\r\n continue;\r\n }\r\n avgY += y;\r\n }\r\n avgY /= (nextFrameEnd - nextFrameStart);\r\n var frameStart = i;\r\n var frameEnd = Math.min(i + frameSize, len);\r\n var pointAX = i - 1;\r\n var pointAY = dimStore[currentRawIndex];\r\n maxArea = -1;\r\n nextRawIndex = frameStart;\r\n for (var idx = frameStart; idx < frameEnd; idx++) {\r\n var rawIndex = this.getRawIndex(idx);\r\n var y = dimStore[rawIndex];\r\n if (isNaN(y)) {\r\n continue;\r\n }\r\n area = Math.abs((pointAX - avgX) * (y - pointAY)\r\n - (pointAX - idx) * (avgY - pointAY));\r\n if (area > maxArea) {\r\n maxArea = area;\r\n nextRawIndex = rawIndex;\r\n }\r\n }\r\n newIndices[sampledIndex++] = nextRawIndex;\r\n currentRawIndex = nextRawIndex;\r\n }\r\n newIndices[sampledIndex++] = this.getRawIndex(len - 1);\r\n list._count = sampledIndex;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.hasItemVisual = function () {\r\n return this._itemVisuals.length > 0;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (val == null) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_1 in key) {\r\n if (key.hasOwnProperty(name_1)) {\r\n this.setLayout(name_1, key[name_1]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map$1(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n list._storageArr = this._storageArr;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\r\n var val;\r\n var chunk = list._storageArr[dimIdx];\r\n if (chunk) {\r\n val = chunk[rawIndex];\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n return convertOptionIdName(val, null);\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareStorage = function (storage, dimInfo, end, append) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var dim = dimInfo.name;\r\n if (append) {\r\n var oldStore = storage[dim];\r\n var oldLen = oldStore && oldStore.length;\r\n if (!(oldLen === end)) {\r\n var newStore = new DataCtor(end);\r\n for (var j = 0; j < oldLen; j++) {\r\n newStore[j] = oldStore[j];\r\n }\r\n storage[dim] = newStore;\r\n }\r\n }\r\n else {\r\n storage[dim] = new DataCtor(end);\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null && list._idDimIdx != null) {\r\n id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = dimensions != null ? [dimensions] : [];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map$1(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n var storageArr = list._storageArr = [];\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneChunk(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n storageArr.push(storage[dim]);\r\n }\r\n }\r\n return list;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n makeIdFromName = function (list, idx) {\r\n var nameList = list._nameList;\r\n var idList = list._idList;\r\n var nameDimIdx = list._nameDimIdx;\r\n var idDimIdx = list._idDimIdx;\r\n var name = nameList[idx];\r\n var id = idList[idx];\r\n if (name == null && nameDimIdx != null) {\r\n nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\r\n }\r\n if (id == null && idDimIdx != null) {\r\n idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\r\n }\r\n if (id == null && name != null) {\r\n var nameRepeatCount = list._nameRepeatCount;\r\n var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\r\n id = name;\r\n if (nmCnt > 1) {\r\n id += '__ec__' + nmCnt;\r\n }\r\n idList[idx] = id;\r\n }\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!isSourceInstance(source)) {\r\n source = createSourceFromSeriesDataOption(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions(source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel)) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n if (result.firstCategoryDimIndex == null) {\r\n result.firstCategoryDimIndex = index;\r\n }\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!isSourceInstance(source)) {\r\n source = createSourceFromSeriesDataOption(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta) {\r\n ordinalMeta = new OrdinalMeta({});\r\n }\r\n if (isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({\r\n categories: map(ordinalMeta, function (item) { return (isObject(item) ? item.value : item); })\r\n });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale(settings) {\r\n var _this = _super.call(this, settings) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return typeof val === 'number' ? val : +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor$1 = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor$1(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians))\r\n + Math.abs(beforeHeight * Math.sin(rotateRadians));\r\n var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians))\r\n + Math.abs(beforeHeight * Math.cos(rotateRadians));\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n function createList(seriesModel) {\r\n return createListFromArray(seriesModel.getSource(), seriesModel);\r\n }\r\n var dataStack$1 = {\r\n isDimensionStacked: isDimensionStacked,\r\n enableDataStack: enableDataStack,\r\n getStackedDimension: getStackedDimension\r\n };\r\n function createScale(dataExtent, option) {\r\n var axisModel = option;\r\n if (!(option instanceof Model)) {\r\n axisModel = new Model(option);\r\n }\r\n var scale = createScaleByModel(axisModel);\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n niceScaleExtent(scale, axisModel);\r\n return scale;\r\n }\r\n function mixinAxisModelCommonMethods(Model) {\r\n mixin(Model, AxisModelCommonMixin);\r\n }\n\n var helper = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createList: createList,\n getLayoutRect: getLayoutRect,\n dataStack: dataStack$1,\n createScale: createScale,\n mixinAxisModelCommonMethods: mixinAxisModelCommonMethods,\n getECData: getECData,\n createDimensions: createDimensions,\n createSymbol: createSymbol\n });\n\n var EPSILON$3 = 1e-8;\r\n function isAroundEqual$1(a, b) {\r\n return Math.abs(a - b) < EPSILON$3;\r\n }\r\n function contain$2(points, x, y) {\r\n var w = 0;\r\n var p = points[0];\r\n if (!p) {\r\n return false;\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n var p2 = points[i];\r\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\r\n p = p2;\r\n }\r\n var p0 = points[0];\r\n if (!isAroundEqual$1(p[0], p0[0]) || !isAroundEqual$1(p[1], p0[1])) {\r\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\r\n }\r\n return w !== 0;\r\n }\n\n var Region = (function () {\r\n function Region(name, geometries, cp) {\r\n this.name = name;\r\n this.geometries = geometries;\r\n if (!cp) {\r\n var rect = this.getBoundingRect();\r\n cp = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n else {\r\n cp = [cp[0], cp[1]];\r\n }\r\n this.center = cp;\r\n }\r\n Region.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n if (rect) {\r\n return rect;\r\n }\r\n var MAX_NUMBER = Number.MAX_VALUE;\r\n var min$1 = [MAX_NUMBER, MAX_NUMBER];\r\n var max$1 = [-MAX_NUMBER, -MAX_NUMBER];\r\n var min2 = [];\r\n var max2 = [];\r\n var geometries = this.geometries;\r\n var i = 0;\r\n for (; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n fromPoints(exterior, min2, max2);\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return (this._rect = new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]));\r\n };\r\n Region.prototype.contain = function (coord) {\r\n var rect = this.getBoundingRect();\r\n var geometries = this.geometries;\r\n if (!rect.contain(coord[0], coord[1])) {\r\n return false;\r\n }\r\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n if (contain$2(exterior, coord[0], coord[1])) {\r\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\r\n if (contain$2(interiors[k], coord[0], coord[1])) {\r\n continue loopGeo;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Region.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var aspect = rect.width / rect.height;\r\n if (!width) {\r\n width = aspect * height;\r\n }\r\n else if (!height) {\r\n height = width / aspect;\r\n }\r\n var target = new BoundingRect(x, y, width, height);\r\n var transform = rect.calculateTransform(target);\r\n var geometries = this.geometries;\r\n for (var i = 0; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n for (var p = 0; p < exterior.length; p++) {\r\n applyTransform(exterior[p], exterior[p], transform);\r\n }\r\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\r\n for (var p = 0; p < interiors[h].length; p++) {\r\n applyTransform(interiors[h][p], interiors[h][p], transform);\r\n }\r\n }\r\n }\r\n rect = this._rect;\r\n rect.copy(target);\r\n this.center = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n };\r\n Region.prototype.cloneShallow = function (name) {\r\n name == null && (name = this.name);\r\n var newRegion = new Region(name, this.geometries, this.center);\r\n newRegion._rect = this._rect;\r\n newRegion.transformTo = null;\r\n return newRegion;\r\n };\r\n return Region;\r\n }());\n\n function decode(json) {\r\n if (!json.UTF8Encoding) {\r\n return json;\r\n }\r\n var jsonCompressed = json;\r\n var encodeScale = jsonCompressed.UTF8Scale;\r\n if (encodeScale == null) {\r\n encodeScale = 1024;\r\n }\r\n var features = jsonCompressed.features;\r\n for (var f = 0; f < features.length; f++) {\r\n var feature = features[f];\r\n var geometry = feature.geometry;\r\n if (geometry.type === 'Polygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\r\n }\r\n }\r\n else if (geometry.type === 'MultiPolygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n var coordinate = coordinates[c];\r\n for (var c2 = 0; c2 < coordinate.length; c2++) {\r\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\r\n }\r\n }\r\n }\r\n }\r\n jsonCompressed.UTF8Encoding = false;\r\n return jsonCompressed;\r\n }\r\n function decodePolygon(coordinate, encodeOffsets, encodeScale) {\r\n var result = [];\r\n var prevX = encodeOffsets[0];\r\n var prevY = encodeOffsets[1];\r\n for (var i = 0; i < coordinate.length; i += 2) {\r\n var x = coordinate.charCodeAt(i) - 64;\r\n var y = coordinate.charCodeAt(i + 1) - 64;\r\n x = (x >> 1) ^ (-(x & 1));\r\n y = (y >> 1) ^ (-(y & 1));\r\n x += prevX;\r\n y += prevY;\r\n prevX = x;\r\n prevY = y;\r\n result.push([x / encodeScale, y / encodeScale]);\r\n }\r\n return result;\r\n }\r\n function parseGeoJSON(geoJson, nameProperty) {\r\n geoJson = decode(geoJson);\r\n return map(filter(geoJson.features, function (featureObj) {\r\n return featureObj.geometry\r\n && featureObj.properties\r\n && featureObj.geometry.coordinates.length > 0;\r\n }), function (featureObj) {\r\n var properties = featureObj.properties;\r\n var geo = featureObj.geometry;\r\n var geometries = [];\r\n if (geo.type === 'Polygon') {\r\n var coordinates = geo.coordinates;\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: coordinates[0],\r\n interiors: coordinates.slice(1)\r\n });\r\n }\r\n if (geo.type === 'MultiPolygon') {\r\n var coordinates = geo.coordinates;\r\n each(coordinates, function (item) {\r\n if (item[0]) {\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: item[0],\r\n interiors: item.slice(1)\r\n });\r\n }\r\n });\r\n }\r\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\r\n region.properties = properties;\r\n return region;\r\n });\r\n }\n\n var inner$4 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$4(axis)[prop] || (inner$4(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$4(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$4(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$4(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var parseGeoJson = parseGeoJSON;\r\n var number = {};\r\n each([\r\n 'linearMap',\r\n 'round',\r\n 'asc',\r\n 'getPrecision',\r\n 'getPrecisionSafe',\r\n 'getPixelPrecision',\r\n 'getPercentWithPrecision',\r\n 'MAX_SAFE_INTEGER',\r\n 'remRadian',\r\n 'isRadianAroundZero',\r\n 'parseDate',\r\n 'quantity',\r\n 'quantityExponent',\r\n 'nice',\r\n 'quantile',\r\n 'reformIntervals',\r\n 'isNumeric',\r\n 'numericToNumber'\r\n ], function (name) {\r\n number[name] = numberUtil[name];\r\n });\r\n var format$1 = {};\r\n each([\r\n 'addCommas',\r\n 'toCamelCase',\r\n 'normalizeCssArray',\r\n 'encodeHTML',\r\n 'formatTpl',\r\n 'getTooltipMarker',\r\n 'formatTime',\r\n 'capitalFirst',\r\n 'truncateText',\r\n 'getTextRect'\r\n ], function (name) {\r\n format$1[name] = formatUtil[name];\r\n });\r\n var time = {\r\n parse: parseDate,\r\n format: format\r\n };\r\n var ecUtil = {};\r\n each([\r\n 'map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter',\r\n 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction',\r\n 'extend', 'defaults', 'clone', 'merge'\r\n ], function (name) {\r\n ecUtil[name] = zrUtil[name];\r\n });\r\n var GRAPHIC_KEYS = [\r\n 'extendShape', 'extendPath', 'makePath', 'makeImage',\r\n 'mergePath', 'resizePath', 'createIcon',\r\n 'updateProps', 'initProps', 'getTransform',\r\n 'clipPointsByRect', 'clipRectByRect',\r\n 'registerShape', 'getShapeClass',\r\n 'Group',\r\n 'Image',\r\n 'Text',\r\n 'Circle',\r\n 'Ellipse',\r\n 'Sector',\r\n 'Ring',\r\n 'Polygon',\r\n 'Polyline',\r\n 'Rect',\r\n 'Line',\r\n 'BezierCurve',\r\n 'Arc',\r\n 'IncrementalDisplayable',\r\n 'CompoundPath',\r\n 'LinearGradient',\r\n 'RadialGradient',\r\n 'BoundingRect'\r\n ];\r\n var graphic$1 = {};\r\n each(GRAPHIC_KEYS, function (name) {\r\n graphic$1[name] = graphic[name];\r\n });\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 3,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n endLabel: {\r\n show: false,\r\n valueAnimation: true,\r\n distance: 8\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n function getDefaultLabel(data, dataIndex) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return retrieveRawValue(data, dataIndex, labelDims[0]);\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\r\n }\r\n return vals.join(' ');\r\n }\r\n }\r\n function getDefaultInterpolatedLabel(data, interpolatedValue) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n if (!isArray(interpolatedValue)) {\r\n return interpolatedValue + '';\r\n }\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var dimInfo = data.getDimensionInfo(labelDims[i]);\r\n if (dimInfo) {\r\n vals.push(interpolatedValue[dimInfo.index]);\r\n }\r\n }\r\n return vals.join(' ');\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n var disableAnimation = opts && opts.disableAnimation;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n var target = {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n };\r\n disableAnimation ? symbolPath.attr(target)\r\n : updateProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n if (!disableAnimation) {\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n }\r\n if (disableAnimation) {\r\n this.childAt(0).stopAnimation('remove');\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.style.decal = null;\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor,\r\n defaultOpacity: symbolStyle.opacity\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n var emphasisState = symbolPath.ensureState('emphasis');\r\n emphasisState.style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n var scaleRatio = Math.max(1.1, 3 / this._sizeY);\r\n emphasisState.scaleX = this._sizeX * scaleRatio;\r\n emphasisState.scaleY = this._sizeY * scaleRatio;\r\n }\r\n this.setSymbolScale(1);\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = this._seriesModel;\r\n var dataIndex = getECData(this).dataIndex;\r\n var animationOpt = opt && opt.animation;\r\n this.silent = symbolPath.silent = true;\r\n if (opt && opt.fadeLabel) {\r\n var textContent = symbolPath.getTextContent();\r\n if (textContent) {\r\n removeElement(textContent, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, {\r\n dataIndex: dataIndex,\r\n removeOpt: animationOpt,\r\n cb: function () {\r\n symbolPath.removeTextContent();\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n symbolPath.removeTextContent();\r\n }\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, seriesModel, { dataIndex: dataIndex, cb: cb, removeOpt: animationOpt });\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var disableAnimation = opt.disableAnimation;\r\n var seriesScope = makeSeriesScope(data);\r\n var symbolUpdateOpt = { disableAnimation: disableAnimation };\r\n var getSymbolPoint = opt.getSymbolPoint || function (idx) {\r\n return data.getItemLayout(idx);\r\n };\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = getSymbolPoint(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = getSymbolPoint(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\r\n var target = {\r\n x: point[0],\r\n y: point[1]\r\n };\r\n disableAnimation\r\n ? symbolEl.attr(target)\r\n : updateProps(symbolEl, target, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._getSymbolPoint = getSymbolPoint;\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var _this = this;\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = _this._getSymbolPoint(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n var supportFloat32Array = typeof Float32Array !== 'undefined';\r\n var Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\r\n function createFloat32Array(arg) {\r\n if (isArray(arg)) {\r\n return supportFloat32Array ? new Float32Array(arg) : arg;\r\n }\r\n return new Float32ArrayCtor(arg);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n var oldPoints = oldData.getLayout('points') || [];\r\n var newPoints = newData.getLayout('points') || [];\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n var oldIdx2 = void 0;\r\n var newIdx2 = void 0;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n oldIdx2 = diffItem.idx * 2;\r\n newIdx2 = diffItem.idx1 * 2;\r\n var currentX = oldPoints[oldIdx2];\r\n var currentY = oldPoints[oldIdx2 + 1];\r\n var nextX = newPoints[newIdx2];\r\n var nextY = newPoints[newIdx2 + 1];\r\n if (isNaN(currentX) || isNaN(currentY)) {\r\n currentX = nextX;\r\n currentY = nextY;\r\n }\r\n currPoints.push(currentX, currentY);\r\n nextPoints.push(nextX, nextY);\r\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\r\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var newIdx = diffItem.idx;\r\n var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\r\n var oldPt = oldCoordSys.dataToPoint([\r\n newData.get(newDataDimsForPoint[0], newIdx),\r\n newData.get(newDataDimsForPoint[1], newIdx)\r\n ]);\r\n newIdx2 = newIdx * 2;\r\n currPoints.push(oldPt[0], oldPt[1]);\r\n nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\r\n var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\r\n currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\r\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\r\n rawIndices.push(newData.getRawIndex(newIdx));\r\n break;\r\n case '-':\r\n var oldIdx = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(oldIdx);\r\n var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\r\n oldIdx2 = oldIdx * 2;\r\n if (rawIndex !== oldIdx) {\r\n var newPt = newCoordSys.dataToPoint([\r\n oldData.get(oldDataDimsForPoint[0], oldIdx),\r\n oldData.get(oldDataDimsForPoint[1], oldIdx)\r\n ]);\r\n var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\r\n currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\r\n nextPoints.push(newPt[0], newPt[1]);\r\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\r\n nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var len = currPoints.length;\r\n var sortedCurrPoints = createFloat32Array(len);\r\n var sortedNextPoints = createFloat32Array(len);\r\n var sortedCurrStackedPoints = createFloat32Array(len);\r\n var sortedNextStackedPoints = createFloat32Array(len);\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n var i2 = i * 2;\r\n var idx2 = idx * 2;\r\n sortedCurrPoints[i2] = currPoints[idx2];\r\n sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\r\n sortedNextPoints[i2] = nextPoints[idx2];\r\n sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\r\n sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\r\n sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\r\n sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\r\n sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var mathMin$5 = Math.min;\r\n var mathMax$5 = Math.max;\r\n function isPointNull(x, y) {\r\n return isNaN(x) || isNaN(y);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\r\n var prevX;\r\n var prevY;\r\n var cpx0;\r\n var cpy0;\r\n var cpx1;\r\n var cpy1;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var x = points[idx * 2];\r\n var y = points[idx * 2 + 1];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(x, y)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\r\n cpx0 = x;\r\n cpy0 = y;\r\n }\r\n else {\r\n var dx = x - prevX;\r\n var dy = y - prevY;\r\n if ((dx * dx + dy * dy) < 0.5) {\r\n idx += dir;\r\n continue;\r\n }\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextX = points[nextIdx * 2];\r\n var nextY = points[nextIdx * 2 + 1];\r\n var tmpK = k + 1;\r\n if (connectNulls) {\r\n while (isPointNull(nextX, nextY) && tmpK < segLen) {\r\n tmpK++;\r\n nextIdx += dir;\r\n nextX = points[nextIdx * 2];\r\n nextY = points[nextIdx * 2 + 1];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var vx = 0;\r\n var vy = 0;\r\n var nextCpx0 = void 0;\r\n var nextCpy0 = void 0;\r\n if (tmpK >= segLen || isPointNull(nextX, nextY)) {\r\n cpx1 = x;\r\n cpy1 = y;\r\n }\r\n else {\r\n vx = nextX - prevX;\r\n vy = nextY - prevY;\r\n var dx0 = x - prevX;\r\n var dx1 = nextX - x;\r\n var dy0 = y - prevY;\r\n var dy1 = nextY - y;\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x') {\r\n lenPrevSeg = Math.abs(dx0);\r\n lenNextSeg = Math.abs(dx1);\r\n cpx1 = x - lenPrevSeg * smooth;\r\n cpy1 = y;\r\n nextCpx0 = x + lenPrevSeg * smooth;\r\n nextCpy0 = y;\r\n }\r\n else if (smoothMonotone === 'y') {\r\n lenPrevSeg = Math.abs(dy0);\r\n lenNextSeg = Math.abs(dy1);\r\n cpx1 = x;\r\n cpy1 = y - lenPrevSeg * smooth;\r\n nextCpx0 = x;\r\n nextCpy0 = y + lenPrevSeg * smooth;\r\n }\r\n else {\r\n lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\r\n lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n cpx1 = x - vx * smooth * (1 - ratioNextSeg);\r\n cpy1 = y - vy * smooth * (1 - ratioNextSeg);\r\n nextCpx0 = x + vx * smooth * ratioNextSeg;\r\n nextCpy0 = y + vy * smooth * ratioNextSeg;\r\n nextCpx0 = mathMin$5(nextCpx0, mathMax$5(nextX, x));\r\n nextCpy0 = mathMin$5(nextCpy0, mathMax$5(nextY, y));\r\n nextCpx0 = mathMax$5(nextCpx0, mathMin$5(nextX, x));\r\n nextCpy0 = mathMax$5(nextCpy0, mathMin$5(nextY, y));\r\n vx = nextCpx0 - x;\r\n vy = nextCpy0 - y;\r\n cpx1 = x - vx * lenPrevSeg / lenNextSeg;\r\n cpy1 = y - vy * lenPrevSeg / lenNextSeg;\r\n cpx1 = mathMin$5(cpx1, mathMax$5(prevX, x));\r\n cpy1 = mathMin$5(cpy1, mathMax$5(prevY, y));\r\n cpx1 = mathMax$5(cpx1, mathMin$5(prevX, x));\r\n cpy1 = mathMax$5(cpy1, mathMin$5(prevY, y));\r\n vx = x - cpx1;\r\n vy = y - cpy1;\r\n nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\r\n nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\r\n }\r\n }\r\n ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\r\n cpx0 = nextCpx0;\r\n cpy0 = nextCpy0;\r\n }\r\n else {\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n prevX = x;\r\n prevY = y;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length / 2;\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n ECPolyline.prototype.getPointOn = function (xOrY, dim) {\r\n if (!this.path) {\r\n this.createPathProxy();\r\n this.buildPath(this.path, this.shape);\r\n }\r\n var path = this.path;\r\n var data = path.data;\r\n var CMD = PathProxy.CMD;\r\n var x0;\r\n var y0;\r\n var isDimX = dim === 'x';\r\n var roots = [];\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n var x = void 0;\r\n var y = void 0;\r\n var x2 = void 0;\r\n var y2 = void 0;\r\n var x3 = void 0;\r\n var y3 = void 0;\r\n var t = void 0;\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n break;\r\n case CMD.L:\r\n x = data[i++];\r\n y = data[i++];\r\n t = isDimX ? (xOrY - x0) / (x - x0)\r\n : (xOrY - y0) / (y - y0);\r\n if (t <= 1 && t >= 0) {\r\n var val = isDimX ? (y - y0) * t + y0\r\n : (x - x0) * t + x0;\r\n return isDimX ? [xOrY, val] : [val, xOrY];\r\n }\r\n x0 = x;\r\n y0 = y;\r\n break;\r\n case CMD.C:\r\n x = data[i++];\r\n y = data[i++];\r\n x2 = data[i++];\r\n y2 = data[i++];\r\n x3 = data[i++];\r\n y3 = data[i++];\r\n var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots)\r\n : cubicRootAt(y0, y, y2, y3, xOrY, roots);\r\n if (nRoot > 0) {\r\n for (var i_1 = 0; i_1 < nRoot; i_1++) {\r\n var t_1 = roots[i_1];\r\n if (t_1 <= 1 && t_1 >= 0) {\r\n var val = isDimX ? cubicAt(y0, y, y2, y3, t_1)\r\n : cubicAt(x0, x, x2, x3, t_1);\r\n return isDimX ? [xOrY, val] : [val, xOrY];\r\n }\r\n }\r\n }\r\n x0 = x3;\r\n y0 = y3;\r\n break;\r\n }\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length / 2;\r\n var smoothMonotone = shape.smoothMonotone;\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\r\n var rect = cartesian.getArea();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n var baseAxis = cartesian.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var isAxisInversed = baseAxis.inverse;\r\n if (isHorizontal) {\r\n if (isAxisInversed) {\r\n clipPath.shape.x += width;\r\n }\r\n clipPath.shape.width = 0;\r\n }\r\n else {\r\n if (!isAxisInversed) {\r\n clipPath.shape.y += height;\r\n }\r\n clipPath.shape.height = 0;\r\n }\r\n var duringCb = typeof during === 'function'\r\n ? function (percent) {\r\n during(percent, clipPath);\r\n }\r\n : null;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height,\r\n x: x,\r\n y: y\r\n }\r\n }, seriesModel, null, done, duringCb);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var r0 = round$1(sectorArea.r0, 1);\r\n var r = round$1(sectorArea.r, 1);\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: r0,\r\n r: r,\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n var isRadial = polar.getBaseAxis().dim === 'angle';\r\n if (isRadial) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n }\r\n else {\r\n clipPath.shape.r = r0;\r\n }\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle,\r\n r: r\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\r\n }\r\n return null;\r\n }\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n if (points1[i] !== points2[i]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function bboxFromPoints(points) {\r\n var minX = Infinity;\r\n var minY = Infinity;\r\n var maxX = -Infinity;\r\n var maxY = -Infinity;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (!isNaN(x)) {\r\n minX = Math.min(x, minX);\r\n maxX = Math.max(x, maxX);\r\n }\r\n if (!isNaN(y)) {\r\n minY = Math.min(y, minY);\r\n maxY = Math.max(y, maxY);\r\n }\r\n }\r\n return [\r\n [minX, minY],\r\n [maxX, maxY]\r\n ];\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var _a = bboxFromPoints(points1), min1 = _a[0], max1 = _a[1];\r\n var _b = bboxFromPoints(points2), min2 = _b[0], max2 = _b[1];\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var len = data.count();\r\n var points = createFloat32Array(len * 2);\r\n for (var idx = 0; idx < len; idx++) {\r\n var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\r\n points[idx * 2] = pt[0];\r\n points[idx * 2 + 1] = pt[1];\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n var stepPt = [];\r\n var pt = [];\r\n var nextPt = [];\r\n for (; i < points.length - 2; i += 2) {\r\n nextPt[0] = points[i + 2];\r\n nextPt[1] = points[i + 3];\r\n pt[0] = points[i];\r\n pt[1] = points[i + 1];\r\n stepPoints.push(pt[0], pt[1]);\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt[0], stepPt[1]);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt[0], stepPt[1]);\r\n stepPoints.push(stepPt2[0], stepPt2[1]);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt[0], stepPt[1]);\r\n }\r\n }\r\n stepPoints.push(points[i++], points[i++]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function isPointNull$1(x, y) {\r\n return isNaN(x) || isNaN(y);\r\n }\r\n function getLastIndexNotNull(points) {\r\n var len = points.length / 2;\r\n for (; len > 0; len--) {\r\n if (!isPointNull$1(points[len * 2 - 2], points[len * 2 - 1])) {\r\n break;\r\n }\r\n }\r\n return len - 1;\r\n }\r\n function getPointAtIndex(points, idx) {\r\n return [points[idx * 2], points[idx * 2 + 1]];\r\n }\r\n function getIndexRange(points, xOrY, dim) {\r\n var len = points.length / 2;\r\n var dimIdx = dim === 'x' ? 0 : 1;\r\n var a;\r\n var b;\r\n var prevIndex = 0;\r\n var nextIndex = -1;\r\n for (var i = 0; i < len; i++) {\r\n b = points[i * 2 + dimIdx];\r\n if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\r\n continue;\r\n }\r\n if (i === 0) {\r\n a = b;\r\n continue;\r\n }\r\n if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\r\n nextIndex = i;\r\n break;\r\n }\r\n prevIndex = i;\r\n a = b;\r\n }\r\n return {\r\n range: [prevIndex, nextIndex],\r\n t: (xOrY - a) / (b - a)\r\n };\r\n }\r\n function createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var endLabelModel_1 = seriesModel.getModel('endLabel');\r\n var showEndLabel = endLabelModel_1.get('show');\r\n var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\r\n var data_1 = seriesModel.getData();\r\n var labelAnimationRecord_1 = { lastFrameIndex: 0 };\r\n var during = showEndLabel\r\n ? function (percent, clipRect) {\r\n lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\r\n }\r\n : null;\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\r\n var endLabel = lineView._endLabel;\r\n if (endLabel && hasAnimation) {\r\n if (labelAnimationRecord_1.originalX != null) {\r\n endLabel.attr({\r\n x: labelAnimationRecord_1.originalX,\r\n y: labelAnimationRecord_1.originalY\r\n });\r\n }\r\n }\r\n }, during);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n if (during) {\r\n during(1, clipPath);\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n if (__DEV__) {\r\n if (seriesModel.get(['endLabel', 'show'])) {\r\n console.warn('endLabel is not supported for lines in polar systems.');\r\n }\r\n }\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n function getEndLabelStateSpecified(endLabelModel, coordSys) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var isBaseInversed = baseAxis.inverse;\r\n var align = isHorizontal\r\n ? isBaseInversed ? 'right' : 'left'\r\n : 'center';\r\n var verticalAlign = isHorizontal\r\n ? 'middle'\r\n : (isBaseInversed ? 'top' : 'bottom');\r\n return {\r\n normal: {\r\n align: endLabelModel.get('align') || align,\r\n verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign,\r\n padding: endLabelModel.get('distance') || 0\r\n }\r\n };\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.getLayout('points') || [];\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol,\r\n disableAnimation: true,\r\n getSymbolPoint: function (idx) {\r\n return [points[idx * 2], points[idx * 2 + 1]];\r\n }\r\n });\r\n hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n if (stackedOnPoints) {\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n if (!isCoordSysPolar) {\r\n this._initOrUpdateEndLabel(seriesModel, coordSys);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n if (!isCoordSysPolar) {\r\n this._initOrUpdateEndLabel(seriesModel, coordSys);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol,\r\n disableAnimation: true,\r\n getSymbolPoint: function (idx) {\r\n return [points[idx * 2], points[idx * 2 + 1]];\r\n }\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n if (stackedOnPoints) {\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n var smoothMonotone = seriesModel.get('smoothMonotone');\r\n var connectNulls = seriesModel.get('connectNulls');\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: smoothMonotone,\r\n connectNulls: connectNulls\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel',\r\n decal: data.getVisual('style').decal\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: smoothMonotone,\r\n connectNulls: connectNulls\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._polyline.onHoverStateChange = changePolyState;\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var points = data.getLayout('points');\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var x = points[dataIndex * 2];\r\n var y = points[dataIndex * 2 + 1];\r\n if (isNaN(x) || isNaN(y)) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.x = x;\r\n symbol.y = y;\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\r\n var isHorizontalOrRadial;\r\n var isCoordSysPolar;\r\n var baseAxis = coordSys.getBaseAxis();\r\n var isAxisInverse = baseAxis.inverse;\r\n if (coordSys.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n isCoordSysPolar = false;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n isCoordSysPolar = true;\r\n }\r\n var seriesModel = data.hostModel;\r\n var seriesDuration = seriesModel.get('animationDuration');\r\n if (typeof seriesDuration === 'function') {\r\n seriesDuration = seriesDuration(null);\r\n }\r\n var seriesDalay = seriesModel.get('animationDelay') || 0;\r\n var seriesDalayValue = typeof seriesDalay === 'function'\r\n ? seriesDalay(null)\r\n : seriesDalay;\r\n data.eachItemGraphicEl(function (symbol, idx) {\r\n var el = symbol;\r\n if (el) {\r\n var point = [symbol.x, symbol.y];\r\n var start = void 0;\r\n var end = void 0;\r\n var current = void 0;\r\n if (isCoordSysPolar) {\r\n var polarClip = clipShape;\r\n var coord = coordSys.pointToCoord(point);\r\n if (isHorizontalOrRadial) {\r\n start = polarClip.startAngle;\r\n end = polarClip.endAngle;\r\n current = -coord[1] / 180 * Math.PI;\r\n }\r\n else {\r\n start = polarClip.r0;\r\n end = polarClip.r;\r\n current = coord[0];\r\n }\r\n }\r\n else {\r\n var gridClip = clipShape;\r\n if (isHorizontalOrRadial) {\r\n start = gridClip.x;\r\n end = gridClip.x + gridClip.width;\r\n current = symbol.x;\r\n }\r\n else {\r\n start = gridClip.y + gridClip.height;\r\n end = gridClip.y;\r\n current = symbol.y;\r\n }\r\n }\r\n var ratio = end === start ? 0 : (current - start) / (end - start);\r\n if (isAxisInverse) {\r\n ratio = 1 - ratio;\r\n }\r\n var delay = typeof seriesDalay === 'function' ? seriesDalay(idx)\r\n : (seriesDuration * ratio) + seriesDalayValue;\r\n var symbolPath = el.getSymbolPath();\r\n var text = symbolPath.getTextContent();\r\n el.attr({ scaleX: 0, scaleY: 0 });\r\n el.animateTo({\r\n scaleX: 1,\r\n scaleY: 1\r\n }, {\r\n duration: 200,\r\n delay: delay\r\n });\r\n if (text) {\r\n text.animateFrom({\r\n style: {\r\n opacity: 0\r\n }\r\n }, {\r\n duration: 300,\r\n delay: delay\r\n });\r\n }\r\n symbolPath.disableLabelAnimation = true;\r\n }\r\n });\r\n };\r\n LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\r\n var endLabelModel = seriesModel.getModel('endLabel');\r\n if (endLabelModel.get('show')) {\r\n var data_2 = seriesModel.getData();\r\n var polyline = this._polyline;\r\n var endLabel = this._endLabel;\r\n if (!endLabel) {\r\n endLabel = this._endLabel = new ZRText({\r\n z2: 200\r\n });\r\n endLabel.ignoreClip = true;\r\n polyline.setTextContent(this._endLabel);\r\n polyline.disableLabelAnimation = true;\r\n }\r\n var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\r\n if (dataIndex >= 0) {\r\n setLabelStyle(endLabel, getLabelStatesModels(seriesModel, 'endLabel'), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: function (dataIndex, opt, overrideValue) {\r\n return overrideValue ? getDefaultInterpolatedLabel(data_2, overrideValue)\r\n : getDefaultLabel(data_2, dataIndex);\r\n },\r\n enableTextSetter: true\r\n }, getEndLabelStateSpecified(endLabelModel, coordSys));\r\n }\r\n }\r\n else if (this._endLabel) {\r\n this._polyline.removeTextContent();\r\n this._endLabel = null;\r\n }\r\n };\r\n LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\r\n var endLabel = this._endLabel;\r\n var polyline = this._polyline;\r\n if (endLabel) {\r\n if (percent < 1 && animationRecord.originalX == null) {\r\n animationRecord.originalX = endLabel.x;\r\n animationRecord.originalY = endLabel.y;\r\n }\r\n var points = data.getLayout('points');\r\n var seriesModel = data.hostModel;\r\n var connectNulls = seriesModel.get('connectNulls');\r\n var precision = endLabelModel.get('precision');\r\n var baseAxis = coordSys.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var isBaseInversed = baseAxis.inverse;\r\n var clipShape = clipRect.shape;\r\n var xOrY = isBaseInversed\r\n ? isHorizontal ? clipShape.x : (clipShape.y + clipShape.height)\r\n : isHorizontal ? (clipShape.x + clipShape.width) : clipShape.y;\r\n var dim = isHorizontal ? 'x' : 'y';\r\n var dataIndexRange = getIndexRange(points, xOrY, dim);\r\n var indices = dataIndexRange.range;\r\n var diff = indices[1] - indices[0];\r\n var value = void 0;\r\n if (diff >= 1) {\r\n if (diff > 1 && !connectNulls) {\r\n var pt = getPointAtIndex(points, indices[0]);\r\n endLabel.attr({ x: pt[0], y: pt[1] });\r\n valueAnimation && (value = seriesModel.getRawValue(indices[0]));\r\n }\r\n else {\r\n var pt = polyline.getPointOn(xOrY, dim);\r\n pt && endLabel.attr({ x: pt[0], y: pt[1] });\r\n var startValue = seriesModel.getRawValue(indices[0]);\r\n var endValue = seriesModel.getRawValue(indices[1]);\r\n valueAnimation && (value = interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\r\n }\r\n animationRecord.lastFrameIndex = indices[0];\r\n }\r\n else {\r\n var idx = (percent === 1 || animationRecord.lastFrameIndex > 0) ? indices[0] : 0;\r\n var pt = getPointAtIndex(points, idx);\r\n valueAnimation && (value = seriesModel.getRawValue(idx));\r\n endLabel.attr({ x: pt[0], y: pt[1] });\r\n }\r\n if (valueAnimation) {\r\n labelInner(endLabel).setLabelText(value);\r\n }\r\n }\r\n };\r\n LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n var target = {\r\n shape: {\r\n points: next\r\n }\r\n };\r\n if (diff.current !== current) {\r\n target.shape.__points = diff.next;\r\n }\r\n polyline.stopAnimation();\r\n updateProps(polyline, target, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n polygon && polygon.dirtyShape();\r\n var points = polyline.shape.__points;\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n var offset = updatedDataInfo[i].ptIdx * 2;\r\n el.x = points[offset];\r\n el.y = points[offset + 1];\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._endLabel =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function pointsLayout(seriesType, forceStoreInTypedArray) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n var dimInfo0 = data.getDimensionInfo(dims[0]);\r\n var dimInfo1 = data.getDimensionInfo(dims[1]);\r\n var dimIdx0 = dimInfo0 && dimInfo0.index;\r\n var dimIdx1 = dimInfo1 && dimInfo1.index;\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = useTypedArray && createFloat32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.getByDimIdx(dimIdx0, i);\r\n point = coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n tmpIn[0] = data.getByDimIdx(dimIdx0, i);\r\n tmpIn[1] = data.getByDimIdx(dimIdx1, i);\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (useTypedArray) {\r\n points[offset++] = point[0];\r\n points[offset++] = point[1];\r\n }\r\n else {\r\n data.setItemLayout(i, point.slice());\r\n }\r\n }\r\n useTypedArray && data.setLayout('points', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample(seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n var count = data.count();\r\n if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var dpr = api.getDevicePixelRatio();\r\n var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\r\n var rate = Math.round(count / size);\r\n if (rate > 1) {\r\n if (sampling === 'lttb') {\r\n seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\r\n }\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator(axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var PI$6 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$6)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$6) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$6 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$6 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$6 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$6 * 1.5 && rotationDiff > PI$6 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul$1([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul$1([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$6 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function collect(ecModel, api) {\r\n var result = {\r\n axesInfo: {},\r\n seriesInvolved: false,\r\n coordSysAxesInfo: {},\r\n coordSysMap: {}\r\n };\r\n collectAxesInfo(result, ecModel, api);\r\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\r\n return result;\r\n }\r\n function collectAxesInfo(result, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\r\n var linksOption = globalAxisPointerModel.get('link', true) || [];\r\n var linkGroups = [];\r\n each(api.getCoordinateSystems(), function (coordSys) {\r\n if (!coordSys.axisPointerEnabled) {\r\n return;\r\n }\r\n var coordSysKey = makeKey(coordSys.model);\r\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\r\n result.coordSysMap[coordSysKey] = coordSys;\r\n var coordSysModel = coordSys.model;\r\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\r\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\r\n if (coordSys.getTooltipAxes\r\n && globalTooltipModel\r\n && baseTooltipModel.get('show')) {\r\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\r\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\r\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\r\n if (triggerAxis || cross) {\r\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\r\n }\r\n if (cross) {\r\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\r\n }\r\n }\r\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\r\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\r\n var axisPointerShow = axisPointerModel.get('show');\r\n if (!axisPointerShow || (axisPointerShow === 'auto'\r\n && !fromTooltip\r\n && !isHandleTrigger(axisPointerModel))) {\r\n return;\r\n }\r\n if (triggerTooltip == null) {\r\n triggerTooltip = axisPointerModel.get('triggerTooltip');\r\n }\r\n axisPointerModel = fromTooltip\r\n ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip)\r\n : axisPointerModel;\r\n var snap = axisPointerModel.get('snap');\r\n var axisKey = makeKey(axis.model);\r\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\r\n var axisInfo = result.axesInfo[axisKey] = {\r\n key: axisKey,\r\n axis: axis,\r\n coordSys: coordSys,\r\n axisPointerModel: axisPointerModel,\r\n triggerTooltip: triggerTooltip,\r\n involveSeries: involveSeries,\r\n snap: snap,\r\n useHandle: isHandleTrigger(axisPointerModel),\r\n seriesModels: [],\r\n linkGroup: null\r\n };\r\n axesInfoInCoordSys[axisKey] = axisInfo;\r\n result.seriesInvolved = result.seriesInvolved || involveSeries;\r\n var groupIndex = getLinkGroupIndex(linksOption, axis);\r\n if (groupIndex != null) {\r\n var linkGroup = linkGroups[groupIndex]\r\n || (linkGroups[groupIndex] = { axesInfo: {} });\r\n linkGroup.axesInfo[axisKey] = axisInfo;\r\n linkGroup.mapper = linksOption[groupIndex].mapper;\r\n axisInfo.linkGroup = linkGroup;\r\n }\r\n }\r\n });\r\n }\r\n function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\r\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\r\n var fields = [\r\n 'type', 'snap', 'lineStyle', 'shadowStyle', 'label',\r\n 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'\r\n ];\r\n var volatileOption = {};\r\n each(fields, function (field) {\r\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\r\n });\r\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\r\n if (tooltipAxisPointerModel.get('type') === 'cross') {\r\n volatileOption.type = 'line';\r\n }\r\n var labelOption = volatileOption.label || (volatileOption.label = {});\r\n labelOption.show == null && (labelOption.show = false);\r\n if (fromTooltip === 'cross') {\r\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\r\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\r\n if (!triggerTooltip) {\r\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\r\n crossStyle && defaults(labelOption, crossStyle.textStyle);\r\n }\r\n }\r\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\r\n }\r\n function collectSeriesInfo(result, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\r\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\r\n if (!coordSys\r\n || seriesTooltipTrigger === 'none'\r\n || seriesTooltipTrigger === false\r\n || seriesTooltipTrigger === 'item'\r\n || seriesTooltipShow === false\r\n || seriesModel.get(['axisPointer', 'show'], true) === false) {\r\n return;\r\n }\r\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\r\n var axis = axisInfo.axis;\r\n if (coordSys.getAxis(axis.dim) === axis) {\r\n axisInfo.seriesModels.push(seriesModel);\r\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\r\n axisInfo.seriesDataCount += seriesModel.getData().count();\r\n }\r\n });\r\n });\r\n }\r\n function getLinkGroupIndex(linksOption, axis) {\r\n var axisModel = axis.model;\r\n var dim = axis.dim;\r\n for (var i = 0; i < linksOption.length; i++) {\r\n var linkOption = linksOption[i] || {};\r\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id)\r\n || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex)\r\n || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\r\n return i;\r\n }\r\n }\r\n }\r\n function checkPropInLink(linkPropValue, axisPropValue) {\r\n return linkPropValue === 'all'\r\n || (isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0)\r\n || linkPropValue === axisPropValue;\r\n }\r\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$5 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$5(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$5(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$5(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 70,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(pointsLayout('line', true));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n function canCalculateAffineTransform(scale) {\r\n return scale.type === 'interval' || scale.type === 'time';\r\n }\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.calcAffineTransform = function () {\r\n this._transform = this._invTransform = null;\r\n var xAxisScale = this.getAxis('x').scale;\r\n var yAxisScale = this.getAxis('y').scale;\r\n if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\r\n return;\r\n }\r\n var xScaleExtent = xAxisScale.getExtent();\r\n var yScaleExtent = yAxisScale.getExtent();\r\n var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\r\n var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\r\n var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\r\n var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\r\n if (!xScaleSpan || !yScaleSpan) {\r\n return;\r\n }\r\n var scaleX = (end[0] - start[0]) / xScaleSpan;\r\n var scaleY = (end[1] - start[1]) / yScaleSpan;\r\n var translateX = start[0] - xScaleExtent[0] * scaleX;\r\n var translateY = start[1] - yScaleExtent[0] * scaleY;\r\n var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\r\n this._invTransform = invert([], m);\r\n };\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n out = out || [];\r\n var xVal = data[0];\r\n var yVal = data[1];\r\n if (this._transform\r\n && xVal != null\r\n && isFinite(xVal)\r\n && yVal != null\r\n && isFinite(yVal)) {\r\n return applyTransform(out, data, this._transform);\r\n }\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n out = out || [];\r\n if (this._invTransform) {\r\n return applyTransform(out, point, this._invTransform);\r\n }\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var boxLayoutParams = gridModel.getBoxLayoutParams();\r\n var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\r\n var gridRect = getLayoutRect(boxLayoutParams, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (isContainLabel) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n each(this._coordsList, function (coord) {\r\n coord.calcAffineTransform();\r\n });\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n realtimeSort: false\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$6 = Math.max;\r\n var mathMin$6 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea = coord.getArea && coord.getArea();\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this.removeOnRenderedListener(api);\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, payload);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\r\n var _this = this;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var coord = seriesModel.coordinateSystem;\r\n var baseAxis = coord.getBaseAxis();\r\n var isHorizontalOrRadial;\r\n if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var realtimeSort = seriesModel.get('realtimeSort');\r\n if (realtimeSort && data.count()) {\r\n if (this._isFirstFrame) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n else {\r\n this._onRendered = function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n _this._updateSort(data, orderMap, baseAxis, api);\r\n };\r\n api.getZr().on('rendered', this._onRendered);\r\n }\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\r\n var roundCap = seriesModel.get('roundCap', true);\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\r\n var bgEls = [];\r\n var oldBgEls = this._backgroundEls;\r\n var isInitSort = payload && payload.isInitSort;\r\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\r\n function createBackground(dataIndex) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n return bgEl;\r\n }\r\n data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n createBackground(dataIndex);\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (isInitSort) {\r\n el.attr({ shape: layout });\r\n }\r\n else if (realtimeSort) {\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\r\n }\r\n else {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\r\n .update(function (newIndex, oldIndex) {\r\n var itemModel = data.getItemModel(newIndex);\r\n var layout = getLayout[coord.type](data, newIndex, itemModel);\r\n if (drawBackground) {\r\n var bgEl = void 0;\r\n if (oldBgEls.length === 0) {\r\n bgEl = createBackground(oldIndex);\r\n }\r\n else {\r\n bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n }\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\r\n }\r\n }\r\n if (!el) {\r\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\r\n }\r\n if (!isChangeOrder) {\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n }\r\n if (isInitSort) {\r\n el.attr({ shape: layout });\r\n }\r\n else if (realtimeSort) {\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\r\n }\r\n else {\r\n updateProps(el, {\r\n shape: layout\r\n }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n this.removeOnRenderedListener(api);\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n isInitSort: true,\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function (ecModel, api) {\r\n this._clear(this._model);\r\n this.removeOnRenderedListener(api);\r\n };\r\n BarView.prototype.dispose = function (ecModel, api) {\r\n this.removeOnRenderedListener(api);\r\n };\r\n BarView.prototype.removeOnRenderedListener = function (api) {\r\n if (this._onRendered) {\r\n api.getZr().off('rendered', this._onRendered);\r\n this._onRendered = null;\r\n }\r\n };\r\n BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var clip = {\r\n cartesian2d: function (coordSysBoundingRect, layout) {\r\n var signWidth = layout.width < 0 ? -1 : 1;\r\n var signHeight = layout.height < 0 ? -1 : 1;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$6(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$6(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$6(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$6(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function (coordSysClipArea, layout) {\r\n var signR = layout.r0 <= layout.r ? 1 : -1;\r\n if (signR < 0) {\r\n var tmp = layout.r;\r\n layout.r = layout.r0;\r\n layout.r0 = tmp;\r\n }\r\n var r = mathMin$6(layout.r, coordSysClipArea.r);\r\n var r0 = mathMax$6(layout.r0, coordSysClipArea.r0);\r\n layout.r = r;\r\n layout.r0 = r0;\r\n var clipped = r - r0 < 0;\r\n if (signR < 0) {\r\n var tmp = layout.r;\r\n layout.r = layout.r0;\r\n layout.r0 = tmp;\r\n }\r\n return clipped;\r\n }\r\n };\r\n var elementCreator = {\r\n cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\r\n var rect = new Rect({\r\n shape: extend({}, layout),\r\n z2: 1\r\n });\r\n rect.__dataIndex = newIndex;\r\n rect.name = 'item';\r\n if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\r\n if (animationModel) {\r\n var sectorShape = sector.shape;\r\n var animateProperty = isRadial ? 'r' : 'endAngle';\r\n var animateTarget = {};\r\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\r\n animateTarget[animateProperty] = layout[animateProperty];\r\n (isUpdate ? updateProps : initProps)(sector, {\r\n shape: animateTarget\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\r\n if (isHorizontal) {\r\n axisTarget = {\r\n x: layout.x,\r\n width: layout.width\r\n };\r\n seriesTarget = {\r\n y: layout.y,\r\n height: layout.height\r\n };\r\n }\r\n else {\r\n axisTarget = {\r\n y: layout.y,\r\n height: layout.height\r\n };\r\n seriesTarget = {\r\n x: layout.x,\r\n width: layout.width\r\n };\r\n }\r\n if (!isChangeOrder) {\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n }\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\r\n var signX = layout.width > 0 ? 1 : -1;\r\n var signY = layout.height > 0 ? 1 : -1;\r\n return {\r\n x: layout.x + signX * fixedLineWidth / 2,\r\n y: layout.y + signY * fixedLineWidth / 2,\r\n width: layout.width - signX * fixedLineWidth,\r\n height: layout.height - signY * fixedLineWidth\r\n };\r\n },\r\n polar: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n return {\r\n cx: layout.cx,\r\n cy: layout.cy,\r\n r0: layout.r0,\r\n r: layout.r,\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n var labelStatesModels = getLabelStatesModels(itemModel);\r\n setLabelStyle(el, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOpacity: style.opacity,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n var label = el.getTextContent();\r\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) { return getDefaultInterpolatedLabel(data, value); });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\r\n el.style.fill = 'none';\r\n el.style.stroke = 'none';\r\n each(el.states, function (state) {\r\n if (state.style) {\r\n state.style.fill = state.style.stroke = 'none';\r\n }\r\n });\r\n }\r\n }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\r\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\r\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\r\n return Math.min(lineWidth, width, height);\r\n }\r\n var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var largePathUpdateDataIndex = throttle(function (event) {\r\n var largePath = this;\r\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\r\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\r\n }, 30, false);\r\n function largePathFindDataIndex(largePath, x, y) {\r\n var baseDimIdx = largePath.__baseDimIdx;\r\n var valueDimIdx = 1 - baseDimIdx;\r\n var points = largePath.shape.points;\r\n var largeDataIndices = largePath.__largeDataIndices;\r\n var barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function createBackgroundShape(isHorizontalOrRadial, layout, coord) {\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n var rectShape = layout;\r\n var coordLayout = coord.getArea();\r\n return {\r\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\r\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\r\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\r\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\r\n };\r\n }\r\n else {\r\n var coordLayout = coord.getArea();\r\n var sectorShape = layout;\r\n return {\r\n cx: coordLayout.cx,\r\n cy: coordLayout.cy,\r\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\r\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\r\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\r\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\r\n };\r\n }\r\n }\r\n function createBackgroundEl(coord, isHorizontalOrRadial, layout) {\r\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\r\n return new ElementClz({\r\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\r\n silent: true,\r\n z2: 0\r\n });\r\n }\r\n ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n\n function createListSimply(seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function pieLabelLayout(seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n function isLabelShown(label) {\r\n if (!label.ignore) {\r\n return true;\r\n }\r\n for (var key in label.states) {\r\n if (label.states[key].ignore === false) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n if (!isLabelShown(label)) {\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.y -= margin / 2;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n function getSectorCornerRadius(model, shape) {\r\n var cornerRadius = model.get('borderRadius');\r\n if (cornerRadius == null) {\r\n return null;\r\n }\r\n if (!isArray(cornerRadius)) {\r\n cornerRadius = [cornerRadius, cornerRadius];\r\n }\r\n return {\r\n innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\r\n cornerRadius: parsePercent(cornerRadius[1], shape.r)\r\n };\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = __assign({ r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0) }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy,\r\n shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\r\n });\r\n extend(sector.ensureState('blur'), {\r\n shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var itemModel = data.getItemModel(idx);\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n var visualOpacity = style && style.opacity;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultOpacity: visualOpacity,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n });\r\n var labelText = sector.getTextContent();\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n pieLabelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$7 = Math.PI * 2;\r\n var RADIAN$1 = Math.PI / 180;\r\n function getViewRect(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function pieLayout(seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var viewRect = getViewRect(seriesModel, api);\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = parsePercent$2(viewRect.width, api.getWidth());\r\n var height = parsePercent$2(viewRect.height, api.getHeight());\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width) + viewRect.x;\r\n var cy = parsePercent$2(center[1], height) + viewRect.y;\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$1;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$1;\r\n var validDataCount = 0;\r\n data.each(valueDim, function (value) {\r\n !isNaN(value) && validDataCount++;\r\n });\r\n var sum = data.getSum(valueDim);\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var clockwise = seriesModel.get('clockwise');\r\n var roseType = seriesModel.get('roseType');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var extent = data.getDataExtent(valueDim);\r\n extent[0] = 0;\r\n var restAngle = PI2$7;\r\n var valueSumLargerThanMinAngle = 0;\r\n var currentAngle = startAngle;\r\n var dir = clockwise ? 1 : -1;\r\n data.setLayout({ viewRect: viewRect, r: r });\r\n data.each(valueDim, function (value, idx) {\r\n var angle;\r\n if (isNaN(value)) {\r\n data.setItemLayout(idx, {\r\n angle: NaN,\r\n startAngle: NaN,\r\n endAngle: NaN,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? NaN\r\n : r\r\n });\r\n return;\r\n }\r\n if (roseType !== 'area') {\r\n angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n }\r\n else {\r\n angle = PI2$7 / validDataCount;\r\n }\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n restAngle -= minAngle;\r\n }\r\n else {\r\n valueSumLargerThanMinAngle += value;\r\n }\r\n var endAngle = currentAngle + dir * angle;\r\n data.setItemLayout(idx, {\r\n angle: angle,\r\n startAngle: currentAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? linearMap(value, extent, [r0, r])\r\n : r\r\n });\r\n currentAngle = endAngle;\r\n });\r\n if (restAngle < PI2$7 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$7 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter(seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n var ScatterSeriesModel = (function (_super) {\r\n __extends(ScatterSeriesModel, _super);\r\n function ScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n ScatterSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 5e3 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n ScatterSeriesModel.type = 'series.scatter';\r\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n ScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n symbolSize: 10,\r\n large: false,\r\n largeThreshold: 2000,\r\n itemStyle: {\r\n opacity: 0.8\r\n },\r\n emphasis: {\r\n scale: true\r\n },\r\n clip: true,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return ScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ScatterSeriesModel);\n\n var BOOST_SIZE_THRESHOLD = 4;\r\n var LargeSymbolPathShape = (function () {\r\n function LargeSymbolPathShape() {\r\n }\r\n return LargeSymbolPathShape;\r\n }());\r\n var LargeSymbolPath = (function (_super) {\r\n __extends(LargeSymbolPath, _super);\r\n function LargeSymbolPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeSymbolPath.prototype.getDefaultShape = function () {\r\n return new LargeSymbolPathShape();\r\n };\r\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\r\n var points = shape.points;\r\n var size = shape.size;\r\n var symbolProxy = this.symbolProxy;\r\n var symbolProxyShape = symbolProxy.shape;\r\n var ctx = path.getContext\r\n ? path.getContext()\r\n : path;\r\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\r\n if (canBoost) {\r\n this._ctx = ctx;\r\n return;\r\n }\r\n this._ctx = null;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n symbolProxyShape.x = x - size[0] / 2;\r\n symbolProxyShape.y = y - size[1] / 2;\r\n symbolProxyShape.width = size[0];\r\n symbolProxyShape.height = size[1];\r\n symbolProxy.buildPath(path, symbolProxyShape, true);\r\n }\r\n };\r\n LargeSymbolPath.prototype.afterBrush = function () {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var ctx = this._ctx;\r\n if (!ctx) {\r\n return;\r\n }\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\r\n }\r\n };\r\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var w = Math.max(size[0], 4);\r\n var h = Math.max(size[1], 4);\r\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\r\n var i = idx * 2;\r\n var x0 = points[i] - w / 2;\r\n var y0 = points[i + 1] - h / 2;\r\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\r\n return idx;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeSymbolPath;\r\n }(Path));\r\n var LargeSymbolDraw = (function () {\r\n function LargeSymbolDraw() {\r\n this.group = new Group();\r\n }\r\n LargeSymbolDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\r\n this.group.removeAll();\r\n var symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n symbolEl.setShape({\r\n points: data.getLayout('points')\r\n });\r\n this._setCommon(symbolEl, data, false, opt);\r\n this.group.add(symbolEl);\r\n this._incremental = null;\r\n };\r\n LargeSymbolDraw.prototype.updateLayout = function (data) {\r\n if (this._incremental) {\r\n return;\r\n }\r\n var points = data.getLayout('points');\r\n this.group.eachChild(function (child) {\r\n if (child.startIndex != null) {\r\n var len = (child.endIndex - child.startIndex) * 2;\r\n var byteOffset = child.startIndex * 4 * 2;\r\n points = new Float32Array(points.buffer, byteOffset, len);\r\n }\r\n child.setShape('points', points);\r\n });\r\n };\r\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 2e6) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n var symbolEl;\r\n if (this._incremental) {\r\n symbolEl = new LargeSymbolPath();\r\n this._incremental.addDisplayable(symbolEl, true);\r\n }\r\n else {\r\n symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default',\r\n startIndex: taskParams.start,\r\n endIndex: taskParams.end\r\n });\r\n symbolEl.incremental = true;\r\n this.group.add(symbolEl);\r\n }\r\n symbolEl.setShape({\r\n points: data.getLayout('points')\r\n });\r\n this._setCommon(symbolEl, data, !!this._incremental, opt);\r\n };\r\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\r\n var hostModel = data.hostModel;\r\n opt = opt || {};\r\n var size = data.getVisual('symbolSize');\r\n symbolEl.setShape('size', (size instanceof Array) ? size : [size, size]);\r\n symbolEl.softClipShape = opt.clipShape || null;\r\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\r\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\r\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\r\n symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\r\n var globalStyle = data.getVisual('style');\r\n var visualColor = globalStyle && globalStyle.fill;\r\n if (visualColor) {\r\n symbolEl.setColor(visualColor);\r\n }\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(symbolEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n symbolEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex >= 0) {\r\n ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\r\n }\r\n });\r\n }\r\n };\r\n LargeSymbolDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeSymbolDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeSymbolDraw;\r\n }());\n\n var ScatterView = (function (_super) {\r\n __extends(ScatterView, _super);\r\n function ScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterView.type;\r\n return _this;\r\n }\r\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.updateData(data, {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = true;\r\n };\r\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.incrementalPrepareUpdate(data);\r\n this._finished = false;\r\n };\r\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = pointsLayout('').reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({ start: 0, end: data.count(), count: data.count() }, data);\r\n }\r\n this._symbolDraw.updateLayout(data);\r\n }\r\n };\r\n ScatterView.prototype._getClipShape = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\r\n return seriesModel.get('clip', true) ? clipArea : null;\r\n };\r\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\r\n var symbolDraw = this._symbolDraw;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\r\n symbolDraw && symbolDraw.remove();\r\n symbolDraw = this._symbolDraw = isLargeDraw\r\n ? new LargeSymbolDraw()\r\n : new SymbolDraw();\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(symbolDraw.group);\r\n return symbolDraw;\r\n };\r\n ScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n this._symbolDraw = null;\r\n };\r\n ScatterView.prototype.dispose = function () { };\r\n ScatterView.type = 'scatter';\r\n return ScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(ScatterView);\n\n registerLayout(pointsLayout('scatter'));\n\n function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\r\n return style && (style.legacy\r\n || (style.legacy !== false\r\n && !hasOwnTextContentOption\r\n && !hasOwnTextConfig\r\n && elType !== 'tspan'\r\n && (elType === 'text' || hasOwn(style, 'text'))));\r\n }\r\n function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\r\n var srcStyle = hostStyle;\r\n var textConfig;\r\n var textContent;\r\n var textContentStyle;\r\n if (elType === 'text') {\r\n textContentStyle = srcStyle;\r\n }\r\n else {\r\n textContentStyle = {};\r\n hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\r\n hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\r\n hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\r\n hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\r\n textContent = {\r\n type: 'text',\r\n style: textContentStyle,\r\n silent: true\r\n };\r\n textConfig = {};\r\n var hasOwnPos = hasOwn(srcStyle, 'textPosition');\r\n if (isNormal) {\r\n textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\r\n }\r\n else {\r\n hasOwnPos && (textConfig.position = srcStyle.textPosition);\r\n }\r\n hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\r\n hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\r\n hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\r\n hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\r\n }\r\n convertEC4CompatibleRichItem(textContentStyle, hostStyle);\r\n each(textContentStyle.rich, function (richItem) {\r\n convertEC4CompatibleRichItem(richItem, richItem);\r\n });\r\n return {\r\n textConfig: textConfig,\r\n textContent: textContent\r\n };\r\n }\r\n function convertEC4CompatibleRichItem(out, richItem) {\r\n if (!richItem) {\r\n return;\r\n }\r\n richItem.font = richItem.textFont || richItem.font;\r\n hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\r\n hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\r\n hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\r\n hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\r\n hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\r\n hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\r\n hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\r\n hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\r\n hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\r\n hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\r\n hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\r\n hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\r\n hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\r\n hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\r\n hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\r\n }\n\n var inner$6 = makeInner();\r\n var _nonShapeGraphicElements = {\r\n path: null,\r\n compoundPath: null,\r\n group: Group,\r\n image: ZRImage,\r\n text: ZRText\r\n };\r\n registerPreprocessor(function (option) {\r\n var graphicOption = option.graphic;\r\n if (isArray(graphicOption)) {\r\n if (!graphicOption[0] || !graphicOption[0].elements) {\r\n option.graphic = [{ elements: graphicOption }];\r\n }\r\n else {\r\n option.graphic = [option.graphic[0]];\r\n }\r\n }\r\n else if (graphicOption && !graphicOption.elements) {\r\n option.graphic = [{ elements: [graphicOption] }];\r\n }\r\n });\r\n var GraphicComponentModel = (function (_super) {\r\n __extends(GraphicComponentModel, _super);\r\n function GraphicComponentModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphicComponentModel.type;\r\n return _this;\r\n }\r\n GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n var elements = this.option.elements;\r\n this.option.elements = null;\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this.option.elements = elements;\r\n };\r\n GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var newList = (isInit ? thisOption : newOption).elements;\r\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\r\n var flattenedList = [];\r\n this._flatten(newList, flattenedList, null);\r\n var mappingResult = mappingToExists(existList, flattenedList, 'normalMerge');\r\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\r\n each(mappingResult, function (resultItem, index) {\r\n var newElOption = resultItem.newOption;\r\n if (__DEV__) {\r\n assert(isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\r\n }\r\n if (!newElOption) {\r\n return;\r\n }\r\n elOptionsToUpdate.push(newElOption);\r\n setKeyInfoToNewElOption(resultItem, newElOption);\r\n mergeNewElOptionToExist(existList, index, newElOption);\r\n setLayoutInfoToExist(existList[index], newElOption);\r\n }, this);\r\n for (var i = existList.length - 1; i >= 0; i--) {\r\n if (existList[i] == null) {\r\n existList.splice(i, 1);\r\n }\r\n else {\r\n delete existList[i].$action;\r\n }\r\n }\r\n };\r\n GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\r\n each(optionList, function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (parentOption) {\r\n option.parentOption = parentOption;\r\n }\r\n result.push(option);\r\n var children = option.children;\r\n if (option.type === 'group' && children) {\r\n this._flatten(children, result, option);\r\n }\r\n delete option.children;\r\n }, this);\r\n };\r\n GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\r\n var els = this._elOptionsToUpdate;\r\n this._elOptionsToUpdate = null;\r\n return els;\r\n };\r\n GraphicComponentModel.type = 'graphic';\r\n GraphicComponentModel.defaultOption = {\r\n elements: []\r\n };\r\n return GraphicComponentModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(GraphicComponentModel);\r\n var GraphicComponentView = (function (_super) {\r\n __extends(GraphicComponentView, _super);\r\n function GraphicComponentView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphicComponentView.type;\r\n return _this;\r\n }\r\n GraphicComponentView.prototype.init = function () {\r\n this._elMap = createHashMap();\r\n };\r\n GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\r\n if (graphicModel !== this._lastGraphicModel) {\r\n this._clear();\r\n }\r\n this._lastGraphicModel = graphicModel;\r\n this._updateElements(graphicModel);\r\n this._relocate(graphicModel, api);\r\n };\r\n GraphicComponentView.prototype._updateElements = function (graphicModel) {\r\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\r\n if (!elOptionsToUpdate) {\r\n return;\r\n }\r\n var elMap = this._elMap;\r\n var rootGroup = this.group;\r\n each(elOptionsToUpdate, function (elOption) {\r\n var id = convertOptionIdName(elOption.id, null);\r\n var elExisting = id != null ? elMap.get(id) : null;\r\n var parentId = convertOptionIdName(elOption.parentId, null);\r\n var targetElParent = (parentId != null ? elMap.get(parentId) : rootGroup);\r\n var elType = elOption.type;\r\n var elOptionStyle = elOption.style;\r\n if (elType === 'text' && elOptionStyle) {\r\n if (elOption.hv && elOption.hv[1]) {\r\n elOptionStyle.textVerticalAlign =\r\n elOptionStyle.textBaseline =\r\n elOptionStyle.verticalAlign =\r\n elOptionStyle.align = null;\r\n }\r\n }\r\n var textContentOption = elOption.textContent;\r\n var textConfig = elOption.textConfig;\r\n if (elOptionStyle\r\n && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\r\n var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\r\n if (!textConfig && convertResult.textConfig) {\r\n textConfig = elOption.textConfig = convertResult.textConfig;\r\n }\r\n if (!textContentOption && convertResult.textContent) {\r\n textContentOption = convertResult.textContent;\r\n }\r\n }\r\n var elOptionCleaned = getCleanedElOption(elOption);\r\n if (__DEV__) {\r\n elExisting && assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\r\n }\r\n var $action = elOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n elExisting\r\n ? elExisting.attr(elOptionCleaned)\r\n : createEl(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'replace') {\r\n removeEl(elExisting, elMap);\r\n createEl(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'remove') {\r\n removeEl(elExisting, elMap);\r\n }\r\n var el = elMap.get(id);\r\n if (el && textContentOption) {\r\n if ($action === 'merge') {\r\n var textContentExisting = el.getTextContent();\r\n textContentExisting\r\n ? textContentExisting.attr(textContentOption)\r\n : el.setTextContent(new ZRText(textContentOption));\r\n }\r\n else if ($action === 'replace') {\r\n el.setTextContent(new ZRText(textContentOption));\r\n }\r\n }\r\n if (el) {\r\n var elInner = inner$6(el);\r\n elInner.__ecGraphicWidthOption = elOption.width;\r\n elInner.__ecGraphicHeightOption = elOption.height;\r\n setEventData(el, graphicModel, elOption);\r\n }\r\n });\r\n };\r\n GraphicComponentView.prototype._relocate = function (graphicModel, api) {\r\n var elOptions = graphicModel.option.elements;\r\n var rootGroup = this.group;\r\n var elMap = this._elMap;\r\n var apiWidth = api.getWidth();\r\n var apiHeight = api.getHeight();\r\n for (var i = 0; i < elOptions.length; i++) {\r\n var elOption = elOptions[i];\r\n var id = convertOptionIdName(elOption.id, null);\r\n var el = id != null ? elMap.get(id) : null;\r\n if (!el || !el.isGroup) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var isParentRoot = parentEl === rootGroup;\r\n var elInner = inner$6(el);\r\n var parentElInner = inner$6(parentEl);\r\n elInner.__ecGraphicWidth = parsePercent$2(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\r\n elInner.__ecGraphicHeight = parsePercent$2(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\r\n }\r\n for (var i = elOptions.length - 1; i >= 0; i--) {\r\n var elOption = elOptions[i];\r\n var id = convertOptionIdName(elOption.id, null);\r\n var el = id != null ? elMap.get(id) : null;\r\n if (!el) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var parentElInner = inner$6(parentEl);\r\n var containerInfo = parentEl === rootGroup\r\n ? {\r\n width: apiWidth,\r\n height: apiHeight\r\n }\r\n : {\r\n width: parentElInner.__ecGraphicWidth,\r\n height: parentElInner.__ecGraphicHeight\r\n };\r\n positionElement(el, elOption, containerInfo, null, { hv: elOption.hv, boundingMode: elOption.bounding });\r\n }\r\n };\r\n GraphicComponentView.prototype._clear = function () {\r\n var elMap = this._elMap;\r\n elMap.each(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n this._elMap = createHashMap();\r\n };\r\n GraphicComponentView.prototype.dispose = function () {\r\n this._clear();\r\n };\r\n GraphicComponentView.type = 'graphic';\r\n return GraphicComponentView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GraphicComponentView);\r\n function createEl(id, targetElParent, elOption, elMap) {\r\n var graphicType = elOption.type;\r\n if (__DEV__) {\r\n assert(graphicType, 'graphic type MUST be set');\r\n }\r\n var Clz = (hasOwn(_nonShapeGraphicElements, graphicType)\r\n ? _nonShapeGraphicElements[graphicType]\r\n : getShapeClass(graphicType));\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type can not be found');\r\n }\r\n var el = new Clz(elOption);\r\n targetElParent.add(el);\r\n elMap.set(id, el);\r\n inner$6(el).__ecGraphicId = id;\r\n }\r\n function removeEl(elExisting, elMap) {\r\n var existElParent = elExisting && elExisting.parent;\r\n if (existElParent) {\r\n elExisting.type === 'group' && elExisting.traverse(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n elMap.removeKey(inner$6(elExisting).__ecGraphicId);\r\n existElParent.remove(elExisting);\r\n }\r\n }\r\n function getCleanedElOption(elOption) {\r\n elOption = extend({}, elOption);\r\n each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(LOCATION_PARAMS), function (name) {\r\n delete elOption[name];\r\n });\r\n return elOption;\r\n }\r\n function isSetLoc(obj, props) {\r\n var isSet;\r\n each(props, function (prop) {\r\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\r\n });\r\n return isSet;\r\n }\r\n function setKeyInfoToNewElOption(resultItem, newElOption) {\r\n var existElOption = resultItem.existing;\r\n newElOption.id = resultItem.keyInfo.id;\r\n !newElOption.type && existElOption && (newElOption.type = existElOption.type);\r\n if (newElOption.parentId == null) {\r\n var newElParentOption = newElOption.parentOption;\r\n if (newElParentOption) {\r\n newElOption.parentId = newElParentOption.id;\r\n }\r\n else if (existElOption) {\r\n newElOption.parentId = existElOption.parentId;\r\n }\r\n }\r\n newElOption.parentOption = null;\r\n }\r\n function mergeNewElOptionToExist(existList, index, newElOption) {\r\n var newElOptCopy = extend({}, newElOption);\r\n var existElOption = existList[index];\r\n var $action = newElOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n if (existElOption) {\r\n if (__DEV__) {\r\n var newType = newElOption.type;\r\n assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\r\n }\r\n merge(existElOption, newElOptCopy, true);\r\n mergeLayoutParam(existElOption, newElOptCopy, { ignoreSize: true });\r\n copyLayoutParams(newElOption, existElOption);\r\n }\r\n else {\r\n existList[index] = newElOptCopy;\r\n }\r\n }\r\n else if ($action === 'replace') {\r\n existList[index] = newElOptCopy;\r\n }\r\n else if ($action === 'remove') {\r\n existElOption && (existList[index] = null);\r\n }\r\n }\r\n function setLayoutInfoToExist(existItem, newElOption) {\r\n if (!existItem) {\r\n return;\r\n }\r\n existItem.hv = newElOption.hv = [\r\n isSetLoc(newElOption, ['left', 'right']),\r\n isSetLoc(newElOption, ['top', 'bottom'])\r\n ];\r\n if (existItem.type === 'group') {\r\n var existingGroupOpt = existItem;\r\n var newGroupOpt = newElOption;\r\n existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\r\n existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\r\n }\r\n }\r\n function setEventData(el, graphicModel, elOption) {\r\n var eventData = getECData(el).eventData;\r\n if (!el.silent && !el.ignore && !eventData) {\r\n eventData = getECData(el).eventData = {\r\n componentType: 'graphic',\r\n componentIndex: graphicModel.componentIndex,\r\n name: el.name\r\n };\r\n }\r\n if (eventData) {\r\n eventData.info = elOption.info;\r\n }\r\n }\n\n function findPointFromSeries(finder, ecModel) {\r\n var point = [];\r\n var seriesIndex = finder.seriesIndex;\r\n var seriesModel;\r\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\r\n return {\r\n point: []\r\n };\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, finder);\r\n if (dataIndex == null || dataIndex < 0 || isArray(dataIndex)) {\r\n return { point: [] };\r\n }\r\n var el = data.getItemGraphicEl(dataIndex);\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (seriesModel.getTooltipPosition) {\r\n point = seriesModel.getTooltipPosition(dataIndex) || [];\r\n }\r\n else if (coordSys && coordSys.dataToPoint) {\r\n if (finder.isStacked) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueAxisDim = valueAxis.dim;\r\n var baseAxisDim = baseAxis.dim;\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\r\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\r\n point = coordSys.dataToPoint(stackedData) || [];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }), dataIndex)) || [];\r\n }\r\n }\r\n else if (el) {\r\n var rect = el.getBoundingRect().clone();\r\n rect.applyTransform(el.transform);\r\n point = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n return { point: point, el: el };\r\n }\n\n var inner$7 = makeInner();\r\n function axisTrigger(payload, ecModel, api) {\r\n var currTrigger = payload.currTrigger;\r\n var point = [payload.x, payload.y];\r\n var finder = payload;\r\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer')\r\n .coordSysAxesInfo;\r\n if (!coordSysAxesInfo) {\r\n return;\r\n }\r\n if (illegalPoint(point)) {\r\n point = findPointFromSeries({\r\n seriesIndex: finder.seriesIndex,\r\n dataIndex: finder.dataIndex\r\n }, ecModel).point;\r\n }\r\n var isIllegalPoint = illegalPoint(point);\r\n var inputAxesInfo = finder.axesInfo;\r\n var axesInfo = coordSysAxesInfo.axesInfo;\r\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\r\n var outputPayload = {};\r\n var showValueMap = {};\r\n var dataByCoordSys = {\r\n list: [],\r\n map: {}\r\n };\r\n var updaters = {\r\n showPointer: curry(showPointer, showValueMap),\r\n showTooltip: curry(showTooltip, dataByCoordSys)\r\n };\r\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\r\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\r\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\r\n var axis = axisInfo.axis;\r\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\r\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\r\n var val = inputAxisInfo && inputAxisInfo.value;\r\n if (val == null && !isIllegalPoint) {\r\n val = axis.pointToData(point);\r\n }\r\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\r\n }\r\n });\r\n });\r\n var linkTriggers = {};\r\n each(axesInfo, function (tarAxisInfo, tarKey) {\r\n var linkGroup = tarAxisInfo.linkGroup;\r\n if (linkGroup && !showValueMap[tarKey]) {\r\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\r\n var srcValItem = showValueMap[srcKey];\r\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\r\n var val = srcValItem.value;\r\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\r\n linkTriggers[tarAxisInfo.key] = val;\r\n }\r\n });\r\n }\r\n });\r\n each(linkTriggers, function (val, tarKey) {\r\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\r\n });\r\n updateModelActually(showValueMap, axesInfo, outputPayload);\r\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\r\n dispatchHighDownActually(axesInfo, dispatchAction, api);\r\n return outputPayload;\r\n }\r\n function processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\r\n var axis = axisInfo.axis;\r\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\r\n return;\r\n }\r\n if (!axisInfo.involveSeries) {\r\n updaters.showPointer(axisInfo, newValue);\r\n return;\r\n }\r\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var snapToValue = payloadInfo.snapToValue;\r\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\r\n extend(outputFinder, payloadBatch[0]);\r\n }\r\n if (!noSnap && axisInfo.snap) {\r\n if (axis.containData(snapToValue) && snapToValue != null) {\r\n newValue = snapToValue;\r\n }\r\n }\r\n updaters.showPointer(axisInfo, newValue, payloadBatch);\r\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\r\n }\r\n function buildPayloadsBySeries(value, axisInfo) {\r\n var axis = axisInfo.axis;\r\n var dim = axis.dim;\r\n var snapToValue = value;\r\n var payloadBatch = [];\r\n var minDist = Number.MAX_VALUE;\r\n var minDiff = -1;\r\n each(axisInfo.seriesModels, function (series, idx) {\r\n var dataDim = series.getData().mapDimensionsAll(dim);\r\n var seriesNestestValue;\r\n var dataIndices;\r\n if (series.getAxisTooltipData) {\r\n var result = series.getAxisTooltipData(dataDim, value, axis);\r\n dataIndices = result.dataIndices;\r\n seriesNestestValue = result.nestestValue;\r\n }\r\n else {\r\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\r\n if (!dataIndices.length) {\r\n return;\r\n }\r\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\r\n }\r\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\r\n return;\r\n }\r\n var diff = value - seriesNestestValue;\r\n var dist = Math.abs(diff);\r\n if (dist <= minDist) {\r\n if (dist < minDist || (diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n snapToValue = seriesNestestValue;\r\n payloadBatch.length = 0;\r\n }\r\n each(dataIndices, function (dataIndex) {\r\n payloadBatch.push({\r\n seriesIndex: series.seriesIndex,\r\n dataIndexInside: dataIndex,\r\n dataIndex: series.getData().getRawIndex(dataIndex)\r\n });\r\n });\r\n }\r\n });\r\n return {\r\n payloadBatch: payloadBatch,\r\n snapToValue: snapToValue\r\n };\r\n }\r\n function showPointer(showValueMap, axisInfo, value, payloadBatch) {\r\n showValueMap[axisInfo.key] = {\r\n value: value,\r\n payloadBatch: payloadBatch\r\n };\r\n }\r\n function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var axis = axisInfo.axis;\r\n var axisModel = axis.model;\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\r\n return;\r\n }\r\n var coordSysModel = axisInfo.coordSys.model;\r\n var coordSysKey = makeKey(coordSysModel);\r\n var coordSysItem = dataByCoordSys.map[coordSysKey];\r\n if (!coordSysItem) {\r\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\r\n coordSysId: coordSysModel.id,\r\n coordSysIndex: coordSysModel.componentIndex,\r\n coordSysType: coordSysModel.type,\r\n coordSysMainType: coordSysModel.mainType,\r\n dataByAxis: []\r\n };\r\n dataByCoordSys.list.push(coordSysItem);\r\n }\r\n coordSysItem.dataByAxis.push({\r\n axisDim: axis.dim,\r\n axisIndex: axisModel.componentIndex,\r\n axisType: axisModel.type,\r\n axisId: axisModel.id,\r\n value: value,\r\n valueLabelOpt: {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n },\r\n seriesDataIndices: payloadBatch.slice()\r\n });\r\n }\r\n function updateModelActually(showValueMap, axesInfo, outputPayload) {\r\n var outputAxesInfo = outputPayload.axesInfo = [];\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n var valItem = showValueMap[key];\r\n if (valItem) {\r\n !axisInfo.useHandle && (option.status = 'show');\r\n option.value = valItem.value;\r\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\r\n }\r\n else {\r\n !axisInfo.useHandle && (option.status = 'hide');\r\n }\r\n option.status === 'show' && outputAxesInfo.push({\r\n axisDim: axisInfo.axis.dim,\r\n axisIndex: axisInfo.axis.model.componentIndex,\r\n value: option.value\r\n });\r\n });\r\n }\r\n function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\r\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\r\n dispatchAction({ type: 'hideTip' });\r\n return;\r\n }\r\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\r\n dispatchAction({\r\n type: 'showTip',\r\n escapeConnect: true,\r\n x: point[0],\r\n y: point[1],\r\n tooltipOption: payload.tooltipOption,\r\n position: payload.position,\r\n dataIndexInside: sampleItem.dataIndexInside,\r\n dataIndex: sampleItem.dataIndex,\r\n seriesIndex: sampleItem.seriesIndex,\r\n dataByCoordSys: dataByCoordSys.list\r\n });\r\n }\r\n function dispatchHighDownActually(axesInfo, dispatchAction, api) {\r\n var zr = api.getZr();\r\n var highDownKey = 'axisPointerLastHighlights';\r\n var lastHighlights = inner$7(zr)[highDownKey] || {};\r\n var newHighlights = inner$7(zr)[highDownKey] = {};\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\r\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\r\n newHighlights[key] = batchItem;\r\n });\r\n });\r\n var toHighlight = [];\r\n var toDownplay = [];\r\n each(lastHighlights, function (batchItem, key) {\r\n !newHighlights[key] && toDownplay.push(batchItem);\r\n });\r\n each(newHighlights, function (batchItem, key) {\r\n !lastHighlights[key] && toHighlight.push(batchItem);\r\n });\r\n toDownplay.length && api.dispatchAction({\r\n type: 'downplay',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toDownplay\r\n });\r\n toHighlight.length && api.dispatchAction({\r\n type: 'highlight',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toHighlight\r\n });\r\n }\r\n function findInputAxisInfo(inputAxesInfo, axisInfo) {\r\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\r\n var inputAxisInfo = inputAxesInfo[i];\r\n if (axisInfo.axis.dim === inputAxisInfo.axisDim\r\n && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\r\n return inputAxisInfo;\r\n }\r\n }\r\n }\r\n function makeMapperParam(axisInfo) {\r\n var axisModel = axisInfo.axis.model;\r\n var item = {};\r\n var dim = item.axisDim = axisInfo.axis.dim;\r\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\r\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\r\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\r\n return item;\r\n }\r\n function illegalPoint(point) {\r\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\r\n }\n\n var inner$8 = makeInner();\r\n var each$4 = each;\r\n function register(key, api, handler) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n inner$8(zr).records || (inner$8(zr).records = {});\r\n initGlobalListeners(zr, api);\r\n var record = inner$8(zr).records[key] || (inner$8(zr).records[key] = {});\r\n record.handler = handler;\r\n }\r\n function initGlobalListeners(zr, api) {\r\n if (inner$8(zr).initialized) {\r\n return;\r\n }\r\n inner$8(zr).initialized = true;\r\n useHandler('click', curry(doEnter, 'click'));\r\n useHandler('mousemove', curry(doEnter, 'mousemove'));\r\n useHandler('globalout', onLeave);\r\n function useHandler(eventType, cb) {\r\n zr.on(eventType, function (e) {\r\n var dis = makeDispatchAction(api);\r\n each$4(inner$8(zr).records, function (record) {\r\n record && cb(record, e, dis.dispatchAction);\r\n });\r\n dispatchTooltipFinally(dis.pendings, api);\r\n });\r\n }\r\n }\r\n function dispatchTooltipFinally(pendings, api) {\r\n var showLen = pendings.showTip.length;\r\n var hideLen = pendings.hideTip.length;\r\n var actuallyPayload;\r\n if (showLen) {\r\n actuallyPayload = pendings.showTip[showLen - 1];\r\n }\r\n else if (hideLen) {\r\n actuallyPayload = pendings.hideTip[hideLen - 1];\r\n }\r\n if (actuallyPayload) {\r\n actuallyPayload.dispatchAction = null;\r\n api.dispatchAction(actuallyPayload);\r\n }\r\n }\r\n function onLeave(record, e, dispatchAction) {\r\n record.handler('leave', null, dispatchAction);\r\n }\r\n function doEnter(currTrigger, record, e, dispatchAction) {\r\n record.handler(currTrigger, e, dispatchAction);\r\n }\r\n function makeDispatchAction(api) {\r\n var pendings = {\r\n showTip: [],\r\n hideTip: []\r\n };\r\n var dispatchAction = function (payload) {\r\n var pendingList = pendings[payload.type];\r\n if (pendingList) {\r\n pendingList.push(payload);\r\n }\r\n else {\r\n payload.dispatchAction = dispatchAction;\r\n api.dispatchAction(payload);\r\n }\r\n };\r\n return {\r\n dispatchAction: dispatchAction,\r\n pendings: pendings\r\n };\r\n }\r\n function unregister(key, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n var record = (inner$8(zr).records || {})[key];\r\n if (record) {\r\n inner$8(zr).records[key] = null;\r\n }\r\n }\n\n var AxisPointerView = (function (_super) {\r\n __extends(AxisPointerView, _super);\r\n function AxisPointerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerView.type;\r\n return _this;\r\n }\r\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var triggerOn = globalAxisPointerModel.get('triggerOn')\r\n || (globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click');\r\n register('axisPointer', api, function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none'\r\n && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\r\n dispatchAction({\r\n type: 'updateAxisPointer',\r\n currTrigger: currTrigger,\r\n x: e && e.offsetX,\r\n y: e && e.offsetY\r\n });\r\n }\r\n });\r\n };\r\n AxisPointerView.prototype.remove = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.prototype.dispose = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.type = 'axisPointer';\r\n return AxisPointerView;\r\n }(ComponentView));\r\n ComponentView.registerClass(AxisPointerView);\n\n var inner$9 = makeInner();\r\n var clone$3 = clone;\r\n var bind$1 = bind;\r\n var BaseAxisPointer = (function () {\r\n function BaseAxisPointer() {\r\n this._dragging = false;\r\n this.animationThreshold = 15;\r\n }\r\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\r\n var value = axisPointerModel.get('value');\r\n var status = axisPointerModel.get('status');\r\n this._axisModel = axisModel;\r\n this._axisPointerModel = axisPointerModel;\r\n this._api = api;\r\n if (!forceRender\r\n && this._lastValue === value\r\n && this._lastStatus === status) {\r\n return;\r\n }\r\n this._lastValue = value;\r\n this._lastStatus = status;\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (!status || status === 'hide') {\r\n group && group.hide();\r\n handle && handle.hide();\r\n return;\r\n }\r\n group && group.show();\r\n handle && handle.show();\r\n var elOption = {};\r\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\r\n var graphicKey = elOption.graphicKey;\r\n if (graphicKey !== this._lastGraphicKey) {\r\n this.clear(api);\r\n }\r\n this._lastGraphicKey = graphicKey;\r\n var moveAnimation = this._moveAnimation =\r\n this.determineAnimation(axisModel, axisPointerModel);\r\n if (!group) {\r\n group = this._group = new Group();\r\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\r\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\r\n api.getZr().add(group);\r\n }\r\n else {\r\n var doUpdateProps = curry(updateProps$1, axisPointerModel, moveAnimation);\r\n this.updatePointerEl(group, elOption, doUpdateProps);\r\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\r\n }\r\n updateMandatoryProps(group, axisPointerModel, true);\r\n this._renderHandle(value);\r\n };\r\n BaseAxisPointer.prototype.remove = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.dispose = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\r\n var animation = axisPointerModel.get('animation');\r\n var axis = axisModel.axis;\r\n var isCategoryAxis = axis.type === 'category';\r\n var useSnap = axisPointerModel.get('snap');\r\n if (!useSnap && !isCategoryAxis) {\r\n return false;\r\n }\r\n if (animation === 'auto' || animation == null) {\r\n var animationThreshold = this.animationThreshold;\r\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\r\n return true;\r\n }\r\n if (useSnap) {\r\n var seriesDataCount = getAxisInfo(axisModel).seriesDataCount;\r\n var axisExtent = axis.getExtent();\r\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\r\n }\r\n return false;\r\n }\r\n return animation === true;\r\n };\r\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n };\r\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\r\n var pointerOption = elOption.pointer;\r\n if (pointerOption) {\r\n var pointerEl = inner$9(group).pointerEl = new graphic[pointerOption.type](clone$3(elOption.pointer));\r\n group.add(pointerEl);\r\n }\r\n };\r\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\r\n if (elOption.label) {\r\n var labelEl = inner$9(group).labelEl = new ZRText(clone$3(elOption.label));\r\n group.add(labelEl);\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\r\n var pointerEl = inner$9(group).pointerEl;\r\n if (pointerEl && elOption.pointer) {\r\n pointerEl.setStyle(elOption.pointer.style);\r\n updateProps(pointerEl, { shape: elOption.pointer.shape });\r\n }\r\n };\r\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\r\n var labelEl = inner$9(group).labelEl;\r\n if (labelEl) {\r\n labelEl.setStyle(elOption.label.style);\r\n updateProps(labelEl, {\r\n x: elOption.label.x,\r\n y: elOption.label.y\r\n });\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype._renderHandle = function (value) {\r\n if (this._dragging || !this.updateHandleTransform) {\r\n return;\r\n }\r\n var axisPointerModel = this._axisPointerModel;\r\n var zr = this._api.getZr();\r\n var handle = this._handle;\r\n var handleModel = axisPointerModel.getModel('handle');\r\n var status = axisPointerModel.get('status');\r\n if (!handleModel.get('show') || !status || status === 'hide') {\r\n handle && zr.remove(handle);\r\n this._handle = null;\r\n return;\r\n }\r\n var isInit;\r\n if (!this._handle) {\r\n isInit = true;\r\n handle = this._handle = createIcon(handleModel.get('icon'), {\r\n cursor: 'move',\r\n draggable: true,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n onmousedown: bind$1(this._onHandleDragMove, this, 0, 0),\r\n drift: bind$1(this._onHandleDragMove, this),\r\n ondragend: bind$1(this._onHandleDragEnd, this)\r\n });\r\n zr.add(handle);\r\n }\r\n updateMandatoryProps(handle, axisPointerModel, false);\r\n handle.setStyle(handleModel.getItemStyle(null, [\r\n 'color', 'borderColor', 'borderWidth', 'opacity',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ]));\r\n var handleSize = handleModel.get('size');\r\n if (!isArray(handleSize)) {\r\n handleSize = [handleSize, handleSize];\r\n }\r\n handle.scaleX = handleSize[0] / 2;\r\n handle.scaleY = handleSize[1] / 2;\r\n createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\r\n this._moveHandleToValue(value, isInit);\r\n };\r\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\r\n updateProps$1(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\r\n };\r\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n this._dragging = true;\r\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\r\n this._payloadInfo = trans;\r\n handle.stopAnimation();\r\n handle.attr(getHandleTransProps(trans));\r\n inner$9(handle).lastProp = null;\r\n this._doDispatchAxisPointer();\r\n };\r\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var payloadInfo = this._payloadInfo;\r\n var axisModel = this._axisModel;\r\n this._api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payloadInfo.cursorPoint[0],\r\n y: payloadInfo.cursorPoint[1],\r\n tooltipOption: payloadInfo.tooltipOption,\r\n axesInfo: [{\r\n axisDim: axisModel.axis.dim,\r\n axisIndex: axisModel.componentIndex\r\n }]\r\n });\r\n };\r\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\r\n this._dragging = false;\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var value = this._axisPointerModel.get('value');\r\n this._moveHandleToValue(value);\r\n this._api.dispatchAction({\r\n type: 'hideTip'\r\n });\r\n };\r\n BaseAxisPointer.prototype.clear = function (api) {\r\n this._lastValue = null;\r\n this._lastStatus = null;\r\n var zr = api.getZr();\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (zr && group) {\r\n this._lastGraphicKey = null;\r\n group && zr.remove(group);\r\n handle && zr.remove(handle);\r\n this._group = null;\r\n this._handle = null;\r\n this._payloadInfo = null;\r\n }\r\n };\r\n BaseAxisPointer.prototype.doClear = function () {\r\n };\r\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n };\r\n return BaseAxisPointer;\r\n }());\r\n function updateProps$1(animationModel, moveAnimation, el, props) {\r\n if (!propsEqual(inner$9(el).lastProp, props)) {\r\n inner$9(el).lastProp = props;\r\n moveAnimation\r\n ? updateProps(el, props, animationModel)\r\n : (el.stopAnimation(), el.attr(props));\r\n }\r\n }\r\n function propsEqual(lastProps, newProps) {\r\n if (isObject(lastProps) && isObject(newProps)) {\r\n var equals_1 = true;\r\n each(newProps, function (item, key) {\r\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\r\n });\r\n return !!equals_1;\r\n }\r\n else {\r\n return lastProps === newProps;\r\n }\r\n }\r\n function updateLabelShowHide(labelEl, axisPointerModel) {\r\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\r\n }\r\n function getHandleTransProps(trans) {\r\n return {\r\n x: trans.x || 0,\r\n y: trans.y || 0,\r\n rotation: trans.rotation || 0\r\n };\r\n }\r\n function updateMandatoryProps(group, axisPointerModel, silent) {\r\n var z = axisPointerModel.get('z');\r\n var zlevel = axisPointerModel.get('zlevel');\r\n group && group.traverse(function (el) {\r\n if (el.type !== 'group') {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n el.silent = silent;\r\n }\r\n });\r\n }\n\n function buildElStyle(axisPointerModel) {\r\n var axisPointerType = axisPointerModel.get('type');\r\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\r\n var style;\r\n if (axisPointerType === 'line') {\r\n style = styleModel.getLineStyle();\r\n style.fill = null;\r\n }\r\n else if (axisPointerType === 'shadow') {\r\n style = styleModel.getAreaStyle();\r\n style.stroke = null;\r\n }\r\n return style;\r\n }\r\n function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\r\n var value = axisPointerModel.get('value');\r\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n });\r\n var labelModel = axisPointerModel.getModel('label');\r\n var paddings = normalizeCssArray$1(labelModel.get('padding') || 0);\r\n var font = labelModel.getFont();\r\n var textRect = getBoundingRect(text, font);\r\n var position = labelPos.position;\r\n var width = textRect.width + paddings[1] + paddings[3];\r\n var height = textRect.height + paddings[0] + paddings[2];\r\n var align = labelPos.align;\r\n align === 'right' && (position[0] -= width);\r\n align === 'center' && (position[0] -= width / 2);\r\n var verticalAlign = labelPos.verticalAlign;\r\n verticalAlign === 'bottom' && (position[1] -= height);\r\n verticalAlign === 'middle' && (position[1] -= height / 2);\r\n confineInContainer(position, width, height, api);\r\n var bgColor = labelModel.get('backgroundColor');\r\n if (!bgColor || bgColor === 'auto') {\r\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n }\r\n elOption.label = {\r\n x: position[0],\r\n y: position[1],\r\n style: createTextStyle(labelModel, {\r\n text: text,\r\n font: font,\r\n fill: labelModel.getTextColor(),\r\n padding: paddings,\r\n backgroundColor: bgColor\r\n }),\r\n z2: 10\r\n };\r\n }\r\n function confineInContainer(position, width, height, api) {\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n position[0] = Math.min(position[0] + width, viewWidth) - width;\r\n position[1] = Math.min(position[1] + height, viewHeight) - height;\r\n position[0] = Math.max(position[0], 0);\r\n position[1] = Math.max(position[1], 0);\r\n }\r\n function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\r\n value = axis.scale.parse(value);\r\n var text = axis.scale.getLabel({\r\n value: value\r\n }, {\r\n precision: opt.precision\r\n });\r\n var formatter = opt.formatter;\r\n if (formatter) {\r\n var params_1 = {\r\n value: getAxisRawValue(axis, { value: value }),\r\n axisDimension: axis.dim,\r\n axisIndex: axis.index,\r\n seriesData: []\r\n };\r\n each(seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams && params_1.seriesData.push(dataParams);\r\n });\r\n if (isString(formatter)) {\r\n text = formatter.replace('{value}', text);\r\n }\r\n else if (isFunction(formatter)) {\r\n text = formatter(params_1);\r\n }\r\n }\r\n return text;\r\n }\r\n function getTransformedPosition(axis, value, layoutInfo) {\r\n var transform = create$1();\r\n rotate(transform, transform, layoutInfo.rotation);\r\n translate(transform, transform, layoutInfo.position);\r\n return applyTransform$1([\r\n axis.dataToCoord(value),\r\n (layoutInfo.labelOffset || 0)\r\n + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)\r\n ], transform);\r\n }\r\n function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\r\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\r\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\r\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\r\n align: textLayout.textAlign,\r\n verticalAlign: textLayout.textVerticalAlign\r\n });\r\n }\r\n function makeLineShape(p1, p2, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x1: p1[xDimIndex],\r\n y1: p1[1 - xDimIndex],\r\n x2: p2[xDimIndex],\r\n y2: p2[1 - xDimIndex]\r\n };\r\n }\r\n function makeRectShape(xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n }\n\n var CartesianAxisPointer = (function (_super) {\r\n __extends(CartesianAxisPointer, _super);\r\n function CartesianAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisPointerType = axisPointerModel.get('type');\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$1(grid.model, axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$1(axisModel.axis.grid.model, axisModel, {\r\n labelInside: false\r\n });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var pos = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisExtent = axis.getGlobalExtent(true);\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var dimIndex = axis.dim === 'x' ? 0 : 1;\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n var tooltipOptions = [\r\n { verticalAlign: 'middle' },\r\n { align: 'center' }\r\n ];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: tooltipOptions[dimIndex]\r\n };\r\n };\r\n return CartesianAxisPointer;\r\n }(BaseAxisPointer));\r\n function getCartesian(grid, axis) {\r\n var opt = {};\r\n opt[axis.dim + 'AxisIndex'] = axis.index;\r\n return grid.getCartesian(opt);\r\n }\r\n var pointerShapeBuilder = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getAxisDimIndex(axis) {\r\n return axis.dim === 'x' ? 0 : 1;\r\n }\r\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n\n var AxisPointerModel = (function (_super) {\r\n __extends(AxisPointerModel, _super);\r\n function AxisPointerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerModel.type;\r\n return _this;\r\n }\r\n AxisPointerModel.type = 'axisPointer';\r\n AxisPointerModel.defaultOption = {\r\n show: 'auto',\r\n zlevel: 0,\r\n z: 50,\r\n type: 'line',\r\n snap: false,\r\n triggerTooltip: true,\r\n value: null,\r\n status: null,\r\n link: [],\r\n animation: null,\r\n animationDurationUpdate: 200,\r\n lineStyle: {\r\n color: '#B9BEC9',\r\n width: 1,\r\n type: 'dashed'\r\n },\r\n shadowStyle: {\r\n color: 'rgba(210,219,238,0.2)'\r\n },\r\n label: {\r\n show: true,\r\n formatter: null,\r\n precision: 'auto',\r\n margin: 3,\r\n color: '#fff',\r\n padding: [5, 7, 5, 7],\r\n backgroundColor: 'auto',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderRadius: 3\r\n },\r\n handle: {\r\n show: false,\r\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\r\n size: 45,\r\n margin: 50,\r\n color: '#333',\r\n shadowBlur: 3,\r\n shadowColor: '#aaa',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 2,\r\n throttle: 40\r\n }\r\n };\r\n return AxisPointerModel;\r\n }(ComponentModel));\n\n ComponentModel.registerClass(AxisPointerModel);\r\n registerPreprocessor(function (option) {\r\n if (option) {\r\n (!option.axisPointer || option.axisPointer.length === 0)\r\n && (option.axisPointer = {});\r\n var link = option.axisPointer.link;\r\n if (link && !isArray(link)) {\r\n option.axisPointer.link = [link];\r\n }\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\r\n ecModel.getComponent('axisPointer').coordSysAxesInfo =\r\n collect(ecModel, api);\r\n });\r\n registerAction({\r\n type: 'updateAxisPointer',\r\n event: 'updateAxisPointer',\r\n update: ':updateAxisPointer'\r\n }, axisTrigger);\n\n var TooltipModel = (function (_super) {\r\n __extends(TooltipModel, _super);\r\n function TooltipModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipModel.type;\r\n return _this;\r\n }\r\n TooltipModel.type = 'tooltip';\r\n TooltipModel.dependencies = ['axisPointer'];\r\n TooltipModel.defaultOption = {\r\n zlevel: 0,\r\n z: 60,\r\n show: true,\r\n showContent: true,\r\n trigger: 'item',\r\n triggerOn: 'mousemove|click',\r\n alwaysShowContent: false,\r\n displayMode: 'single',\r\n renderMode: 'auto',\r\n confine: null,\r\n showDelay: 0,\r\n hideDelay: 100,\r\n transitionDuration: 0.4,\r\n enterable: false,\r\n backgroundColor: '#fff',\r\n shadowBlur: 10,\r\n shadowColor: 'rgba(0, 0, 0, .2)',\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 2,\r\n borderColor: '#333',\r\n borderRadius: 4,\r\n borderWidth: 1,\r\n padding: null,\r\n extraCssText: '',\r\n axisPointer: {\r\n type: 'line',\r\n axis: 'auto',\r\n animation: 'auto',\r\n animationDurationUpdate: 200,\r\n animationEasingUpdate: 'exponentialOut',\r\n crossStyle: {\r\n color: '#999',\r\n width: 1,\r\n type: 'dashed',\r\n textStyle: {}\r\n }\r\n },\r\n textStyle: {\r\n color: '#666',\r\n fontSize: 14\r\n }\r\n };\r\n return TooltipModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TooltipModel);\n\n function shouldTooltipConfine(tooltipModel) {\r\n var confineOption = tooltipModel.get('confine');\r\n return confineOption != null\r\n ? !!confineOption\r\n : tooltipModel.get('renderMode') === 'richText';\r\n }\n\n var vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\r\n var gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\r\n function mirrorPos(pos) {\r\n pos = pos === 'left'\r\n ? 'right'\r\n : pos === 'right'\r\n ? 'left'\r\n : pos === 'top'\r\n ? 'bottom'\r\n : 'top';\r\n return pos;\r\n }\r\n function assembleArrow(backgroundColor, borderColor, arrowPosition) {\r\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\r\n return '';\r\n }\r\n borderColor = convertToColorString(borderColor);\r\n var arrowPos = mirrorPos(arrowPosition);\r\n var positionStyle = '';\r\n var transformStyle = '';\r\n if (indexOf(['left', 'right'], arrowPos) > -1) {\r\n positionStyle = arrowPos + \":-6px;top:50%;\";\r\n transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\r\n }\r\n else {\r\n positionStyle = arrowPos + \":-6px;left:50%;\";\r\n transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\r\n }\r\n transformStyle = map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transform:' + transformStyle;\r\n }).join(';');\r\n var styleCss = [\r\n 'position:absolute;width:10px;height:10px;',\r\n \"\" + positionStyle + transformStyle + \";\",\r\n \"border-bottom: \" + borderColor + \" solid 1px;\",\r\n \"border-right: \" + borderColor + \" solid 1px;\",\r\n \"background-color: \" + backgroundColor + \";\",\r\n 'box-shadow: 8px 8px 16px -3px #000;'\r\n ];\r\n return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\r\n }\r\n function assembleTransition(duration, onlyFade) {\r\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\r\n var transitionText = 'opacity ' + (duration / 2) + 's ' + transitionCurve + ','\r\n + 'visibility ' + (duration / 2) + 's ' + transitionCurve;\r\n if (!onlyFade) {\r\n transitionText += ',left ' + duration + 's ' + transitionCurve\r\n + ',top ' + duration + 's ' + transitionCurve;\r\n }\r\n return map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transition:' + transitionText;\r\n }).join(';');\r\n }\r\n function assembleFont(textStyleModel) {\r\n var cssText = [];\r\n var fontSize = textStyleModel.get('fontSize');\r\n var color = textStyleModel.getTextColor();\r\n color && cssText.push('color:' + color);\r\n cssText.push('font:' + textStyleModel.getFont());\r\n fontSize\r\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\r\n var shadowColor = textStyleModel.get('textShadowColor');\r\n var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\r\n var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\r\n var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\r\n shadowColor && shadowBlur\r\n && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px '\r\n + shadowBlur + 'px ' + shadowColor);\r\n each(['decoration', 'align'], function (name) {\r\n var val = textStyleModel.get(name);\r\n val && cssText.push('text-' + name + ':' + val);\r\n });\r\n return cssText.join(';');\r\n }\r\n function assembleCssText(tooltipModel, enableTransition, onlyFade) {\r\n var cssText = [];\r\n var transitionDuration = tooltipModel.get('transitionDuration');\r\n var backgroundColor = tooltipModel.get('backgroundColor');\r\n var shadowBlur = tooltipModel.get('shadowBlur');\r\n var shadowColor = tooltipModel.get('shadowColor');\r\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\r\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\r\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\r\n cssText.push('box-shadow:' + boxShadow);\r\n enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\r\n if (backgroundColor) {\r\n if (env.canvasSupported) {\r\n cssText.push('background-Color:' + backgroundColor);\r\n }\r\n else {\r\n cssText.push('background-Color:#' + toHex(backgroundColor));\r\n cssText.push('filter:alpha(opacity=70)');\r\n }\r\n }\r\n each(['width', 'color', 'radius'], function (name) {\r\n var borderName = 'border-' + name;\r\n var camelCase = toCamelCase(borderName);\r\n var val = tooltipModel.get(camelCase);\r\n val != null\r\n && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\r\n });\r\n cssText.push(assembleFont(textStyleModel));\r\n if (padding != null) {\r\n cssText.push('padding:' + normalizeCssArray$1(padding).join('px ') + 'px');\r\n }\r\n return cssText.join(';') + ';';\r\n }\r\n function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\r\n var zrPainter = zr && zr.painter;\r\n if (appendToBody) {\r\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\r\n if (zrViewportRoot) {\r\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\r\n }\r\n }\r\n else {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\r\n if (viewportRootOffset) {\r\n out[0] += viewportRootOffset.offsetLeft;\r\n out[1] += viewportRootOffset.offsetTop;\r\n }\r\n }\r\n out[2] = out[0] / zr.getWidth();\r\n out[3] = out[1] / zr.getHeight();\r\n }\r\n var TooltipHTMLContent = (function () {\r\n function TooltipHTMLContent(container, api, opt) {\r\n this._show = false;\r\n this._styleCoord = [0, 0, 0, 0];\r\n this._enterable = true;\r\n this._firstShow = true;\r\n this._longHide = true;\r\n if (env.wxa) {\r\n return null;\r\n }\r\n var el = document.createElement('div');\r\n el.domBelongToZr = true;\r\n this.el = el;\r\n var zr = this._zr = api.getZr();\r\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\r\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\r\n if (appendToBody) {\r\n document.body.appendChild(el);\r\n }\r\n else {\r\n container.appendChild(el);\r\n }\r\n this._container = container;\r\n var self = this;\r\n el.onmouseenter = function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n };\r\n el.onmousemove = function (e) {\r\n e = e || window.event;\r\n if (!self._enterable) {\r\n var handler = zr.handler;\r\n var zrViewportRoot = zr.painter.getViewportRoot();\r\n normalizeEvent(zrViewportRoot, e, true);\r\n handler.dispatch('mousemove', e);\r\n }\r\n };\r\n el.onmouseleave = function () {\r\n self._inContent = false;\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n };\r\n }\r\n TooltipHTMLContent.prototype.update = function (tooltipModel) {\r\n var container = this._container;\r\n var stl = container.currentStyle\r\n || document.defaultView.getComputedStyle(container);\r\n var domStyle = container.style;\r\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\r\n domStyle.position = 'relative';\r\n }\r\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n alwaysShowContent && this._moveIfResized();\r\n this.el.className = tooltipModel.get('className') || '';\r\n };\r\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\r\n clearTimeout(this._hideTimeout);\r\n clearTimeout(this._longHideTimeout);\r\n var el = this.el;\r\n var styleCoord = this._styleCoord;\r\n var offset = el.offsetHeight / 2;\r\n nearPointColor = convertToColorString(nearPointColor);\r\n el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide)\r\n + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;'\r\n + (\"border-color: \" + nearPointColor + \";\")\r\n + (tooltipModel.get('extraCssText') || '');\r\n el.style.display = el.innerHTML ? 'block' : 'none';\r\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\r\n this._show = true;\r\n this._firstShow = false;\r\n this._longHide = false;\r\n };\r\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\r\n if (content == null) {\r\n return;\r\n }\r\n var el = this.el;\r\n if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item'\r\n && !shouldTooltipConfine(tooltipModel)) {\r\n content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\r\n }\r\n if (isString(content)) {\r\n el.innerHTML = content;\r\n }\r\n else if (content) {\r\n el.innerHTML = '';\r\n if (!isArray(content)) {\r\n content = [content];\r\n }\r\n for (var i = 0; i < content.length; i++) {\r\n if (isDom(content[i]) && content[i].parentNode !== el) {\r\n el.appendChild(content[i]);\r\n }\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipHTMLContent.prototype.getSize = function () {\r\n var el = this.el;\r\n return [el.clientWidth, el.clientHeight];\r\n };\r\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\r\n if (styleCoord[0] != null && styleCoord[1] != null) {\r\n var style = this.el.style;\r\n style.left = styleCoord[0].toFixed(0) + 'px';\r\n style.top = styleCoord[1].toFixed(0) + 'px';\r\n }\r\n };\r\n TooltipHTMLContent.prototype._moveIfResized = function () {\r\n var ratioX = this._styleCoord[2];\r\n var ratioY = this._styleCoord[3];\r\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\r\n };\r\n TooltipHTMLContent.prototype.hide = function () {\r\n var _this = this;\r\n this.el.style.visibility = 'hidden';\r\n this.el.style.opacity = '0';\r\n this._show = false;\r\n this._longHideTimeout = setTimeout(function () { return _this._longHide = true; }, 500);\r\n };\r\n TooltipHTMLContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipHTMLContent.prototype.dispose = function () {\r\n this.el.parentNode.removeChild(this.el);\r\n };\r\n TooltipHTMLContent.prototype.getOuterSize = function () {\r\n var width = this.el.clientWidth;\r\n var height = this.el.clientHeight;\r\n if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var stl = document.defaultView.getComputedStyle(this.el);\r\n if (stl) {\r\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\r\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\r\n }\r\n }\r\n return { width: width, height: height };\r\n };\r\n return TooltipHTMLContent;\r\n }());\n\n var TooltipRichContent = (function () {\r\n function TooltipRichContent(api) {\r\n this._show = false;\r\n this._styleCoord = [0, 0, 0, 0];\r\n this._enterable = true;\r\n this._zr = api.getZr();\r\n makeStyleCoord$1(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\r\n }\r\n TooltipRichContent.prototype.update = function (tooltipModel) {\r\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n alwaysShowContent && this._moveIfResized();\r\n };\r\n TooltipRichContent.prototype.show = function () {\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n }\r\n this.el.show();\r\n this._show = true;\r\n };\r\n TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\r\n if (isObject(content)) {\r\n throwError(__DEV__ ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\r\n }\r\n if (this.el) {\r\n this._zr.remove(this.el);\r\n }\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n this.el = new ZRText({\r\n style: {\r\n rich: markupStyleCreator.richTextStyles,\r\n text: content,\r\n lineHeight: 22,\r\n backgroundColor: tooltipModel.get('backgroundColor'),\r\n borderRadius: tooltipModel.get('borderRadius'),\r\n borderWidth: 1,\r\n borderColor: borderColor,\r\n shadowColor: tooltipModel.get('shadowColor'),\r\n shadowBlur: tooltipModel.get('shadowBlur'),\r\n shadowOffsetX: tooltipModel.get('shadowOffsetX'),\r\n shadowOffsetY: tooltipModel.get('shadowOffsetY'),\r\n textShadowColor: textStyleModel.get('textShadowColor'),\r\n textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\r\n textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\r\n textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\r\n fill: tooltipModel.get(['textStyle', 'color']),\r\n padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\r\n verticalAlign: 'top',\r\n align: 'left'\r\n },\r\n z: tooltipModel.get('z')\r\n });\r\n this._zr.add(this.el);\r\n var self = this;\r\n this.el.on('mouseover', function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n });\r\n this.el.on('mouseout', function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n });\r\n };\r\n TooltipRichContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipRichContent.prototype.getSize = function () {\r\n var el = this.el;\r\n var bounding = this.el.getBoundingRect();\r\n var shadowOuterSize = calcShadowOuterSize(el.style);\r\n return [\r\n bounding.width + shadowOuterSize.left + shadowOuterSize.right,\r\n bounding.height + shadowOuterSize.top + shadowOuterSize.bottom\r\n ];\r\n };\r\n TooltipRichContent.prototype.moveTo = function (x, y) {\r\n var el = this.el;\r\n if (el) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord$1(styleCoord, this._zr, x, y);\r\n x = styleCoord[0];\r\n y = styleCoord[1];\r\n var style = el.style;\r\n var borderWidth = mathMaxWith0(style.borderWidth || 0);\r\n var shadowOuterSize = calcShadowOuterSize(style);\r\n el.x = x + borderWidth + shadowOuterSize.left;\r\n el.y = y + borderWidth + shadowOuterSize.top;\r\n el.markRedraw();\r\n }\r\n };\r\n TooltipRichContent.prototype._moveIfResized = function () {\r\n var ratioX = this._styleCoord[2];\r\n var ratioY = this._styleCoord[3];\r\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\r\n };\r\n TooltipRichContent.prototype.hide = function () {\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n this._show = false;\r\n };\r\n TooltipRichContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipRichContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipRichContent.prototype.getOuterSize = function () {\r\n var size = this.getSize();\r\n return {\r\n width: size[0],\r\n height: size[1]\r\n };\r\n };\r\n TooltipRichContent.prototype.dispose = function () {\r\n this._zr.remove(this.el);\r\n };\r\n return TooltipRichContent;\r\n }());\r\n function mathMaxWith0(val) {\r\n return Math.max(0, val);\r\n }\r\n function calcShadowOuterSize(style) {\r\n var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\r\n var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\r\n var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\r\n return {\r\n left: mathMaxWith0(shadowBlur - shadowOffsetX),\r\n right: mathMaxWith0(shadowBlur + shadowOffsetX),\r\n top: mathMaxWith0(shadowBlur - shadowOffsetY),\r\n bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\r\n };\r\n }\r\n function makeStyleCoord$1(out, zr, zrX, zrY) {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n out[2] = out[0] / zr.getWidth();\r\n out[3] = out[1] / zr.getHeight();\r\n }\n\n var bind$2 = bind;\r\n var each$5 = each;\r\n var parsePercent$3 = parsePercent$2;\r\n var proxyRect = new Rect({\r\n shape: { x: -1, y: -1, width: 2, height: 2 }\r\n });\r\n var TooltipView = (function (_super) {\r\n __extends(TooltipView, _super);\r\n function TooltipView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipView.type;\r\n return _this;\r\n }\r\n TooltipView.prototype.init = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var tooltipModel = ecModel.getComponent('tooltip');\r\n var renderMode = tooltipModel.get('renderMode');\r\n this._renderMode = getTooltipRenderMode(renderMode);\r\n this._tooltipContent = this._renderMode === 'richText'\r\n ? new TooltipRichContent(api)\r\n : new TooltipHTMLContent(api.getDom(), api, {\r\n appendToBody: tooltipModel.get('appendToBody', true)\r\n });\r\n };\r\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this.group.removeAll();\r\n this._tooltipModel = tooltipModel;\r\n this._ecModel = ecModel;\r\n this._api = api;\r\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n var tooltipContent = this._tooltipContent;\r\n tooltipContent.update(tooltipModel);\r\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\r\n this._initGlobalListener();\r\n this._keepShow();\r\n };\r\n TooltipView.prototype._initGlobalListener = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var triggerOn = tooltipModel.get('triggerOn');\r\n register('itemTooltip', this._api, bind$2(function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none') {\r\n if (triggerOn.indexOf(currTrigger) >= 0) {\r\n this._tryShow(e, dispatchAction);\r\n }\r\n else if (currTrigger === 'leave') {\r\n this._hide(dispatchAction);\r\n }\r\n }\r\n }, this));\r\n };\r\n TooltipView.prototype._keepShow = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var ecModel = this._ecModel;\r\n var api = this._api;\r\n if (this._lastX != null\r\n && this._lastY != null\r\n && tooltipModel.get('triggerOn') !== 'none') {\r\n var self_1 = this;\r\n clearTimeout(this._refreshUpdateTimeout);\r\n this._refreshUpdateTimeout = setTimeout(function () {\r\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\r\n x: self_1._lastX,\r\n y: self_1._lastY,\r\n dataByCoordSys: self_1._lastDataByCoordSys\r\n });\r\n });\r\n }\r\n };\r\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\r\n if (payload.from === this.uid || env.node) {\r\n return;\r\n }\r\n var dispatchAction = makeDispatchAction$1(payload, api);\r\n this._ticket = '';\r\n var dataByCoordSys = payload.dataByCoordSys;\r\n if (payload.tooltip && payload.x != null && payload.y != null) {\r\n var el = proxyRect;\r\n el.x = payload.x;\r\n el.y = payload.y;\r\n el.update();\r\n el.tooltip = payload.tooltip;\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n target: el\r\n }, dispatchAction);\r\n }\r\n else if (dataByCoordSys) {\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n dataByCoordSys: dataByCoordSys,\r\n tooltipOption: payload.tooltipOption\r\n }, dispatchAction);\r\n }\r\n else if (payload.seriesIndex != null) {\r\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\r\n return;\r\n }\r\n var pointInfo = findPointFromSeries(payload, ecModel);\r\n var cx = pointInfo.point[0];\r\n var cy = pointInfo.point[1];\r\n if (cx != null && cy != null) {\r\n this._tryShow({\r\n offsetX: cx,\r\n offsetY: cy,\r\n position: payload.position,\r\n target: pointInfo.el\r\n }, dispatchAction);\r\n }\r\n }\r\n else if (payload.x != null && payload.y != null) {\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payload.x,\r\n y: payload.y\r\n });\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n target: api.getZr().findHover(payload.x, payload.y).target\r\n }, dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\r\n var tooltipContent = this._tooltipContent;\r\n if (!this._alwaysShowContent && this._tooltipModel) {\r\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\r\n }\r\n this._lastX = this._lastY = this._lastDataByCoordSys = null;\r\n if (payload.from !== this.uid) {\r\n this._hide(makeDispatchAction$1(payload, api));\r\n }\r\n };\r\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\r\n var seriesIndex = payload.seriesIndex;\r\n var dataIndex = payload.dataIndex;\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\r\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (!seriesModel) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var tooltipCascadedModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n seriesModel,\r\n (seriesModel.coordinateSystem || {}).model,\r\n tooltipModel\r\n ]);\r\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\r\n return;\r\n }\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n seriesIndex: seriesIndex,\r\n dataIndex: dataIndex,\r\n position: payload.position\r\n });\r\n return true;\r\n };\r\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\r\n var el = e.target;\r\n var tooltipModel = this._tooltipModel;\r\n if (!tooltipModel) {\r\n return;\r\n }\r\n this._lastX = e.offsetX;\r\n this._lastY = e.offsetY;\r\n var dataByCoordSys = e.dataByCoordSys;\r\n if (dataByCoordSys && dataByCoordSys.length) {\r\n this._showAxisTooltip(dataByCoordSys, e);\r\n }\r\n else if (el && findEventDispatcher(el, function (target) { return getECData(target).dataIndex != null; })) {\r\n this._lastDataByCoordSys = null;\r\n this._showSeriesItemTooltip(e, el, dispatchAction);\r\n }\r\n else if (el && el.tooltip) {\r\n this._lastDataByCoordSys = null;\r\n this._showComponentItemTooltip(e, el, dispatchAction);\r\n }\r\n else {\r\n this._lastDataByCoordSys = null;\r\n this._hide(dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\r\n var delay = tooltipModel.get('showDelay');\r\n cb = bind(cb, this);\r\n clearTimeout(this._showTimout);\r\n delay > 0\r\n ? (this._showTimout = setTimeout(cb, delay))\r\n : cb();\r\n };\r\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\r\n var ecModel = this._ecModel;\r\n var globalTooltipModel = this._tooltipModel;\r\n var point = [e.offsetX, e.offsetY];\r\n var singleTooltipModel = buildTooltipModel([\r\n e.tooltipOption,\r\n globalTooltipModel\r\n ]);\r\n var renderMode = this._renderMode;\r\n var cbParamsList = [];\r\n var articleMarkup = createTooltipMarkup('section', {\r\n blocks: [],\r\n noHeader: true\r\n });\r\n var markupTextArrLegacy = [];\r\n var markupStyleCreator = new TooltipMarkupStyleCreator();\r\n each$5(dataByCoordSys, function (itemCoordSys) {\r\n each$5(itemCoordSys.dataByAxis, function (axisItem) {\r\n var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\r\n var axisValue = axisItem.value;\r\n if (!axisModel || axisValue == null) {\r\n return;\r\n }\r\n var axisValueLabel = getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\r\n var axisSectionMarkup = createTooltipMarkup('section', {\r\n header: axisValueLabel,\r\n noHeader: !trim(axisValueLabel),\r\n sortBlocks: true,\r\n blocks: []\r\n });\r\n articleMarkup.blocks.push(axisSectionMarkup);\r\n each(axisItem.seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var cbParams = series.getDataParams(dataIndex);\r\n cbParams.axisDim = axisItem.axisDim;\r\n cbParams.axisIndex = axisItem.axisIndex;\r\n cbParams.axisType = axisItem.axisType;\r\n cbParams.axisId = axisItem.axisId;\r\n cbParams.axisValue = getAxisRawValue(axisModel.axis, { value: axisValue });\r\n cbParams.axisValueLabel = axisValueLabel;\r\n cbParams.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(cbParams.color), renderMode);\r\n var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\r\n if (seriesTooltipResult.markupFragment) {\r\n axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\r\n }\r\n if (seriesTooltipResult.markupText) {\r\n markupTextArrLegacy.push(seriesTooltipResult.markupText);\r\n }\r\n cbParamsList.push(cbParams);\r\n });\r\n });\r\n });\r\n articleMarkup.blocks.reverse();\r\n markupTextArrLegacy.reverse();\r\n var positionExpr = e.position;\r\n var orderMode = singleTooltipModel.get('order');\r\n var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'));\r\n builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\r\n var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\r\n var allMarkupText = markupTextArrLegacy.join(blockBreak);\r\n this._showOrMove(singleTooltipModel, function () {\r\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\r\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\r\n }\r\n else {\r\n this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\r\n }\r\n });\r\n };\r\n TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\r\n var dispatcher = findEventDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n var ecModel = this._ecModel;\r\n var ecData = getECData(dispatcher);\r\n var seriesIndex = ecData.seriesIndex;\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n var dataModel = ecData.dataModel || seriesModel;\r\n var dataIndex = ecData.dataIndex;\r\n var dataType = ecData.dataType;\r\n var data = dataModel.getData(dataType);\r\n var renderMode = this._renderMode;\r\n var tooltipModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n dataModel,\r\n seriesModel && (seriesModel.coordinateSystem || {}).model,\r\n this._tooltipModel\r\n ]);\r\n var tooltipTrigger = tooltipModel.get('trigger');\r\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\r\n return;\r\n }\r\n var params = dataModel.getDataParams(dataIndex, dataType);\r\n var markupStyleCreator = new TooltipMarkupStyleCreator();\r\n params.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(params.color), renderMode);\r\n var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\r\n var orderMode = tooltipModel.get('order');\r\n var markupText = seriesTooltipResult.markupFragment\r\n ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'))\r\n : seriesTooltipResult.markupText;\r\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\r\n this._showOrMove(tooltipModel, function () {\r\n this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n dataIndexInside: dataIndex,\r\n dataIndex: data.getRawIndex(dataIndex),\r\n seriesIndex: seriesIndex,\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\r\n var tooltipOpt = el.tooltip;\r\n if (isString(tooltipOpt)) {\r\n var content = tooltipOpt;\r\n tooltipOpt = {\r\n content: content,\r\n formatter: content\r\n };\r\n }\r\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\r\n var defaultHtml = subTooltipModel.get('content');\r\n var asyncTicket = Math.random() + '';\r\n var markupStyleCreator = new TooltipMarkupStyleCreator();\r\n this._showOrMove(subTooltipModel, function () {\r\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\r\n this._ticket = '';\r\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\r\n return;\r\n }\r\n var tooltipContent = this._tooltipContent;\r\n var formatter = tooltipModel.get('formatter');\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var html = defaultHtml;\r\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'));\r\n if (formatter && isString(formatter)) {\r\n var useUTC = tooltipModel.ecModel.get('useUTC');\r\n var params0 = isArray(params) ? params[0] : params;\r\n var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\r\n html = formatter;\r\n if (isTimeAxis) {\r\n html = format(params0.axisValue, html, useUTC);\r\n }\r\n html = formatTpl(html, params, true);\r\n }\r\n else if (isFunction(formatter)) {\r\n var callback = bind$2(function (cbTicket, html) {\r\n if (cbTicket === this._ticket) {\r\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n }\r\n }, this);\r\n this._ticket = asyncTicket;\r\n html = formatter(params, asyncTicket, callback);\r\n }\r\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\r\n tooltipContent.show(tooltipModel, nearPoint.color);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n };\r\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger) {\r\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\r\n return {\r\n color: this._renderMode === 'html' ? '#fff' : 'none'\r\n };\r\n }\r\n if (!isArray(tooltipDataParams)) {\r\n return {\r\n color: tooltipDataParams.color || tooltipDataParams.borderColor\r\n };\r\n }\r\n };\r\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\r\n var viewWidth = this._api.getWidth();\r\n var viewHeight = this._api.getHeight();\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var contentSize = content.getSize();\r\n var align = tooltipModel.get('align');\r\n var vAlign = tooltipModel.get('verticalAlign');\r\n var rect = el && el.getBoundingRect().clone();\r\n el && rect.applyTransform(el.transform);\r\n if (isFunction(positionExpr)) {\r\n positionExpr = positionExpr([x, y], params, content.el, rect, {\r\n viewSize: [viewWidth, viewHeight],\r\n contentSize: contentSize.slice()\r\n });\r\n }\r\n if (isArray(positionExpr)) {\r\n x = parsePercent$3(positionExpr[0], viewWidth);\r\n y = parsePercent$3(positionExpr[1], viewHeight);\r\n }\r\n else if (isObject(positionExpr)) {\r\n var boxLayoutPosition = positionExpr;\r\n boxLayoutPosition.width = contentSize[0];\r\n boxLayoutPosition.height = contentSize[1];\r\n var layoutRect = getLayoutRect(boxLayoutPosition, { width: viewWidth, height: viewHeight });\r\n x = layoutRect.x;\r\n y = layoutRect.y;\r\n align = null;\r\n vAlign = null;\r\n }\r\n else if (isString(positionExpr) && el) {\r\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n else {\r\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\r\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\r\n if (shouldTooltipConfine(tooltipModel)) {\r\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n content.moveTo(x, y);\r\n };\r\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\r\n var lastCoordSys = this._lastDataByCoordSys;\r\n var contentNotChanged = !!lastCoordSys\r\n && lastCoordSys.length === dataByCoordSys.length;\r\n contentNotChanged && each$5(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\r\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\r\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\r\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\r\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\r\n contentNotChanged && each$5(lastDataByAxis, function (lastItem, indexAxis) {\r\n var thisItem = thisDataByAxis[indexAxis] || {};\r\n var lastIndices = lastItem.seriesDataIndices || [];\r\n var newIndices = thisItem.seriesDataIndices || [];\r\n contentNotChanged = contentNotChanged\r\n && lastItem.value === thisItem.value\r\n && lastItem.axisType === thisItem.axisType\r\n && lastItem.axisId === thisItem.axisId\r\n && lastIndices.length === newIndices.length;\r\n contentNotChanged && each$5(lastIndices, function (lastIdxItem, j) {\r\n var newIdxItem = newIndices[j];\r\n contentNotChanged = contentNotChanged\r\n && lastIdxItem.seriesIndex === newIdxItem.seriesIndex\r\n && lastIdxItem.dataIndex === newIdxItem.dataIndex;\r\n });\r\n });\r\n });\r\n this._lastDataByCoordSys = dataByCoordSys;\r\n return !!contentNotChanged;\r\n };\r\n TooltipView.prototype._hide = function (dispatchAction) {\r\n this._lastDataByCoordSys = null;\r\n dispatchAction({\r\n type: 'hideTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype.dispose = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this._tooltipContent.dispose();\r\n unregister('itemTooltip', api);\r\n };\r\n TooltipView.type = 'tooltip';\r\n return TooltipView;\r\n }(ComponentView));\r\n function buildTooltipModel(modelCascade) {\r\n var resultModel = modelCascade.pop();\r\n while (modelCascade.length) {\r\n var tooltipOpt = modelCascade.pop();\r\n if (tooltipOpt) {\r\n if (tooltipOpt instanceof Model) {\r\n tooltipOpt = tooltipOpt.get('tooltip', true);\r\n }\r\n if (isString(tooltipOpt)) {\r\n tooltipOpt = {\r\n formatter: tooltipOpt\r\n };\r\n }\r\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\r\n }\r\n }\r\n return resultModel;\r\n }\r\n function makeDispatchAction$1(payload, api) {\r\n return payload.dispatchAction || bind(api.dispatchAction, api);\r\n }\r\n function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n if (gapH != null) {\r\n if (x + width + gapH + 2 > viewWidth) {\r\n x -= width + gapH;\r\n }\r\n else {\r\n x += gapH;\r\n }\r\n }\r\n if (gapV != null) {\r\n if (y + height + gapV > viewHeight) {\r\n y -= height + gapV;\r\n }\r\n else {\r\n y += gapV;\r\n }\r\n }\r\n return [x, y];\r\n }\r\n function confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n x = Math.min(x + width, viewWidth) - width;\r\n y = Math.min(y + height, viewHeight) - height;\r\n x = Math.max(x, 0);\r\n y = Math.max(y, 0);\r\n return [x, y];\r\n }\r\n function calcTooltipPosition(position, rect, contentSize) {\r\n var domWidth = contentSize[0];\r\n var domHeight = contentSize[1];\r\n var gap = 10;\r\n var offset = 5;\r\n var x = 0;\r\n var y = 0;\r\n var rectWidth = rect.width;\r\n var rectHeight = rect.height;\r\n switch (position) {\r\n case 'inside':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'top':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y - domHeight - gap;\r\n break;\r\n case 'bottom':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight + gap;\r\n break;\r\n case 'left':\r\n x = rect.x - domWidth - gap - offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'right':\r\n x = rect.x + rectWidth + gap + offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n }\r\n return [x, y];\r\n }\r\n function isCenterAlign(align) {\r\n return align === 'center' || align === 'middle';\r\n }\r\n ComponentView.registerClass(TooltipView);\n\n registerAction({\r\n type: 'showTip',\r\n event: 'showTip',\r\n update: 'tooltip:manuallyShowTip'\r\n }, function () { });\r\n registerAction({\r\n type: 'hideTip',\r\n event: 'hideTip',\r\n update: 'tooltip:manuallyHideTip'\r\n }, function () { });\n\n var getDefaultSelectorOptions = function (ecModel, type) {\r\n if (type === 'all') {\r\n return {\r\n type: 'all',\r\n title: ecModel.getLocale(['legend', 'selector', 'all'])\r\n };\r\n }\r\n else if (type === 'inverse') {\r\n return {\r\n type: 'inverse',\r\n title: ecModel.getLocale(['legend', 'selector', 'inverse'])\r\n };\r\n }\r\n };\r\n var LegendModel = (function (_super) {\r\n __extends(LegendModel, _super);\r\n function LegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendModel.type;\r\n _this.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n return _this;\r\n }\r\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n option.selected = option.selected || {};\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype._updateSelector = function (option) {\r\n var selector = option.selector;\r\n var ecModel = this.ecModel;\r\n if (selector === true) {\r\n selector = option.selector = ['all', 'inverse'];\r\n }\r\n if (isArray(selector)) {\r\n each(selector, function (item, index) {\r\n isString(item) && (item = { type: item });\r\n selector[index] = merge(item, getDefaultSelectorOptions(ecModel, item.type));\r\n });\r\n }\r\n };\r\n LegendModel.prototype.optionUpdated = function () {\r\n this._updateData(this.ecModel);\r\n var legendData = this._data;\r\n if (legendData[0] && this.get('selectedMode') === 'single') {\r\n var hasSelected = false;\r\n for (var i = 0; i < legendData.length; i++) {\r\n var name_1 = legendData[i].get('name');\r\n if (this.isSelected(name_1)) {\r\n this.select(name_1);\r\n hasSelected = true;\r\n break;\r\n }\r\n }\r\n !hasSelected && this.select(legendData[0].get('name'));\r\n }\r\n };\r\n LegendModel.prototype._updateData = function (ecModel) {\r\n var potentialData = [];\r\n var availableNames = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var seriesName = seriesModel.name;\r\n availableNames.push(seriesName);\r\n var isPotential;\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n var names = provider.getAllNames();\r\n if (!ecModel.isSeriesFiltered(seriesModel)) {\r\n availableNames = availableNames.concat(names);\r\n }\r\n if (names.length) {\r\n potentialData = potentialData.concat(names);\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n if (isPotential && isNameSpecified(seriesModel)) {\r\n potentialData.push(seriesModel.name);\r\n }\r\n });\r\n this._availableNames = availableNames;\r\n var rawData = this.get('data') || potentialData;\r\n var legendData = map(rawData, function (dataItem) {\r\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\r\n dataItem = {\r\n name: dataItem\r\n };\r\n }\r\n return new Model(dataItem, this, this.ecModel);\r\n }, this);\r\n this._data = legendData;\r\n };\r\n LegendModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n LegendModel.prototype.select = function (name) {\r\n var selected = this.option.selected;\r\n var selectedMode = this.get('selectedMode');\r\n if (selectedMode === 'single') {\r\n var data = this._data;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name')] = false;\r\n });\r\n }\r\n selected[name] = true;\r\n };\r\n LegendModel.prototype.unSelect = function (name) {\r\n if (this.get('selectedMode') !== 'single') {\r\n this.option.selected[name] = false;\r\n }\r\n };\r\n LegendModel.prototype.toggleSelected = function (name) {\r\n var selected = this.option.selected;\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n this[selected[name] ? 'unSelect' : 'select'](name);\r\n };\r\n LegendModel.prototype.allSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name', true)] = true;\r\n });\r\n };\r\n LegendModel.prototype.inverseSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n var name = dataItem.get('name', true);\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n selected[name] = !selected[name];\r\n });\r\n };\r\n LegendModel.prototype.isSelected = function (name) {\r\n var selected = this.option.selected;\r\n return !(selected.hasOwnProperty(name) && !selected[name])\r\n && indexOf(this._availableNames, name) >= 0;\r\n };\r\n LegendModel.prototype.getOrient = function () {\r\n return this.get('orient') === 'vertical'\r\n ? { index: 1, name: 'vertical' }\r\n : { index: 0, name: 'horizontal' };\r\n };\r\n LegendModel.type = 'legend.plain';\r\n LegendModel.dependencies = ['series'];\r\n LegendModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n orient: 'horizontal',\r\n left: 'center',\r\n top: 0,\r\n align: 'auto',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n itemWidth: 25,\r\n itemHeight: 14,\r\n inactiveColor: '#ccc',\r\n inactiveBorderColor: '#ccc',\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n textStyle: {\r\n color: '#333'\r\n },\r\n selectedMode: true,\r\n selector: false,\r\n selectorLabel: {\r\n show: true,\r\n borderRadius: 10,\r\n padding: [3, 5, 3, 5],\r\n fontSize: 12,\r\n fontFamily: ' sans-serif',\r\n color: '#666',\r\n borderWidth: 1,\r\n borderColor: '#666'\r\n },\r\n emphasis: {\r\n selectorLabel: {\r\n show: true,\r\n color: '#eee',\r\n backgroundColor: '#666'\r\n }\r\n },\r\n selectorPosition: 'auto',\r\n selectorItemGap: 7,\r\n selectorButtonGap: 10,\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return LegendModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(LegendModel);\n\n function legendSelectActionHandler(methodName, payload, ecModel) {\r\n var selectedMap = {};\r\n var isToggleSelect = methodName === 'toggleSelected';\r\n var isSelected;\r\n ecModel.eachComponent('legend', function (legendModel) {\r\n if (isToggleSelect && isSelected != null) {\r\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\r\n }\r\n else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\r\n legendModel[methodName]();\r\n }\r\n else {\r\n legendModel[methodName](payload.name);\r\n isSelected = legendModel.isSelected(payload.name);\r\n }\r\n var legendData = legendModel.getData();\r\n each(legendData, function (model) {\r\n var name = model.get('name');\r\n if (name === '\\n' || name === '') {\r\n return;\r\n }\r\n var isItemSelected = legendModel.isSelected(name);\r\n if (selectedMap.hasOwnProperty(name)) {\r\n selectedMap[name] = selectedMap[name] && isItemSelected;\r\n }\r\n else {\r\n selectedMap[name] = isItemSelected;\r\n }\r\n });\r\n });\r\n return (methodName === 'allSelect' || methodName === 'inverseSelect')\r\n ? {\r\n selected: selectedMap\r\n }\r\n : {\r\n name: payload.name,\r\n selected: selectedMap\r\n };\r\n }\r\n registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\r\n registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\r\n registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\r\n registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\r\n registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n\n function layout$2(group, componentModel, api) {\r\n var boxLayoutParams = componentModel.getBoxLayoutParams();\r\n var padding = componentModel.get('padding');\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\r\n box(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\r\n positionElement(group, boxLayoutParams, viewportSize, padding);\r\n }\r\n function makeBackground(rect, componentModel) {\r\n var padding = normalizeCssArray$1(componentModel.get('padding'));\r\n var style = componentModel.getItemStyle(['color', 'opacity']);\r\n style.fill = componentModel.get('backgroundColor');\r\n rect = new Rect({\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[1] + padding[3],\r\n height: rect.height + padding[0] + padding[2],\r\n r: componentModel.get('borderRadius')\r\n },\r\n style: style,\r\n silent: true,\r\n z2: -1\r\n });\r\n return rect;\r\n }\n\n var curry$1 = curry;\r\n var each$6 = each;\r\n var Group$1 = Group;\r\n var LegendView = (function (_super) {\r\n __extends(LegendView, _super);\r\n function LegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendView.type;\r\n _this.newlineDisabled = false;\r\n return _this;\r\n }\r\n LegendView.prototype.init = function () {\r\n this.group.add(this._contentGroup = new Group$1());\r\n this.group.add(this._selectorGroup = new Group$1());\r\n this._isFirstRender = true;\r\n };\r\n LegendView.prototype.getContentGroup = function () {\r\n return this._contentGroup;\r\n };\r\n LegendView.prototype.getSelectorGroup = function () {\r\n return this._selectorGroup;\r\n };\r\n LegendView.prototype.render = function (legendModel, ecModel, api) {\r\n var isFirstRender = this._isFirstRender;\r\n this._isFirstRender = false;\r\n this.resetInner();\r\n if (!legendModel.get('show', true)) {\r\n return;\r\n }\r\n var itemAlign = legendModel.get('align');\r\n var orient = legendModel.get('orient');\r\n if (!itemAlign || itemAlign === 'auto') {\r\n itemAlign = (legendModel.get('left') === 'right'\r\n && orient === 'vertical') ? 'right' : 'left';\r\n }\r\n var selector = legendModel.get('selector', true);\r\n var selectorPosition = legendModel.get('selectorPosition', true);\r\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\r\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\r\n }\r\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var positionInfo = legendModel.getBoxLayoutParams();\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var padding = legendModel.get('padding');\r\n var maxSize = getLayoutRect(positionInfo, viewportSize, padding);\r\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\r\n var layoutRect = getLayoutRect(defaults({\r\n width: mainRect.width,\r\n height: mainRect.height\r\n }, positionInfo), viewportSize, padding);\r\n this.group.x = layoutRect.x - mainRect.x;\r\n this.group.y = layoutRect.y - mainRect.y;\r\n this.group.markRedraw();\r\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\r\n };\r\n LegendView.prototype.resetInner = function () {\r\n this.getContentGroup().removeAll();\r\n this._backgroundEl && this.group.remove(this._backgroundEl);\r\n this.getSelectorGroup().removeAll();\r\n };\r\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var legendDrawnMap = createHashMap();\r\n var selectMode = legendModel.get('selectedMode');\r\n var excludeSeriesId = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\r\n });\r\n each$6(legendModel.getData(), function (itemModel, dataIndex) {\r\n var name = itemModel.get('name');\r\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\r\n var g = new Group$1();\r\n g.newline = true;\r\n contentGroup.add(g);\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByName(name)[0];\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel) {\r\n var data = seriesModel.getData();\r\n var style = data.getVisual('style');\r\n var color = style[data.getVisual('drawType')] || style.fill;\r\n var borderColor = style.stroke;\r\n var decal = style.decal;\r\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\r\n var symbolType = data.getVisual('symbol');\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, name, null, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n else {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n if (!provider.containName(name)) {\r\n return;\r\n }\r\n var idx = provider.indexOfName(name);\r\n var style = provider.getItemVisual(idx, 'style');\r\n var borderColor = style.stroke;\r\n var decal = style.decal;\r\n var color = style.fill;\r\n var colorArr = parse(style.fill);\r\n if (colorArr && colorArr[3] === 0) {\r\n colorArr[3] = 0.2;\r\n color = stringify(colorArr, 'rgba');\r\n }\r\n var legendSymbolType = 'roundRect';\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, null, name, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, null, name, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, null, name, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n }, this);\r\n }\r\n if (__DEV__) {\r\n if (!legendDrawnMap.get(name)) {\r\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\r\n }\r\n }\r\n }, this);\r\n if (selector) {\r\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\r\n }\r\n };\r\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n each$6(selector, function createSelectorButton(selectorItem) {\r\n var type = selectorItem.type;\r\n var labelText = new ZRText({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n },\r\n onclick: function () {\r\n api.dispatchAction({\r\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\r\n });\r\n }\r\n });\r\n selectorGroup.add(labelText);\r\n var labelModel = legendModel.getModel('selectorLabel');\r\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\r\n setLabelStyle(labelText, { normal: labelModel, emphasis: emphasisLabelModel }, {\r\n defaultText: selectorItem.title\r\n });\r\n enableHoverEmphasis(labelText);\r\n });\r\n };\r\n LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\r\n var itemWidth = legendModel.get('itemWidth');\r\n var itemHeight = legendModel.get('itemHeight');\r\n var inactiveColor = legendModel.get('inactiveColor');\r\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\r\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\r\n var legendModelItemStyle = legendModel.getModel('itemStyle');\r\n var isSelected = legendModel.isSelected(name);\r\n var itemGroup = new Group$1();\r\n var textStyleModel = itemModel.getModel('textStyle');\r\n var itemIcon = itemModel.get('icon');\r\n var tooltipModel = itemModel.getModel('tooltip');\r\n var legendGlobalTooltipModel = tooltipModel.parentModel;\r\n legendSymbolType = itemIcon || legendSymbolType;\r\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\r\n if (!itemIcon && symbolType\r\n && ((symbolType !== legendSymbolType) || symbolType === 'none')) {\r\n var size = itemHeight * 0.8;\r\n if (symbolType === 'none') {\r\n symbolType = 'circle';\r\n }\r\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\r\n }\r\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\r\n var textAlign = itemAlign;\r\n var formatter = legendModel.get('formatter');\r\n var content = name;\r\n if (typeof formatter === 'string' && formatter) {\r\n content = formatter.replace('{name}', name != null ? name : '');\r\n }\r\n else if (typeof formatter === 'function') {\r\n content = formatter(name);\r\n }\r\n itemGroup.add(new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: content,\r\n x: textX,\r\n y: itemHeight / 2,\r\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\r\n align: textAlign,\r\n verticalAlign: 'middle'\r\n })\r\n }));\r\n var hitRect = new Rect({\r\n shape: itemGroup.getBoundingRect(),\r\n invisible: true\r\n });\r\n if (tooltipModel.get('show')) {\r\n var formatterParams = {\r\n componentType: 'legend',\r\n legendIndex: legendModel.componentIndex,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n hitRect.tooltip = extend({\r\n content: name,\r\n formatter: legendGlobalTooltipModel.get('formatter', true)\r\n || function (params) {\r\n return params.name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipModel.option);\r\n }\r\n itemGroup.add(hitRect);\r\n itemGroup.eachChild(function (child) {\r\n child.silent = true;\r\n });\r\n hitRect.silent = !selectMode;\r\n this.getContentGroup().add(itemGroup);\r\n enableHoverEmphasis(itemGroup);\r\n itemGroup.__legendDataIndex = dataIndex;\r\n return itemGroup;\r\n };\r\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var selectorGroup = this.getSelectorGroup();\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\r\n var contentRect = contentGroup.getBoundingRect();\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n selectorGroup.markRedraw();\r\n contentGroup.markRedraw();\r\n if (selector) {\r\n box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = orientIdx === 0 ? 'width' : 'height';\r\n var hw = orientIdx === 0 ? 'height' : 'width';\r\n var yx = orientIdx === 0 ? 'y' : 'x';\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\r\n }\r\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n return mainRect;\r\n }\r\n else {\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n return this.group.getBoundingRect();\r\n }\r\n };\r\n LegendView.prototype.remove = function () {\r\n this.getContentGroup().removeAll();\r\n this._isFirstRender = true;\r\n };\r\n LegendView.type = 'legend.plain';\r\n return LegendView;\r\n }(ComponentView));\r\n function setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\r\n var itemStyle;\r\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\r\n itemStyle = legendModelItemStyle.getItemStyle();\r\n symbol.style.stroke = borderColor;\r\n symbol.style.decal = decal;\r\n if (!isSelected) {\r\n itemStyle.stroke = inactiveBorderColor;\r\n }\r\n }\r\n else {\r\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\r\n }\r\n symbol.setStyle(itemStyle);\r\n return symbol;\r\n }\r\n function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\r\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\r\n api.dispatchAction({\r\n type: 'legendToggleSelect',\r\n name: seriesName != null ? seriesName : dataName\r\n });\r\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\r\n }\r\n function isUseHoverLayer(api) {\r\n var list = api.getZr().storage.getDisplayList();\r\n var emphasisState;\r\n var i = 0;\r\n var len = list.length;\r\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\r\n i++;\r\n }\r\n return emphasisState && emphasisState.hoverLayer;\r\n }\r\n function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'highlight',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'downplay',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n ComponentView.registerClass(LegendView);\n\n function legendFilter(ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (legendModels && legendModels.length) {\r\n ecModel.filterSeries(function (series) {\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(series.name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\r\n ComponentModel.registerSubTypeDefaulter('legend', function () {\r\n return 'plain';\r\n });\n\n var ScrollableLegendModel = (function (_super) {\r\n __extends(ScrollableLegendModel, _super);\r\n function ScrollableLegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendModel.type;\r\n return _this;\r\n }\r\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\r\n this.option.scrollDataIndex = scrollDataIndex;\r\n };\r\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\r\n };\r\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n mergeAndNormalizeLayoutParams(this, this.option, option);\r\n };\r\n ScrollableLegendModel.type = 'legend.scroll';\r\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\r\n scrollDataIndex: 0,\r\n pageButtonItemGap: 5,\r\n pageButtonGap: null,\r\n pageButtonPosition: 'end',\r\n pageFormatter: '{current}/{total}',\r\n pageIcons: {\r\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\r\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\r\n },\r\n pageIconColor: '#2f4554',\r\n pageIconInactiveColor: '#aaa',\r\n pageIconSize: 15,\r\n pageTextStyle: {\r\n color: '#333'\r\n },\r\n animationDurationUpdate: 800\r\n });\r\n return ScrollableLegendModel;\r\n }(LegendModel));\r\n function mergeAndNormalizeLayoutParams(legendModel, target, raw) {\r\n var orient = legendModel.getOrient();\r\n var ignoreSize = [1, 1];\r\n ignoreSize[orient.index] = 0;\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: !!ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(ScrollableLegendModel);\n\n var Group$2 = Group;\r\n var WH = ['width', 'height'];\r\n var XY = ['x', 'y'];\r\n var ScrollableLegendView = (function (_super) {\r\n __extends(ScrollableLegendView, _super);\r\n function ScrollableLegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendView.type;\r\n _this.newlineDisabled = true;\r\n _this._currentIndex = 0;\r\n return _this;\r\n }\r\n ScrollableLegendView.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n this.group.add(this._containerGroup = new Group$2());\r\n this._containerGroup.add(this.getContentGroup());\r\n this.group.add(this._controllerGroup = new Group$2());\r\n };\r\n ScrollableLegendView.prototype.resetInner = function () {\r\n _super.prototype.resetInner.call(this);\r\n this._controllerGroup.removeAll();\r\n this._containerGroup.removeClipPath();\r\n this._containerGroup.__rectSize = null;\r\n };\r\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var self = this;\r\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var controllerGroup = this._controllerGroup;\r\n var pageIconSize = legendModel.get('pageIconSize', true);\r\n var pageIconSizeArr = isArray(pageIconSize)\r\n ? pageIconSize : [pageIconSize, pageIconSize];\r\n createPageButton('pagePrev', 0);\r\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\r\n controllerGroup.add(new ZRText({\r\n name: 'pageText',\r\n style: {\r\n text: 'xx/xx',\r\n fill: pageTextStyleModel.getTextColor(),\r\n font: pageTextStyleModel.getFont(),\r\n verticalAlign: 'middle',\r\n align: 'center'\r\n },\r\n silent: true\r\n }));\r\n createPageButton('pageNext', 1);\r\n function createPageButton(name, iconIdx) {\r\n var pageDataIndexName = (name + 'DataIndex');\r\n var icon = createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\r\n onclick: bind(self._pageGo, self, pageDataIndexName, legendModel, api)\r\n }, {\r\n x: -pageIconSizeArr[0] / 2,\r\n y: -pageIconSizeArr[1] / 2,\r\n width: pageIconSizeArr[0],\r\n height: pageIconSizeArr[1]\r\n });\r\n icon.name = name;\r\n controllerGroup.add(icon);\r\n }\r\n };\r\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH[orientIdx];\r\n var xy = XY[orientIdx];\r\n var hw = WH[1 - orientIdx];\r\n var yx = XY[1 - orientIdx];\r\n selector && box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var processMaxSize = clone(maxSize);\r\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\r\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\r\n if (selector) {\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n var offset = selectorRect[wh] + selectorButtonGap;\r\n selectorPos[orientIdx] -= offset;\r\n mainRect[xy] -= offset;\r\n }\r\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\r\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\r\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n selectorGroup.markRedraw();\r\n }\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\r\n var contentGroup = this.getContentGroup();\r\n var containerGroup = this._containerGroup;\r\n var controllerGroup = this._controllerGroup;\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\r\n box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\r\n var contentRect = contentGroup.getBoundingRect();\r\n var controllerRect = controllerGroup.getBoundingRect();\r\n var showController = this._showController = contentRect[wh] > maxSize[wh];\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n if (!isFirstRender) {\r\n contentPos[orientIdx] = contentGroup[xy];\r\n }\r\n var containerPos = [0, 0];\r\n var controllerPos = [-controllerRect.x, -controllerRect.y];\r\n var pageButtonGap = retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\r\n if (showController) {\r\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\r\n if (pageButtonPosition === 'end') {\r\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\r\n }\r\n else {\r\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\r\n }\r\n }\r\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\r\n contentGroup.setPosition(contentPos);\r\n containerGroup.setPosition(containerPos);\r\n controllerGroup.setPosition(controllerPos);\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\r\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\r\n containerGroup.__rectSize = maxSize[wh];\r\n if (showController) {\r\n var clipShape = { x: 0, y: 0 };\r\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\r\n clipShape[hw] = mainRect[hw];\r\n containerGroup.setClipPath(new Rect({ shape: clipShape }));\r\n containerGroup.__rectSize = clipShape[wh];\r\n }\r\n else {\r\n controllerGroup.eachChild(function (child) {\r\n child.attr({\r\n invisible: true,\r\n silent: true\r\n });\r\n });\r\n }\r\n var pageInfo = this._getPageInfo(legendModel);\r\n pageInfo.pageIndex != null && updateProps(contentGroup, { x: pageInfo.contentPosition[0], y: pageInfo.contentPosition[1] }, showController ? legendModel : null);\r\n this._updatePageInfoView(legendModel, pageInfo);\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\r\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\r\n scrollDataIndex != null && api.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: scrollDataIndex,\r\n legendId: legendModel.id\r\n });\r\n };\r\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\r\n var controllerGroup = this._controllerGroup;\r\n each(['pagePrev', 'pageNext'], function (name) {\r\n var key = (name + 'DataIndex');\r\n var canJump = pageInfo[key] != null;\r\n var icon = controllerGroup.childOfName(name);\r\n if (icon) {\r\n icon.setStyle('fill', canJump\r\n ? legendModel.get('pageIconColor', true)\r\n : legendModel.get('pageIconInactiveColor', true));\r\n icon.cursor = canJump ? 'pointer' : 'default';\r\n }\r\n });\r\n var pageText = controllerGroup.childOfName('pageText');\r\n var pageFormatter = legendModel.get('pageFormatter');\r\n var pageIndex = pageInfo.pageIndex;\r\n var current = pageIndex != null ? pageIndex + 1 : 0;\r\n var total = pageInfo.pageCount;\r\n pageText && pageFormatter && pageText.setStyle('text', isString(pageFormatter)\r\n ? pageFormatter.replace('{current}', current == null ? '' : current + '')\r\n .replace('{total}', total == null ? '' : total + '')\r\n : pageFormatter({ current: current, total: total }));\r\n };\r\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\r\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\r\n var contentGroup = this.getContentGroup();\r\n var containerRectSize = this._containerGroup.__rectSize;\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH[orientIdx];\r\n var xy = XY[orientIdx];\r\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\r\n var children = contentGroup.children();\r\n var targetItem = children[targetItemIndex];\r\n var itemCount = children.length;\r\n var pCount = !itemCount ? 0 : 1;\r\n var result = {\r\n contentPosition: [contentGroup.x, contentGroup.y],\r\n pageCount: pCount,\r\n pageIndex: pCount - 1,\r\n pagePrevDataIndex: null,\r\n pageNextDataIndex: null\r\n };\r\n if (!targetItem) {\r\n return result;\r\n }\r\n var targetItemInfo = getItemInfo(targetItem);\r\n result.contentPosition[orientIdx] = -targetItemInfo.s;\r\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize)\r\n || (currItemInfo && !intersect(currItemInfo, winStartItemInfo.s))) {\r\n if (winEndItemInfo.i > winStartItemInfo.i) {\r\n winStartItemInfo = winEndItemInfo;\r\n }\r\n else {\r\n winStartItemInfo = currItemInfo;\r\n }\r\n if (winStartItemInfo) {\r\n if (result.pageNextDataIndex == null) {\r\n result.pageNextDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n }\r\n }\r\n winEndItemInfo = currItemInfo;\r\n }\r\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s))\r\n && winStartItemInfo.i < winEndItemInfo.i) {\r\n winEndItemInfo = winStartItemInfo;\r\n if (result.pagePrevDataIndex == null) {\r\n result.pagePrevDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n ++result.pageIndex;\r\n }\r\n winStartItemInfo = currItemInfo;\r\n }\r\n return result;\r\n function getItemInfo(el) {\r\n if (el) {\r\n var itemRect = el.getBoundingRect();\r\n var start = itemRect[xy] + el[xy];\r\n return {\r\n s: start,\r\n e: start + itemRect[wh],\r\n i: el.__legendDataIndex\r\n };\r\n }\r\n }\r\n function intersect(itemInfo, winStart) {\r\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\r\n }\r\n };\r\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\r\n if (!this._showController) {\r\n return 0;\r\n }\r\n var index;\r\n var contentGroup = this.getContentGroup();\r\n var defaultIndex;\r\n contentGroup.eachChild(function (child, idx) {\r\n var legendDataIdx = child.__legendDataIndex;\r\n if (defaultIndex == null && legendDataIdx != null) {\r\n defaultIndex = idx;\r\n }\r\n if (legendDataIdx === targetDataIndex) {\r\n index = idx;\r\n }\r\n });\r\n return index != null ? index : defaultIndex;\r\n };\r\n ScrollableLegendView.type = 'legend.scroll';\r\n return ScrollableLegendView;\r\n }(LegendView));\r\n ComponentView.registerClass(ScrollableLegendView);\n\n registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\r\n var scrollDataIndex = payload.scrollDataIndex;\r\n scrollDataIndex != null && ecModel.eachComponent({ mainType: 'legend', subType: 'scroll', query: payload }, function (legendModel) {\r\n legendModel.setScrollDataIndex(scrollDataIndex);\r\n });\r\n });\n\n var TitleModel = (function (_super) {\r\n __extends(TitleModel, _super);\r\n function TitleModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleModel.type;\r\n _this.layoutMode = { type: 'box', ignoreSize: true };\r\n return _this;\r\n }\r\n TitleModel.type = 'title';\r\n TitleModel.defaultOption = {\r\n zlevel: 0,\r\n z: 6,\r\n show: true,\r\n text: '',\r\n target: 'blank',\r\n subtext: '',\r\n subtarget: 'blank',\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n color: '#464646'\r\n },\r\n subtextStyle: {\r\n fontSize: 12,\r\n color: '#6E7079'\r\n }\r\n };\r\n return TitleModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TitleModel);\r\n var TitleView = (function (_super) {\r\n __extends(TitleView, _super);\r\n function TitleView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleView.type;\r\n return _this;\r\n }\r\n TitleView.prototype.render = function (titleModel, ecModel, api) {\r\n this.group.removeAll();\r\n if (!titleModel.get('show')) {\r\n return;\r\n }\r\n var group = this.group;\r\n var textStyleModel = titleModel.getModel('textStyle');\r\n var subtextStyleModel = titleModel.getModel('subtextStyle');\r\n var textAlign = titleModel.get('textAlign');\r\n var textVerticalAlign = retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\r\n var textEl = new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: titleModel.get('text'),\r\n fill: textStyleModel.getTextColor()\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var textRect = textEl.getBoundingRect();\r\n var subText = titleModel.get('subtext');\r\n var subTextEl = new ZRText({\r\n style: createTextStyle(subtextStyleModel, {\r\n text: subText,\r\n fill: subtextStyleModel.getTextColor(),\r\n y: textRect.height + titleModel.get('itemGap'),\r\n verticalAlign: 'top'\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var link = titleModel.get('link');\r\n var sublink = titleModel.get('sublink');\r\n var triggerEvent = titleModel.get('triggerEvent', true);\r\n textEl.silent = !link && !triggerEvent;\r\n subTextEl.silent = !sublink && !triggerEvent;\r\n if (link) {\r\n textEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('target'));\r\n });\r\n }\r\n if (sublink) {\r\n subTextEl.on('click', function () {\r\n windowOpen(sublink, '_' + titleModel.get('subtarget'));\r\n });\r\n }\r\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent\r\n ? {\r\n componentType: 'title',\r\n componentIndex: titleModel.componentIndex\r\n }\r\n : null;\r\n group.add(textEl);\r\n subText && group.add(subTextEl);\r\n var groupRect = group.getBoundingRect();\r\n var layoutOption = titleModel.getBoxLayoutParams();\r\n layoutOption.width = groupRect.width;\r\n layoutOption.height = groupRect.height;\r\n var layoutRect = getLayoutRect(layoutOption, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, titleModel.get('padding'));\r\n if (!textAlign) {\r\n textAlign = (titleModel.get('left') || titleModel.get('right'));\r\n if (textAlign === 'middle') {\r\n textAlign = 'center';\r\n }\r\n if (textAlign === 'right') {\r\n layoutRect.x += layoutRect.width;\r\n }\r\n else if (textAlign === 'center') {\r\n layoutRect.x += layoutRect.width / 2;\r\n }\r\n }\r\n if (!textVerticalAlign) {\r\n textVerticalAlign = (titleModel.get('top') || titleModel.get('bottom'));\r\n if (textVerticalAlign === 'center') {\r\n textVerticalAlign = 'middle';\r\n }\r\n if (textVerticalAlign === 'bottom') {\r\n layoutRect.y += layoutRect.height;\r\n }\r\n else if (textVerticalAlign === 'middle') {\r\n layoutRect.y += layoutRect.height / 2;\r\n }\r\n textVerticalAlign = textVerticalAlign || 'top';\r\n }\r\n group.x = layoutRect.x;\r\n group.y = layoutRect.y;\r\n group.markRedraw();\r\n var alignStyle = {\r\n align: textAlign,\r\n verticalAlign: textVerticalAlign\r\n };\r\n textEl.setStyle(alignStyle);\r\n subTextEl.setStyle(alignStyle);\r\n groupRect = group.getBoundingRect();\r\n var padding = layoutRect.margin;\r\n var style = titleModel.getItemStyle(['color', 'opacity']);\r\n style.fill = titleModel.get('backgroundColor');\r\n var rect = new Rect({\r\n shape: {\r\n x: groupRect.x - padding[3],\r\n y: groupRect.y - padding[0],\r\n width: groupRect.width + padding[1] + padding[3],\r\n height: groupRect.height + padding[0] + padding[2],\r\n r: titleModel.get('borderRadius')\r\n },\r\n style: style,\r\n subPixelOptimize: true,\r\n silent: true\r\n });\r\n group.add(rect);\r\n };\r\n TitleView.type = 'title';\r\n return TitleView;\r\n }(ComponentView));\r\n ComponentView.registerClass(TitleView);\n\n function fillLabel(opt) {\r\n defaultEmphasis(opt, 'label', ['show']);\r\n }\r\n var inner$a = makeInner();\r\n var MarkerModel = (function (_super) {\r\n __extends(MarkerModel, _super);\r\n function MarkerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerModel.type;\r\n _this.createdBySelf = false;\r\n return _this;\r\n }\r\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\r\n if (__DEV__) {\r\n if (this.type === 'marker') {\r\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\r\n }\r\n }\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._mergeOption(option, ecModel, false, true);\r\n };\r\n MarkerModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var hostSeries = this.__hostSeries;\r\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\r\n };\r\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\r\n this._mergeOption(newOpt, ecModel, false, false);\r\n };\r\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\r\n var componentType = this.mainType;\r\n if (!createdBySelf) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerOpt = seriesModel.get(this.mainType, true);\r\n var markerModel = inner$a(seriesModel)[componentType];\r\n if (!markerOpt || !markerOpt.data) {\r\n inner$a(seriesModel)[componentType] = null;\r\n return;\r\n }\r\n if (!markerModel) {\r\n if (isInit) {\r\n fillLabel(markerOpt);\r\n }\r\n each(markerOpt.data, function (item) {\r\n if (item instanceof Array) {\r\n fillLabel(item[0]);\r\n fillLabel(item[1]);\r\n }\r\n else {\r\n fillLabel(item);\r\n }\r\n });\r\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\r\n extend(markerModel, {\r\n mainType: this.mainType,\r\n seriesIndex: seriesModel.seriesIndex,\r\n name: seriesModel.name,\r\n createdBySelf: true\r\n });\r\n markerModel.__hostSeries = seriesModel;\r\n }\r\n else {\r\n markerModel._mergeOption(markerOpt, ecModel, true);\r\n }\r\n inner$a(seriesModel)[componentType] = markerModel;\r\n }, this);\r\n }\r\n };\r\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var itemName = data.getName(dataIndex);\r\n return createTooltipMarkup('section', {\r\n header: this.name,\r\n blocks: [createTooltipMarkup('nameValue', {\r\n name: itemName,\r\n value: value,\r\n noName: !itemName,\r\n noValue: value == null\r\n })]\r\n });\r\n };\r\n MarkerModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n MarkerModel.prototype.setData = function (data) {\r\n this._data = data;\r\n };\r\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\r\n return inner$a(seriesModel)[componentType];\r\n };\r\n MarkerModel.type = 'marker';\r\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\r\n return MarkerModel;\r\n }(ComponentModel));\r\n mixin(MarkerModel, DataFormatMixin.prototype);\n\n var MarkPointModel = (function (_super) {\r\n __extends(MarkPointModel, _super);\r\n function MarkPointModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointModel.type;\r\n return _this;\r\n }\r\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkPointModel.type = 'markPoint';\r\n MarkPointModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: 'pin',\r\n symbolSize: 50,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'inside'\r\n },\r\n itemStyle: {\r\n borderWidth: 2\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return MarkPointModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkPointModel);\n\n function hasXOrY(item) {\r\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\r\n }\r\n function hasXAndY(item) {\r\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\r\n }\r\n function markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\r\n var coordArr = [];\r\n var stacked = isDimensionStacked(data, targetDataDim);\r\n var calcDataDim = stacked\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDataDim;\r\n var value = numCalculate(data, calcDataDim, markerType);\r\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\r\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\r\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\r\n var coordArrValue = data.get(targetDataDim, dataIndex);\r\n var precision = getPrecision(data.get(targetDataDim, dataIndex));\r\n precision = Math.min(precision, 20);\r\n if (precision >= 0) {\r\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\r\n }\r\n return [coordArr, coordArrValue];\r\n }\r\n var markerTypeCalculator = {\r\n min: curry(markerTypeCalculatorWithExtent, 'min'),\r\n max: curry(markerTypeCalculatorWithExtent, 'max'),\r\n average: curry(markerTypeCalculatorWithExtent, 'average'),\r\n median: curry(markerTypeCalculatorWithExtent, 'median')\r\n };\r\n function dataTransform(seriesModel, item) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\r\n var dims = coordSys.dimensions;\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n item = clone(item);\r\n if (item.type\r\n && markerTypeCalculator[item.type]\r\n && axisInfo.baseAxis && axisInfo.valueAxis) {\r\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\r\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\r\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\r\n item.coord = coordInfo[0];\r\n item.value = coordInfo[1];\r\n }\r\n else {\r\n var coord = [\r\n item.xAxis != null ? item.xAxis : item.radiusAxis,\r\n item.yAxis != null ? item.yAxis : item.angleAxis\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n if (markerTypeCalculator[coord[i]]) {\r\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\r\n }\r\n }\r\n item.coord = coord;\r\n }\r\n }\r\n return item;\r\n }\r\n function getAxisInfo$1(item, data, coordSys, seriesModel) {\r\n var ret = {};\r\n if (item.valueIndex != null || item.valueDim != null) {\r\n ret.valueDataDim = item.valueIndex != null\r\n ? data.getDimension(item.valueIndex) : item.valueDim;\r\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\r\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n }\r\n else {\r\n ret.baseAxis = seriesModel.getBaseAxis();\r\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\r\n }\r\n return ret;\r\n }\r\n function dataDimToCoordDim(seriesModel, dataDim) {\r\n var data = seriesModel.getData();\r\n var dimensions = data.dimensions;\r\n dataDim = data.getDimension(dataDim);\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimItem = data.getDimensionInfo(dimensions[i]);\r\n if (dimItem.name === dataDim) {\r\n return dimItem.coordDim;\r\n }\r\n }\r\n }\r\n function dataFilter$1(coordSys, item) {\r\n return (coordSys && coordSys.containData && item.coord && !hasXOrY(item))\r\n ? coordSys.containData(item.coord) : true;\r\n }\r\n function dimValueGetter(item, dimName, dataIndex, dimIndex) {\r\n if (dimIndex < 2) {\r\n return item.coord && item.coord[dimIndex];\r\n }\r\n return item.value;\r\n }\r\n function numCalculate(data, valueDataDim, type) {\r\n if (type === 'average') {\r\n var sum_1 = 0;\r\n var count_1 = 0;\r\n data.each(valueDataDim, function (val, idx) {\r\n if (!isNaN(val)) {\r\n sum_1 += val;\r\n count_1++;\r\n }\r\n });\r\n return sum_1 / count_1;\r\n }\r\n else if (type === 'median') {\r\n return data.getMedian(valueDataDim);\r\n }\r\n else {\r\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\r\n }\r\n }\n\n var inner$b = makeInner();\r\n var MarkerView = (function (_super) {\r\n __extends(MarkerView, _super);\r\n function MarkerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerView.type;\r\n return _this;\r\n }\r\n MarkerView.prototype.init = function () {\r\n this.markerGroupMap = createHashMap();\r\n };\r\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\r\n var _this = this;\r\n var markerGroupMap = this.markerGroupMap;\r\n markerGroupMap.each(function (item) {\r\n inner$b(item).keep = false;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\r\n });\r\n markerGroupMap.each(function (item) {\r\n !inner$b(item).keep && _this.group.remove(item.group);\r\n });\r\n };\r\n MarkerView.prototype.markKeep = function (drawGroup) {\r\n inner$b(drawGroup).keep = true;\r\n };\r\n MarkerView.prototype.blurSeries = function (seriesModelList) {\r\n var _this = this;\r\n each(seriesModelList, function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n if (markerModel) {\r\n var data = markerModel.getData();\r\n data.eachItemGraphicEl(function (el) {\r\n if (el) {\r\n enterBlur(el);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n MarkerView.type = 'marker';\r\n return MarkerView;\r\n }(ComponentView));\n\n function updateMarkerLayout(mpData, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\r\n }\r\n else if (coordSys) {\r\n var x = mpData.get(coordSys.dimensions[0], idx);\r\n var y = mpData.get(coordSys.dimensions[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n mpData.setItemLayout(idx, point);\r\n });\r\n }\r\n var MarkPointView = (function (_super) {\r\n __extends(MarkPointView, _super);\r\n function MarkPointView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointView.type;\r\n return _this;\r\n }\r\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\r\n if (mpModel) {\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var symbolDrawMap = this.markerGroupMap;\r\n var symbolDraw = symbolDrawMap.get(seriesId)\r\n || symbolDrawMap.set(seriesId, new SymbolDraw());\r\n var mpData = createList$1(coordSys, seriesModel, mpModel);\r\n mpModel.setData(mpData);\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var symbol = itemModel.getShallow('symbol');\r\n var symbolSize = itemModel.getShallow('symbolSize');\r\n var symbolRotate = itemModel.getShallow('symbolRotate');\r\n if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\r\n var rawIdx = mpModel.getRawValue(idx);\r\n var dataParams = mpModel.getDataParams(idx);\r\n if (isFunction(symbol)) {\r\n symbol = symbol(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolSize)) {\r\n symbolSize = symbolSize(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolRotate)) {\r\n symbolRotate = symbolRotate(rawIdx, dataParams);\r\n }\r\n }\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n var color = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color;\r\n }\r\n mpData.setItemVisual(idx, {\r\n symbol: symbol,\r\n symbolSize: symbolSize,\r\n symbolRotate: symbolRotate,\r\n style: style\r\n });\r\n });\r\n symbolDraw.updateData(mpData);\r\n this.group.add(symbolDraw.group);\r\n mpData.eachItemGraphicEl(function (el) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mpModel;\r\n });\r\n });\r\n this.markKeep(symbolDraw);\r\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkPointView.type = 'markPoint';\r\n return MarkPointView;\r\n }(MarkerView));\r\n function createList$1(coordSys, seriesModel, mpModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var mpData = new List(coordDimsInfos, mpModel);\r\n var dataOpt = map(mpModel.get('data'), curry(dataTransform, seriesModel));\r\n if (coordSys) {\r\n dataOpt = filter(dataOpt, curry(dataFilter$1, coordSys));\r\n }\r\n mpData.initData(dataOpt, null, coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n });\r\n return mpData;\r\n }\r\n ComponentView.registerClass(MarkPointView);\n\n registerPreprocessor(function (opt) {\r\n opt.markPoint = opt.markPoint || {};\r\n });\n\n var MarkLineModel = (function (_super) {\r\n __extends(MarkLineModel, _super);\r\n function MarkLineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineModel.type;\r\n return _this;\r\n }\r\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkLineModel.type = 'markLine';\r\n MarkLineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: ['circle', 'arrow'],\r\n symbolSize: [8, 16],\r\n precision: 2,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'end',\r\n distance: 5\r\n },\r\n lineStyle: {\r\n type: 'dashed'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n width: 3\r\n }\r\n },\r\n animationEasing: 'linear'\r\n };\r\n return MarkLineModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkLineModel);\n\n var straightLineProto = Line.prototype;\r\n var bezierCurveProto = BezierCurve.prototype;\r\n var StraightLineShape = (function () {\r\n function StraightLineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return StraightLineShape;\r\n }());\r\n var CurveShape = (function (_super) {\r\n __extends(CurveShape, _super);\r\n function CurveShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return CurveShape;\r\n }(StraightLineShape));\r\n function isStraightLine(shape) {\r\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\r\n }\r\n var ECLinePath = (function (_super) {\r\n __extends(ECLinePath, _super);\r\n function ECLinePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-line';\r\n return _this;\r\n }\r\n ECLinePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECLinePath.prototype.getDefaultShape = function () {\r\n return new StraightLineShape();\r\n };\r\n ECLinePath.prototype.buildPath = function (ctx, shape) {\r\n if (isStraightLine(shape)) {\r\n straightLineProto.buildPath.call(this, ctx, shape);\r\n }\r\n else {\r\n bezierCurveProto.buildPath.call(this, ctx, shape);\r\n }\r\n };\r\n ECLinePath.prototype.pointAt = function (t) {\r\n if (isStraightLine(this.shape)) {\r\n return straightLineProto.pointAt.call(this, t);\r\n }\r\n else {\r\n return bezierCurveProto.pointAt.call(this, t);\r\n }\r\n };\r\n ECLinePath.prototype.tangentAt = function (t) {\r\n var shape = this.shape;\r\n var p = isStraightLine(shape)\r\n ? [shape.x2 - shape.x1, shape.y2 - shape.y1]\r\n : bezierCurveProto.tangentAt.call(this, t);\r\n return normalize(p, p);\r\n };\r\n return ECLinePath;\r\n }(Path));\n\n var SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\r\n function makeSymbolTypeKey(symbolCategory) {\r\n return '_' + symbolCategory + 'Type';\r\n }\r\n function createSymbol$1(name, lineData, idx) {\r\n var symbolType = lineData.getItemVisual(idx, name);\r\n if (!symbolType || symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\r\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\r\n var symbolSizeArr = isArray(symbolSize)\r\n ? symbolSize : [symbolSize, symbolSize];\r\n var symbolPath = createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\r\n symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate)\r\n ? void 0\r\n : +symbolRotate * Math.PI / 180 || 0;\r\n symbolPath.name = name;\r\n return symbolPath;\r\n }\r\n function createLine(points) {\r\n var line = new ECLinePath({\r\n name: 'line',\r\n subPixelOptimize: true\r\n });\r\n setLinePoints(line.shape, points);\r\n return line;\r\n }\r\n function setLinePoints(targetShape, points) {\r\n targetShape.x1 = points[0][0];\r\n targetShape.y1 = points[0][1];\r\n targetShape.x2 = points[1][0];\r\n targetShape.y2 = points[1][1];\r\n targetShape.percent = 1;\r\n var cp1 = points[2];\r\n if (cp1) {\r\n targetShape.cpx1 = cp1[0];\r\n targetShape.cpy1 = cp1[1];\r\n }\r\n else {\r\n targetShape.cpx1 = NaN;\r\n targetShape.cpy1 = NaN;\r\n }\r\n }\r\n var Line$1 = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createLine(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var linePoints = lineData.getItemLayout(idx);\r\n var line = createLine(linePoints);\r\n line.shape.percent = 0;\r\n initProps(line, {\r\n shape: {\r\n percent: 1\r\n }\r\n }, seriesModel, idx);\r\n this.add(line);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var linePoints = lineData.getItemLayout(idx);\r\n var target = {\r\n shape: {}\r\n };\r\n setLinePoints(target.shape, linePoints);\r\n updateProps(line, target, seriesModel, idx);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\r\n var key = makeSymbolTypeKey(symbolCategory);\r\n if (this[key] !== symbolType) {\r\n this.remove(this.childOfName(symbolCategory));\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n }\r\n this[key] = symbolType;\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.getLinePath = function () {\r\n return this.childAt(0);\r\n };\r\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\r\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\r\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n var itemModel = lineData.getItemModel(idx);\r\n emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\r\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var visualColor = lineStyle.stroke;\r\n line.useStyle(lineStyle);\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n line.ensureState('emphasis').style = emphasisLineStyle;\r\n line.ensureState('blur').style = blurLineStyle;\r\n line.ensureState('select').style = selectLineStyle;\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = this.childOfName(symbolCategory);\r\n if (symbol) {\r\n symbol.setColor(visualColor);\r\n symbol.style.opacity = lineStyle.opacity;\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var lineState = line.getState(stateName);\r\n if (lineState) {\r\n var lineStateStyle = lineState.style || {};\r\n var state = symbol.ensureState(stateName);\r\n var stateStyle = state.style || (state.style = {});\r\n if (lineStateStyle.stroke != null) {\r\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\r\n }\r\n if (lineStateStyle.opacity != null) {\r\n stateStyle.opacity = lineStateStyle.opacity;\r\n }\r\n }\r\n }\r\n symbol.markRedraw();\r\n }\r\n }, this);\r\n var rawVal = seriesModel.getRawValue(idx);\r\n setLabelStyle(this, labelStatesModels, {\r\n labelDataIndex: idx,\r\n labelFetcher: {\r\n getFormattedLabel: function (dataIndex, stateName) {\r\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\r\n }\r\n },\r\n inheritColor: visualColor || '#000',\r\n defaultOpacity: lineStyle.opacity,\r\n defaultText: (rawVal == null\r\n ? lineData.getName(idx)\r\n : isFinite(rawVal)\r\n ? round$1(rawVal)\r\n : rawVal) + ''\r\n });\r\n var label = this.getTextContent();\r\n if (label) {\r\n var labelNormalModel = labelStatesModels.normal;\r\n label.__align = label.style.align;\r\n label.__verticalAlign = label.style.verticalAlign;\r\n label.__position = labelNormalModel.get('position') || 'middle';\r\n var distance = labelNormalModel.get('distance');\r\n if (!isArray(distance)) {\r\n distance = [distance, distance];\r\n }\r\n label.__labelDistance = distance;\r\n }\r\n this.setTextConfig({\r\n position: null,\r\n local: true,\r\n inside: false\r\n });\r\n enableHoverEmphasis(this);\r\n };\r\n Line.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n Line.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n Line.prototype.updateLayout = function (lineData, idx) {\r\n this.setLinePoints(lineData.getItemLayout(idx));\r\n };\r\n Line.prototype.setLinePoints = function (points) {\r\n var linePath = this.childOfName('line');\r\n setLinePoints(linePath.shape, points);\r\n linePath.dirty();\r\n };\r\n Line.prototype.beforeUpdate = function () {\r\n var lineGroup = this;\r\n var symbolFrom = lineGroup.childOfName('fromSymbol');\r\n var symbolTo = lineGroup.childOfName('toSymbol');\r\n var label = lineGroup.getTextContent();\r\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\r\n return;\r\n }\r\n var invScale = 1;\r\n var parentNode = this.parent;\r\n while (parentNode) {\r\n if (parentNode.scaleX) {\r\n invScale /= parentNode.scaleX;\r\n }\r\n parentNode = parentNode.parent;\r\n }\r\n var line = lineGroup.childOfName('line');\r\n if (!this.__dirty && !line.__dirty) {\r\n return;\r\n }\r\n var percent = line.shape.percent;\r\n var fromPos = line.pointAt(0);\r\n var toPos = line.pointAt(percent);\r\n var d = sub([], toPos, fromPos);\r\n normalize(d, d);\r\n function setSymbolRotation(symbol, percent) {\r\n var specifiedRotation = symbol.__specifiedRotation;\r\n if (specifiedRotation == null) {\r\n var tangent = line.tangentAt(percent);\r\n symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\r\n }\r\n else {\r\n symbol.attr('rotation', specifiedRotation);\r\n }\r\n }\r\n if (symbolFrom) {\r\n symbolFrom.setPosition(fromPos);\r\n setSymbolRotation(symbolFrom, 0);\r\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\r\n symbolFrom.markRedraw();\r\n }\r\n if (symbolTo) {\r\n symbolTo.setPosition(toPos);\r\n setSymbolRotation(symbolTo, 1);\r\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\r\n symbolTo.markRedraw();\r\n }\r\n if (label && !label.ignore) {\r\n label.x = label.y = 0;\r\n label.originX = label.originY = 0;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var distance = label.__labelDistance;\r\n var distanceX = distance[0] * invScale;\r\n var distanceY = distance[1] * invScale;\r\n var halfPercent = percent / 2;\r\n var tangent = line.tangentAt(halfPercent);\r\n var n = [tangent[1], -tangent[0]];\r\n var cp = line.pointAt(halfPercent);\r\n if (n[1] > 0) {\r\n n[0] = -n[0];\r\n n[1] = -n[1];\r\n }\r\n var dir = tangent[0] < 0 ? -1 : 1;\r\n if (label.__position !== 'start' && label.__position !== 'end') {\r\n var rotation = -Math.atan2(tangent[1], tangent[0]);\r\n if (toPos[0] < fromPos[0]) {\r\n rotation = Math.PI + rotation;\r\n }\r\n label.rotation = rotation;\r\n }\r\n var dy = void 0;\r\n switch (label.__position) {\r\n case 'insideStartTop':\r\n case 'insideMiddleTop':\r\n case 'insideEndTop':\r\n case 'middle':\r\n dy = -distanceY;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideStartBottom':\r\n case 'insideMiddleBottom':\r\n case 'insideEndBottom':\r\n dy = distanceY;\r\n textVerticalAlign = 'top';\r\n break;\r\n default:\r\n dy = 0;\r\n textVerticalAlign = 'middle';\r\n }\r\n switch (label.__position) {\r\n case 'end':\r\n label.x = d[0] * distanceX + toPos[0];\r\n label.y = d[1] * distanceY + toPos[1];\r\n textAlign = d[0] > 0.8 ? 'left' : (d[0] < -0.8 ? 'right' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'top' : (d[1] < -0.8 ? 'bottom' : 'middle');\r\n break;\r\n case 'start':\r\n label.x = -d[0] * distanceX + fromPos[0];\r\n label.y = -d[1] * distanceY + fromPos[1];\r\n textAlign = d[0] > 0.8 ? 'right' : (d[0] < -0.8 ? 'left' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : (d[1] < -0.8 ? 'top' : 'middle');\r\n break;\r\n case 'insideStartTop':\r\n case 'insideStart':\r\n case 'insideStartBottom':\r\n label.x = distanceX * dir + fromPos[0];\r\n label.y = fromPos[1] + dy;\r\n textAlign = tangent[0] < 0 ? 'right' : 'left';\r\n label.originX = -distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n case 'insideMiddleTop':\r\n case 'insideMiddle':\r\n case 'insideMiddleBottom':\r\n case 'middle':\r\n label.x = cp[0];\r\n label.y = cp[1] + dy;\r\n textAlign = 'center';\r\n label.originY = -dy;\r\n break;\r\n case 'insideEndTop':\r\n case 'insideEnd':\r\n case 'insideEndBottom':\r\n label.x = -distanceX * dir + toPos[0];\r\n label.y = toPos[1] + dy;\r\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\r\n label.originX = distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n }\r\n label.scaleX = label.scaleY = invScale;\r\n label.setStyle({\r\n verticalAlign: label.__verticalAlign || textVerticalAlign,\r\n align: label.__align || textAlign\r\n });\r\n }\r\n };\r\n return Line;\r\n }(Group));\n\n var LineDraw = (function () {\r\n function LineDraw(LineCtor) {\r\n this.group = new Group();\r\n this._LineCtor = LineCtor || Line$1;\r\n }\r\n LineDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n LineDraw.prototype.updateData = function (lineData) {\r\n var _this = this;\r\n var lineDraw = this;\r\n var group = lineDraw.group;\r\n var oldLineData = lineDraw._lineData;\r\n lineDraw._lineData = lineData;\r\n if (!oldLineData) {\r\n group.removeAll();\r\n }\r\n var seriesScope = makeSeriesScope$1(lineData);\r\n lineData.diff(oldLineData)\r\n .add(function (idx) {\r\n _this._doAdd(lineData, idx, seriesScope);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldLineData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n };\r\n LineDraw.prototype.updateLayout = function () {\r\n var lineData = this._lineData;\r\n if (!lineData) {\r\n return;\r\n }\r\n lineData.eachItemGraphicEl(function (el, idx) {\r\n el.updateLayout(lineData, idx);\r\n }, this);\r\n };\r\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\r\n this._seriesScope = makeSeriesScope$1(lineData);\r\n this._lineData = null;\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup && !isEffectObject(el)) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (lineNeedsDraw(itemLayout)) {\r\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n this.group.add(el);\r\n lineData.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n LineDraw.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (!lineNeedsDraw(itemLayout)) {\r\n return;\r\n }\r\n var el = new this._LineCtor(lineData, idx, seriesScope);\r\n lineData.setItemGraphicEl(idx, el);\r\n this.group.add(el);\r\n };\r\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\r\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\r\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\r\n this.group.remove(itemEl);\r\n return;\r\n }\r\n if (!itemEl) {\r\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\r\n }\r\n else {\r\n itemEl.updateData(newLineData, newIdx, seriesScope);\r\n }\r\n newLineData.setItemGraphicEl(newIdx, itemEl);\r\n this.group.add(itemEl);\r\n };\r\n return LineDraw;\r\n }());\r\n function isEffectObject(el) {\r\n return el.animators && el.animators.length > 0;\r\n }\r\n function makeSeriesScope$1(lineData) {\r\n var hostModel = lineData.hostModel;\r\n return {\r\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\r\n emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\r\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\r\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\r\n labelStatesModels: getLabelStatesModels(hostModel)\r\n };\r\n }\r\n function isPointNaN(pt) {\r\n return isNaN(pt[0]) || isNaN(pt[1]);\r\n }\r\n function lineNeedsDraw(pts) {\r\n return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\r\n }\n\n var inner$c = makeInner();\r\n var markLineTransform = function (seriesModel, coordSys, mlModel, item) {\r\n var data = seriesModel.getData();\r\n var itemArray;\r\n if (!isArray(item)) {\r\n var mlType = item.type;\r\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median'\r\n || (item.xAxis != null || item.yAxis != null)) {\r\n var valueAxis = void 0;\r\n var value = void 0;\r\n if (item.yAxis != null || item.xAxis != null) {\r\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\r\n value = retrieve(item.yAxis, item.xAxis);\r\n }\r\n else {\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n valueAxis = axisInfo.valueAxis;\r\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\r\n value = numCalculate(data, valueDataDim, mlType);\r\n }\r\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\r\n var baseIndex = 1 - valueIndex;\r\n var mlFrom = clone(item);\r\n var mlTo = {\r\n coord: []\r\n };\r\n mlFrom.type = null;\r\n mlFrom.coord = [];\r\n mlFrom.coord[baseIndex] = -Infinity;\r\n mlTo.coord[baseIndex] = Infinity;\r\n var precision = mlModel.get('precision');\r\n if (precision >= 0 && typeof value === 'number') {\r\n value = +value.toFixed(Math.min(precision, 20));\r\n }\r\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\r\n itemArray = [mlFrom, mlTo, {\r\n type: mlType,\r\n valueIndex: item.valueIndex,\r\n value: value\r\n }];\r\n }\r\n else {\r\n if (__DEV__) {\r\n logError('Invalid markLine data.');\r\n }\r\n itemArray = [];\r\n }\r\n }\r\n else {\r\n itemArray = item;\r\n }\r\n var normalizedItem = [\r\n dataTransform(seriesModel, itemArray[0]),\r\n dataTransform(seriesModel, itemArray[1]),\r\n extend({}, itemArray[2])\r\n ];\r\n normalizedItem[2].type = normalizedItem[2].type || null;\r\n merge(normalizedItem[2], normalizedItem[0]);\r\n merge(normalizedItem[2], normalizedItem[1]);\r\n return normalizedItem;\r\n };\r\n function isInifinity(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n var dimName = coordSys.dimensions[dimIndex];\r\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex])\r\n && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\r\n }\r\n function markLineFilter(coordSys, item) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var fromCoord = item[0].coord;\r\n var toCoord = item[1].coord;\r\n if (fromCoord && toCoord\r\n && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys)\r\n || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, item[0])\r\n && dataFilter$1(coordSys, item[1]);\r\n }\r\n function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\r\n }\r\n else {\r\n var dims = coordSys.dimensions;\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var dims = coordSys.dimensions;\r\n if (isInifinity(data.get(dims[0], idx))) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n else if (isInifinity(data.get(dims[1], idx))) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n data.setItemLayout(idx, point);\r\n }\r\n var MarkLineView = (function (_super) {\r\n __extends(MarkLineView, _super);\r\n function MarkLineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineView.type;\r\n return _this;\r\n }\r\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\r\n if (mlModel) {\r\n var mlData_1 = mlModel.getData();\r\n var fromData_1 = inner$c(mlModel).from;\r\n var toData_1 = inner$c(mlModel).to;\r\n fromData_1.each(function (idx) {\r\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\r\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\r\n });\r\n mlData_1.each(function (idx) {\r\n mlData_1.setItemLayout(idx, [\r\n fromData_1.getItemLayout(idx),\r\n toData_1.getItemLayout(idx)\r\n ]);\r\n });\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var lineDrawMap = this.markerGroupMap;\r\n var lineDraw = lineDrawMap.get(seriesId)\r\n || lineDrawMap.set(seriesId, new LineDraw());\r\n this.group.add(lineDraw.group);\r\n var mlData = createList$2(coordSys, seriesModel, mlModel);\r\n var fromData = mlData.from;\r\n var toData = mlData.to;\r\n var lineData = mlData.line;\r\n inner$c(mlModel).from = fromData;\r\n inner$c(mlModel).to = toData;\r\n mlModel.setData(lineData);\r\n var symbolType = mlModel.get('symbol');\r\n var symbolSize = mlModel.get('symbolSize');\r\n if (!isArray(symbolType)) {\r\n symbolType = [symbolType, symbolType];\r\n }\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [symbolSize, symbolSize];\r\n }\r\n mlData.from.each(function (idx) {\r\n updateDataVisualAndLayout(fromData, idx, true);\r\n updateDataVisualAndLayout(toData, idx, false);\r\n });\r\n lineData.each(function (idx) {\r\n var lineStyle = lineData.getItemModel(idx)\r\n .getModel('lineStyle').getLineStyle();\r\n lineData.setItemLayout(idx, [\r\n fromData.getItemLayout(idx),\r\n toData.getItemLayout(idx)\r\n ]);\r\n if (lineStyle.stroke == null) {\r\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\r\n }\r\n lineData.setItemVisual(idx, {\r\n fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\r\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\r\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\r\n toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\r\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\r\n toSymbol: toData.getItemVisual(idx, 'symbol'),\r\n style: lineStyle\r\n });\r\n });\r\n lineDraw.updateData(lineData);\r\n mlData.line.eachItemGraphicEl(function (el, idx) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mlModel;\r\n });\r\n });\r\n function updateDataVisualAndLayout(data, idx, isFrom) {\r\n var itemModel = data.getItemModel(idx);\r\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (style.fill == null) {\r\n style.fill = getVisualFromData(seriesData, 'color');\r\n }\r\n data.setItemVisual(idx, {\r\n symbolRotate: itemModel.get('symbolRotate'),\r\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\r\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\r\n style: style\r\n });\r\n }\r\n this.markKeep(lineDraw);\r\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkLineView.type = 'markLine';\r\n return MarkLineView;\r\n }(MarkerView));\r\n function createList$2(coordSys, seriesModel, mlModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var fromData = new List(coordDimsInfos, mlModel);\r\n var toData = new List(coordDimsInfos, mlModel);\r\n var lineData = new List([], mlModel);\r\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markLineFilter, coordSys));\r\n }\r\n var dimValueGetter$1 = coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n };\r\n fromData.initData(map(optData, function (item) {\r\n return item[0];\r\n }), null, dimValueGetter$1);\r\n toData.initData(map(optData, function (item) {\r\n return item[1];\r\n }), null, dimValueGetter$1);\r\n lineData.initData(map(optData, function (item) {\r\n return item[2];\r\n }));\r\n lineData.hasItemOption = true;\r\n return {\r\n from: fromData,\r\n to: toData,\r\n line: lineData\r\n };\r\n }\r\n ComponentView.registerClass(MarkLineView);\n\n registerPreprocessor(function (opt) {\r\n opt.markLine = opt.markLine || {};\r\n });\n\n var MarkAreaModel = (function (_super) {\r\n __extends(MarkAreaModel, _super);\r\n function MarkAreaModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaModel.type;\r\n return _this;\r\n }\r\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkAreaModel.type = 'markArea';\r\n MarkAreaModel.defaultOption = {\r\n zlevel: 0,\r\n z: 1,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n animation: false,\r\n label: {\r\n show: true,\r\n position: 'top'\r\n },\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n position: 'top'\r\n }\r\n }\r\n };\r\n return MarkAreaModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkAreaModel);\n\n var inner$d = makeInner();\r\n var markAreaTransform = function (seriesModel, coordSys, maModel, item) {\r\n var lt = dataTransform(seriesModel, item[0]);\r\n var rb = dataTransform(seriesModel, item[1]);\r\n var ltCoord = lt.coord;\r\n var rbCoord = rb.coord;\r\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\r\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\r\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\r\n rbCoord[1] = retrieve(rbCoord[1], Infinity);\r\n var result = mergeAll([{}, lt, rb]);\r\n result.coord = [\r\n lt.coord, rb.coord\r\n ];\r\n result.x0 = lt.x;\r\n result.y0 = lt.y;\r\n result.x1 = rb.x;\r\n result.y1 = rb.y;\r\n return result;\r\n };\r\n function isInifinity$1(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n return isInifinity$1(fromCoord[otherDimIndex]) && isInifinity$1(toCoord[otherDimIndex]);\r\n }\r\n function markAreaFilter(coordSys, item) {\r\n var fromCoord = item.coord[0];\r\n var toCoord = item.coord[1];\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n if (fromCoord && toCoord\r\n && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord)\r\n || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, {\r\n coord: fromCoord,\r\n x: item.x0,\r\n y: item.y0\r\n })\r\n || dataFilter$1(coordSys, {\r\n coord: toCoord,\r\n x: item.x1,\r\n y: item.y1\r\n });\r\n }\r\n function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get(dims[0]), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get(dims[1]), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\r\n }\r\n else {\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n var pt = [x, y];\r\n coordSys.clampData && coordSys.clampData(pt, pt);\r\n point = coordSys.dataToPoint(pt, true);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n if (isInifinity$1(x)) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\r\n }\r\n else if (isInifinity$1(y)) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n return point;\r\n }\r\n var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\r\n var MarkAreaView = (function (_super) {\r\n __extends(MarkAreaView, _super);\r\n function MarkAreaView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaView.type;\r\n return _this;\r\n }\r\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\r\n if (maModel) {\r\n var areaData_1 = maModel.getData();\r\n areaData_1.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\r\n });\r\n areaData_1.setItemLayout(idx, points);\r\n var el = areaData_1.getItemGraphicEl(idx);\r\n el.setShape('points', points);\r\n });\r\n }\r\n }, this);\r\n };\r\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var areaGroupMap = this.markerGroupMap;\r\n var polygonGroup = areaGroupMap.get(seriesId)\r\n || areaGroupMap.set(seriesId, { group: new Group() });\r\n this.group.add(polygonGroup.group);\r\n this.markKeep(polygonGroup);\r\n var areaData = createList$3(coordSys, seriesModel, maModel);\r\n maModel.setData(areaData);\r\n areaData.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\r\n });\r\n var allClipped = true;\r\n each(dimPermutations, function (dim) {\r\n if (!allClipped) {\r\n return;\r\n }\r\n var xValue = areaData.get(dim[0], idx);\r\n var yValue = areaData.get(dim[1], idx);\r\n if ((isInifinity$1(xValue) || coordSys.getAxis('x').containData(xValue))\r\n && (isInifinity$1(yValue) || coordSys.getAxis('y').containData(yValue))) {\r\n allClipped = false;\r\n }\r\n });\r\n areaData.setItemLayout(idx, {\r\n points: points,\r\n allClipped: allClipped\r\n });\r\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\r\n var color$1 = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color$1;\r\n if (typeof style.fill === 'string') {\r\n style.fill = modifyAlpha(style.fill, 0.4);\r\n }\r\n }\r\n if (!style.stroke) {\r\n style.stroke = color$1;\r\n }\r\n areaData.setItemVisual(idx, 'style', style);\r\n });\r\n areaData.diff(inner$d(polygonGroup).data)\r\n .add(function (idx) {\r\n var layout = areaData.getItemLayout(idx);\r\n if (!layout.allClipped) {\r\n var polygon = new Polygon({\r\n shape: {\r\n points: layout.points\r\n }\r\n });\r\n areaData.setItemGraphicEl(idx, polygon);\r\n polygonGroup.group.add(polygon);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var polygon = inner$d(polygonGroup).data.getItemGraphicEl(oldIdx);\r\n var layout = areaData.getItemLayout(newIdx);\r\n if (!layout.allClipped) {\r\n if (polygon) {\r\n updateProps(polygon, {\r\n shape: {\r\n points: layout.points\r\n }\r\n }, maModel, newIdx);\r\n }\r\n else {\r\n polygon = new Polygon({\r\n shape: {\r\n points: layout.points\r\n }\r\n });\r\n }\r\n areaData.setItemGraphicEl(newIdx, polygon);\r\n polygonGroup.group.add(polygon);\r\n }\r\n else if (polygon) {\r\n polygonGroup.group.remove(polygon);\r\n }\r\n })\r\n .remove(function (idx) {\r\n var polygon = inner$d(polygonGroup).data.getItemGraphicEl(idx);\r\n polygonGroup.group.remove(polygon);\r\n })\r\n .execute();\r\n areaData.eachItemGraphicEl(function (polygon, idx) {\r\n var itemModel = areaData.getItemModel(idx);\r\n var style = areaData.getItemVisual(idx, 'style');\r\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\r\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\r\n labelFetcher: maModel,\r\n labelDataIndex: idx,\r\n defaultText: areaData.getName(idx) || '',\r\n inheritColor: typeof style.fill === 'string'\r\n ? modifyAlpha(style.fill, 1) : '#000'\r\n });\r\n setStatesStylesFromModel(polygon, itemModel);\r\n enableHoverEmphasis(polygon);\r\n getECData(polygon).dataModel = maModel;\r\n });\r\n inner$d(polygonGroup).data = areaData;\r\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkAreaView.type = 'markArea';\r\n return MarkAreaView;\r\n }(MarkerView));\r\n function createList$3(coordSys, seriesModel, maModel) {\r\n var coordDimsInfos;\r\n var areaData;\r\n var dims = ['x0', 'y0', 'x1', 'y1'];\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var data = seriesModel.getData();\r\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\r\n return defaults({\r\n name: coordDim\r\n }, info);\r\n });\r\n areaData = new List(map(dims, function (dim, idx) {\r\n return {\r\n name: dim,\r\n type: coordDimsInfos[idx % 2].type\r\n };\r\n }), maModel);\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n areaData = new List(coordDimsInfos, maModel);\r\n }\r\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markAreaFilter, coordSys));\r\n }\r\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\r\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\r\n } : function (item) {\r\n return item.value;\r\n };\r\n areaData.initData(optData, null, dimValueGetter);\r\n areaData.hasItemOption = true;\r\n return areaData;\r\n }\r\n ComponentView.registerClass(MarkAreaView);\n\n registerPreprocessor(function (opt) {\r\n opt.markArea = opt.markArea || {};\r\n });\n\n ComponentModel.registerSubTypeDefaulter('dataZoom', function () {\r\n return 'slider';\r\n });\n\n var DATA_ZOOM_AXIS_DIMENSIONS = [\r\n 'x', 'y', 'radius', 'angle', 'single'\r\n ];\r\n var SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\r\n function isCoordSupported(seriesModel) {\r\n var coordType = seriesModel.get('coordinateSystem');\r\n return indexOf(SERIES_COORDS, coordType) >= 0;\r\n }\r\n function getAxisMainType(axisDim) {\r\n if (__DEV__) {\r\n assert(axisDim);\r\n }\r\n return axisDim + 'Axis';\r\n }\r\n function findEffectedDataZooms(ecModel, payload) {\r\n var axisRecords = createHashMap();\r\n var effectedModels = [];\r\n var effectedModelMap = createHashMap();\r\n ecModel.eachComponent({ mainType: 'dataZoom', query: payload }, function (dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid)) {\r\n addToEffected(dataZoomModel);\r\n }\r\n });\r\n var foundNewLink;\r\n do {\r\n foundNewLink = false;\r\n ecModel.eachComponent('dataZoom', processSingle);\r\n } while (foundNewLink);\r\n function processSingle(dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\r\n addToEffected(dataZoomModel);\r\n foundNewLink = true;\r\n }\r\n }\r\n function addToEffected(dataZoom) {\r\n effectedModelMap.set(dataZoom.uid, true);\r\n effectedModels.push(dataZoom);\r\n markAxisControlled(dataZoom);\r\n }\r\n function isLinked(dataZoomModel) {\r\n var isLink = false;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisIdxArr = axisRecords.get(axisDim);\r\n if (axisIdxArr && axisIdxArr[axisIndex]) {\r\n isLink = true;\r\n }\r\n });\r\n return isLink;\r\n }\r\n function markAxisControlled(dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\r\n });\r\n }\r\n return effectedModels;\r\n }\r\n function collectReferCoordSysModelInfo(dataZoomModel) {\r\n var ecModel = dataZoomModel.ecModel;\r\n var coordSysInfoWrap = {\r\n infoList: [],\r\n infoMap: createHashMap()\r\n };\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n if (!axisModel) {\r\n return;\r\n }\r\n var coordSysModel = axisModel.getCoordSysModel();\r\n if (!coordSysModel) {\r\n return;\r\n }\r\n var coordSysUid = coordSysModel.uid;\r\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\r\n if (!coordSysInfo) {\r\n coordSysInfo = { model: coordSysModel, axisModels: [] };\r\n coordSysInfoWrap.infoList.push(coordSysInfo);\r\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\r\n }\r\n coordSysInfo.axisModels.push(axisModel);\r\n });\r\n return coordSysInfoWrap;\r\n }\n\n var DataZoomAxisInfo = (function () {\r\n function DataZoomAxisInfo() {\r\n this.indexList = [];\r\n this.indexMap = [];\r\n }\r\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\r\n if (!this.indexMap[axisCmptIdx]) {\r\n this.indexList.push(axisCmptIdx);\r\n this.indexMap[axisCmptIdx] = true;\r\n }\r\n };\r\n return DataZoomAxisInfo;\r\n }());\r\n var DataZoomModel = (function (_super) {\r\n __extends(DataZoomModel, _super);\r\n function DataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomModel.type;\r\n _this._autoThrottle = true;\r\n _this._noTarget = true;\r\n _this._rangePropMode = ['percent', 'percent'];\r\n return _this;\r\n }\r\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputRawOption = retrieveRawOption(option);\r\n this.settledOption = inputRawOption;\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype.mergeOption = function (newOption) {\r\n var inputRawOption = retrieveRawOption(newOption);\r\n merge(this.option, newOption, true);\r\n merge(this.settledOption, inputRawOption, true);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype._doInit = function (inputRawOption) {\r\n var thisOption = this.option;\r\n this._setDefaultThrottle(inputRawOption);\r\n this._updateRangeUse(inputRawOption);\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n if (this._rangePropMode[index] === 'value') {\r\n thisOption[names[0]] = settledOption[names[0]] = null;\r\n }\r\n }, this);\r\n this._resetTarget();\r\n };\r\n DataZoomModel.prototype._resetTarget = function () {\r\n var optionOrient = this.get('orient', true);\r\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\r\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\r\n if (hasAxisSpecified) {\r\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\r\n }\r\n else {\r\n this._orient = optionOrient || 'horizontal';\r\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\r\n }\r\n this._noTarget = true;\r\n targetAxisIndexMap.each(function (axisInfo) {\r\n if (axisInfo.indexList.length) {\r\n this._noTarget = false;\r\n }\r\n }, this);\r\n };\r\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\r\n var hasAxisSpecified = false;\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\r\n if (!refering.specified) {\r\n return;\r\n }\r\n hasAxisSpecified = true;\r\n var axisInfo = new DataZoomAxisInfo();\r\n each(refering.models, function (axisModel) {\r\n axisInfo.add(axisModel.componentIndex);\r\n });\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }, this);\r\n return hasAxisSpecified;\r\n };\r\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\r\n var ecModel = this.ecModel;\r\n var needAuto = true;\r\n if (needAuto) {\r\n var axisDim = orient === 'vertical' ? 'y' : 'x';\r\n var axisModels = ecModel.findComponents({ mainType: axisDim + 'Axis' });\r\n setParallelAxis(axisModels, axisDim);\r\n }\r\n if (needAuto) {\r\n var axisModels = ecModel.findComponents({\r\n mainType: 'singleAxis',\r\n filter: function (axisModel) { return axisModel.get('orient', true) === orient; }\r\n });\r\n setParallelAxis(axisModels, 'single');\r\n }\r\n function setParallelAxis(axisModels, axisDim) {\r\n var axisModel = axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModel.componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n if (axisDim === 'x' || axisDim === 'y') {\r\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n gridModel_1 && each(axisModels, function (axModel) {\r\n if (axisModel.componentIndex !== axModel.componentIndex\r\n && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\r\n axisInfo.add(axModel.componentIndex);\r\n }\r\n });\r\n }\r\n }\r\n if (needAuto) {\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n if (!needAuto) {\r\n return;\r\n }\r\n var axisModels = ecModel.findComponents({\r\n mainType: getAxisMainType(axisDim),\r\n filter: function (axisModel) { return axisModel.get('type', true) === 'category'; }\r\n });\r\n if (axisModels[0]) {\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModels[0].componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n }\r\n }, this);\r\n }\r\n };\r\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\r\n var dim;\r\n this.eachTargetAxis(function (axisDim) {\r\n !dim && (dim = axisDim);\r\n }, this);\r\n return dim === 'y' ? 'vertical' : 'horizontal';\r\n };\r\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\r\n if (inputRawOption.hasOwnProperty('throttle')) {\r\n this._autoThrottle = false;\r\n }\r\n if (this._autoThrottle) {\r\n var globalOption = this.ecModel.option;\r\n this.option.throttle = (globalOption.animation && globalOption.animationDurationUpdate > 0) ? 100 : 20;\r\n }\r\n };\r\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\r\n var rangePropMode = this._rangePropMode;\r\n var rangeModeInOption = this.get('rangeMode');\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n var percentSpecified = inputRawOption[names[0]] != null;\r\n var valueSpecified = inputRawOption[names[1]] != null;\r\n if (percentSpecified && !valueSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n else if (!percentSpecified && valueSpecified) {\r\n rangePropMode[index] = 'value';\r\n }\r\n else if (rangeModeInOption) {\r\n rangePropMode[index] = rangeModeInOption[index];\r\n }\r\n else if (percentSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n });\r\n };\r\n DataZoomModel.prototype.noTarget = function () {\r\n return this._noTarget;\r\n };\r\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\r\n var firstAxisModel;\r\n this.eachTargetAxis(function (axisDim, axisIndex) {\r\n if (firstAxisModel == null) {\r\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n }, this);\r\n return firstAxisModel;\r\n };\r\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\r\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\r\n each(axisInfo.indexList, function (axisIndex) {\r\n callback.call(context, axisDim, axisIndex);\r\n });\r\n });\r\n };\r\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\r\n var axisModel = this.getAxisModel(axisDim, axisIndex);\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n };\r\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\r\n if (__DEV__) {\r\n assert(axisDim && axisIndex != null);\r\n }\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\r\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n };\r\n DataZoomModel.prototype.setRawRange = function (opt) {\r\n var thisOption = this.option;\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\r\n if (opt[names[0]] != null || opt[names[1]] != null) {\r\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\r\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\r\n }\r\n }, this);\r\n this._updateRangeUse(opt);\r\n };\r\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\r\n var option = this.option;\r\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\r\n option[name] = opt[name];\r\n });\r\n };\r\n DataZoomModel.prototype.getPercentRange = function () {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataPercentWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\r\n if (axisDim == null && axisIndex == null) {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataValueWindow();\r\n }\r\n }\r\n else {\r\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n var firstProxy;\r\n var axisDimList = this._targetAxisInfoMap.keys();\r\n for (var i = 0; i < axisDimList.length; i++) {\r\n var axisDim = axisDimList[i];\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n for (var j = 0; j < axisInfo.indexList.length; j++) {\r\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\r\n if (proxy.hostedBy(this)) {\r\n return proxy;\r\n }\r\n if (!firstProxy) {\r\n firstProxy = proxy;\r\n }\r\n }\r\n }\r\n return firstProxy;\r\n };\r\n DataZoomModel.prototype.getRangePropMode = function () {\r\n return this._rangePropMode.slice();\r\n };\r\n DataZoomModel.prototype.getOrient = function () {\r\n if (__DEV__) {\r\n assert(this._orient);\r\n }\r\n return this._orient;\r\n };\r\n DataZoomModel.type = 'dataZoom';\r\n DataZoomModel.dependencies = [\r\n 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'\r\n ];\r\n DataZoomModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n filterMode: 'filter',\r\n start: 0,\r\n end: 100\r\n };\r\n return DataZoomModel;\r\n }(ComponentModel));\r\n function retrieveRawOption(option) {\r\n var ret = {};\r\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\r\n option.hasOwnProperty(name) && (ret[name] = option[name]);\r\n });\r\n return ret;\r\n }\n\n var DataZoomView = (function (_super) {\r\n __extends(DataZoomView, _super);\r\n function DataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomView.type;\r\n return _this;\r\n }\r\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n this.dataZoomModel = dataZoomModel;\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n DataZoomView.type = 'dataZoom';\r\n return DataZoomView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DataZoomView);\n\n var SliderZoomModel = (function (_super) {\r\n __extends(SliderZoomModel, _super);\r\n function SliderZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomModel.type;\r\n return _this;\r\n }\r\n SliderZoomModel.type = 'dataZoom.slider';\r\n SliderZoomModel.layoutMode = 'box';\r\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n show: true,\r\n right: 'ph',\r\n top: 'ph',\r\n width: 'ph',\r\n height: 'ph',\r\n left: null,\r\n bottom: null,\r\n borderColor: '#d2dbee',\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(47,69,84,0)',\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#d2dbee',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#d2dbee',\r\n opacity: 0.2\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#8fb0f7',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#8fb0f7',\r\n opacity: 0.2\r\n }\r\n },\r\n fillerColor: 'rgba(135,175,274,0.2)',\r\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\r\n handleSize: '100%',\r\n handleStyle: {\r\n color: '#fff',\r\n borderColor: '#ACB8D1'\r\n },\r\n moveHandleSize: 7,\r\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\r\n moveHandleStyle: {\r\n color: '#D2DBEE',\r\n opacity: 0.7\r\n },\r\n showDetail: true,\r\n showDataShadow: 'auto',\r\n realtime: true,\r\n zoomLock: false,\r\n textStyle: {\r\n color: '#6E7079'\r\n },\r\n brushSelect: true,\r\n brushStyle: {\r\n color: 'rgba(135,175,274,0.15)'\r\n },\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#8FB0F7'\r\n },\r\n moveHandleStyle: {\r\n color: '#8FB0F7'\r\n }\r\n }\r\n });\r\n return SliderZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SliderZoomModel);\n\n function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\r\n delta = delta || 0;\r\n var extentSpan = extent[1] - extent[0];\r\n if (minSpan != null) {\r\n minSpan = restrict(minSpan, [0, extentSpan]);\r\n }\r\n if (maxSpan != null) {\r\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\r\n }\r\n if (handleIndex === 'all') {\r\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\r\n handleSpan = restrict(handleSpan, [0, extentSpan]);\r\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\r\n handleIndex = 0;\r\n }\r\n handleEnds[0] = restrict(handleEnds[0], extent);\r\n handleEnds[1] = restrict(handleEnds[1], extent);\r\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\r\n handleEnds[handleIndex] += delta;\r\n var extentMinSpan = minSpan || 0;\r\n var realExtent = extent.slice();\r\n originalDistSign.sign < 0 ? (realExtent[0] += extentMinSpan) : (realExtent[1] -= extentMinSpan);\r\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\r\n var currDistSign;\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\r\n }\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (maxSpan != null && currDistSign.span > maxSpan) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\r\n }\r\n return handleEnds;\r\n }\r\n function getSpanSign(handleEnds, handleIndex) {\r\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\r\n return { span: Math.abs(dist), sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 };\r\n }\r\n function restrict(value, extend) {\r\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\r\n }\n\n var Rect$1 = Rect;\r\n var DEFAULT_LOCATION_EDGE_GAP = 7;\r\n var DEFAULT_FRAME_BORDER_WIDTH = 1;\r\n var DEFAULT_FILLER_SIZE = 30;\r\n var DEFAULT_MOVE_HANDLE_SIZE = 7;\r\n var HORIZONTAL = 'horizontal';\r\n var VERTICAL = 'vertical';\r\n var LABEL_GAP = 5;\r\n var SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\r\n var REALTIME_ANIMATION_CONFIG = {\r\n easing: 'cubicOut',\r\n duration: 100\r\n };\r\n var SliderZoomView = (function (_super) {\r\n __extends(SliderZoomView, _super);\r\n function SliderZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomView.type;\r\n _this._displayables = {};\r\n return _this;\r\n }\r\n SliderZoomView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n this._onBrush = bind(this._onBrush, this);\r\n this._onBrushEnd = bind(this._onBrushEnd, this);\r\n };\r\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n _super.prototype.render.apply(this, arguments);\r\n createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\r\n this._orient = dataZoomModel.getOrient();\r\n if (dataZoomModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n this._updateView();\r\n };\r\n SliderZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n SliderZoomView.prototype._clear = function () {\r\n clear(this, '_dispatchZoomAction');\r\n var zr = this.api.getZr();\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n };\r\n SliderZoomView.prototype._buildView = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n this._brushing = false;\r\n this._displayables.brushRect = null;\r\n this._resetLocation();\r\n this._resetInterval();\r\n var barGroup = this._displayables.sliderGroup = new Group();\r\n this._renderBackground();\r\n this._renderHandle();\r\n this._renderDataShadow();\r\n thisGroup.add(barGroup);\r\n this._positionGroup();\r\n };\r\n SliderZoomView.prototype._resetLocation = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var showMoveHandle = dataZoomModel.get('brushSelect');\r\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\r\n var coordRect = this._findCoordRect();\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var positionInfo = this._orient === HORIZONTAL\r\n ? {\r\n right: ecSize.width - coordRect.x - coordRect.width,\r\n top: (ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize),\r\n width: coordRect.width,\r\n height: DEFAULT_FILLER_SIZE\r\n }\r\n : {\r\n right: DEFAULT_LOCATION_EDGE_GAP,\r\n top: coordRect.y,\r\n width: DEFAULT_FILLER_SIZE,\r\n height: coordRect.height\r\n };\r\n var layoutParams = getLayoutParams(dataZoomModel.option);\r\n each(['right', 'top', 'width', 'height'], function (name) {\r\n if (layoutParams[name] === 'ph') {\r\n layoutParams[name] = positionInfo[name];\r\n }\r\n });\r\n var layoutRect = getLayoutRect(layoutParams, ecSize);\r\n this._location = { x: layoutRect.x, y: layoutRect.y };\r\n this._size = [layoutRect.width, layoutRect.height];\r\n this._orient === VERTICAL && this._size.reverse();\r\n };\r\n SliderZoomView.prototype._positionGroup = function () {\r\n var thisGroup = this.group;\r\n var location = this._location;\r\n var orient = this._orient;\r\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\r\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\r\n sliderGroup.attr((orient === HORIZONTAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: 1 }\r\n : (orient === HORIZONTAL && inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: -1 }\r\n : (orient === VERTICAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 }\r\n : { scaleY: otherAxisInverse ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 });\r\n var rect = thisGroup.getBoundingRect([sliderGroup]);\r\n thisGroup.x = location.x - rect.x;\r\n thisGroup.y = location.y - rect.y;\r\n thisGroup.markRedraw();\r\n };\r\n SliderZoomView.prototype._getViewExtent = function () {\r\n return [0, this._size[0]];\r\n };\r\n SliderZoomView.prototype._renderBackground = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var size = this._size;\r\n var barGroup = this._displayables.sliderGroup;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n barGroup.add(new Rect$1({\r\n silent: true,\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: dataZoomModel.get('backgroundColor')\r\n },\r\n z2: -40\r\n }));\r\n var clickPanel = new Rect$1({\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: 'transparent'\r\n },\r\n z2: 0,\r\n onclick: bind(this._onClickPanel, this)\r\n });\r\n var zr = this.api.getZr();\r\n if (brushSelect) {\r\n clickPanel.on('mousedown', this._onBrushStart, this);\r\n clickPanel.cursor = 'crosshair';\r\n zr.on('mousemove', this._onBrush);\r\n zr.on('mouseup', this._onBrushEnd);\r\n }\r\n else {\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n }\r\n barGroup.add(clickPanel);\r\n };\r\n SliderZoomView.prototype._renderDataShadow = function () {\r\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\r\n this._displayables.dataShadowSegs = [];\r\n if (!info) {\r\n return;\r\n }\r\n var size = this._size;\r\n var seriesModel = info.series;\r\n var data = seriesModel.getRawData();\r\n var otherDim = seriesModel.getShadowDim\r\n ? seriesModel.getShadowDim()\r\n : info.otherDim;\r\n if (otherDim == null) {\r\n return;\r\n }\r\n var otherDataExtent = data.getDataExtent(otherDim);\r\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\r\n otherDataExtent = [\r\n otherDataExtent[0] - otherOffset,\r\n otherDataExtent[1] + otherOffset\r\n ];\r\n var otherShadowExtent = [0, size[1]];\r\n var thisShadowExtent = [0, size[0]];\r\n var areaPoints = [[size[0], 0], [0, 0]];\r\n var linePoints = [];\r\n var step = thisShadowExtent[1] / (data.count() - 1);\r\n var thisCoord = 0;\r\n var stride = Math.round(data.count() / size[0]);\r\n var lastIsEmpty;\r\n data.each([otherDim], function (value, index) {\r\n if (stride > 0 && (index % stride)) {\r\n thisCoord += step;\r\n return;\r\n }\r\n var isEmpty = value == null || isNaN(value) || value === '';\r\n var otherCoord = isEmpty\r\n ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\r\n if (isEmpty && !lastIsEmpty && index) {\r\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\r\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\r\n }\r\n else if (!isEmpty && lastIsEmpty) {\r\n areaPoints.push([thisCoord, 0]);\r\n linePoints.push([thisCoord, 0]);\r\n }\r\n areaPoints.push([thisCoord, otherCoord]);\r\n linePoints.push([thisCoord, otherCoord]);\r\n thisCoord += step;\r\n lastIsEmpty = isEmpty;\r\n });\r\n var dataZoomModel = this.dataZoomModel;\r\n function createDataShadowGroup(isSelectedArea) {\r\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\r\n var group = new Group();\r\n var polygon = new Polygon({\r\n shape: { points: areaPoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('areaStyle').getAreaStyle(),\r\n silent: true,\r\n z2: -20\r\n });\r\n var polyline = new Polyline({\r\n shape: { points: linePoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('lineStyle').getLineStyle(),\r\n silent: true,\r\n z2: -19\r\n });\r\n group.add(polygon);\r\n group.add(polyline);\r\n return group;\r\n }\r\n for (var i = 0; i < 3; i++) {\r\n var group = createDataShadowGroup(i === 1);\r\n this._displayables.sliderGroup.add(group);\r\n this._displayables.dataShadowSegs.push(group);\r\n }\r\n };\r\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var showDataShadow = dataZoomModel.get('showDataShadow');\r\n if (showDataShadow === false) {\r\n return;\r\n }\r\n var result;\r\n var ecModel = this.ecModel;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var seriesModels = dataZoomModel\r\n .getAxisProxy(axisDim, axisIndex)\r\n .getTargetSeriesModels();\r\n each(seriesModels, function (seriesModel) {\r\n if (result) {\r\n return;\r\n }\r\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\r\n return;\r\n }\r\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\r\n var otherDim = getOtherDim(axisDim);\r\n var otherAxisInverse;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (otherDim != null && coordSys.getOtherAxis) {\r\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\r\n }\r\n otherDim = seriesModel.getData().mapDimension(otherDim);\r\n result = {\r\n thisAxis: thisAxis,\r\n series: seriesModel,\r\n thisDim: axisDim,\r\n otherDim: otherDim,\r\n otherAxisInverse: otherAxisInverse\r\n };\r\n }, this);\r\n }, this);\r\n return result;\r\n };\r\n SliderZoomView.prototype._renderHandle = function () {\r\n var thisGroup = this.group;\r\n var displayables = this._displayables;\r\n var handles = displayables.handles = [null, null];\r\n var handleLabels = displayables.handleLabels = [null, null];\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var size = this._size;\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n var filler = displayables.filler = new Rect$1({\r\n silent: brushSelect,\r\n style: {\r\n fill: dataZoomModel.get('fillerColor')\r\n },\r\n textConfig: {\r\n position: 'inside'\r\n }\r\n });\r\n sliderGroup.add(filler);\r\n sliderGroup.add(new Rect$1({\r\n silent: true,\r\n subPixelOptimize: true,\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: size[0],\r\n height: size[1],\r\n r: borderRadius\r\n },\r\n style: {\r\n stroke: dataZoomModel.get('dataBackgroundColor')\r\n || dataZoomModel.get('borderColor'),\r\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\r\n fill: 'rgba(0,0,0,0)'\r\n }\r\n }));\r\n each([0, 1], function (handleIndex) {\r\n var iconStr = dataZoomModel.get('handleIcon');\r\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\r\n iconStr = 'path://' + iconStr;\r\n if (__DEV__) {\r\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\r\n }\r\n }\r\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\r\n path.attr({\r\n cursor: getCursor(this._orient),\r\n draggable: true,\r\n drift: bind(this._onDragMove, this, handleIndex),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false),\r\n z2: 5\r\n });\r\n var bRect = path.getBoundingRect();\r\n var handleSize = dataZoomModel.get('handleSize');\r\n this._handleHeight = parsePercent$2(handleSize, this._size[1]);\r\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\r\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\r\n path.style.strokeNoScale = true;\r\n path.rectHover = true;\r\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n enableHoverEmphasis(path);\r\n var handleColor = dataZoomModel.get('handleColor');\r\n if (handleColor != null) {\r\n path.style.fill = handleColor;\r\n }\r\n sliderGroup.add(handles[handleIndex] = path);\r\n var textStyleModel = dataZoomModel.getModel('textStyle');\r\n thisGroup.add(handleLabels[handleIndex] = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n verticalAlign: 'middle',\r\n align: 'center',\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n },\r\n z2: 10\r\n }));\r\n }, this);\r\n var actualMoveZone = filler;\r\n if (brushSelect) {\r\n var moveHandleHeight = parsePercent$2(dataZoomModel.get('moveHandleSize'), size[1]);\r\n var moveHandle_1 = displayables.moveHandle = new Rect({\r\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\r\n silent: true,\r\n shape: {\r\n r: [0, 0, 2, 2],\r\n y: size[1] - 0.5,\r\n height: moveHandleHeight\r\n }\r\n });\r\n var iconSize = moveHandleHeight * 0.8;\r\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\r\n moveHandleIcon.silent = true;\r\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\r\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\r\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\r\n actualMoveZone = displayables.moveZone = new Rect({\r\n invisible: true,\r\n shape: {\r\n y: size[1] - moveZoneExpandSize,\r\n height: moveHandleHeight + moveZoneExpandSize\r\n }\r\n });\r\n actualMoveZone.on('mouseover', function () {\r\n api.enterEmphasis(moveHandle_1);\r\n })\r\n .on('mouseout', function () {\r\n api.leaveEmphasis(moveHandle_1);\r\n });\r\n sliderGroup.add(moveHandle_1);\r\n sliderGroup.add(moveHandleIcon);\r\n sliderGroup.add(actualMoveZone);\r\n }\r\n actualMoveZone.attr({\r\n draggable: true,\r\n cursor: getCursor(this._orient),\r\n drift: bind(this._onDragMove, this, 'all'),\r\n ondragstart: bind(this._showDataInfo, this, true),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false)\r\n });\r\n };\r\n SliderZoomView.prototype._resetInterval = function () {\r\n var range = this._range = this.dataZoomModel.getPercentRange();\r\n var viewExtent = this._getViewExtent();\r\n this._handleEnds = [\r\n linearMap(range[0], [0, 100], viewExtent, true),\r\n linearMap(range[1], [0, 100], viewExtent, true)\r\n ];\r\n };\r\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var handleEnds = this._handleEnds;\r\n var viewExtend = this._getViewExtent();\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n var percentExtent = [0, 100];\r\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null\r\n ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null\r\n ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\r\n var lastRange = this._range;\r\n var range = this._range = asc([\r\n linearMap(handleEnds[0], viewExtend, percentExtent, true),\r\n linearMap(handleEnds[1], viewExtend, percentExtent, true)\r\n ]);\r\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\r\n };\r\n SliderZoomView.prototype._updateView = function (nonRealtime) {\r\n var displaybles = this._displayables;\r\n var handleEnds = this._handleEnds;\r\n var handleInterval = asc(handleEnds.slice());\r\n var size = this._size;\r\n each([0, 1], function (handleIndex) {\r\n var handle = displaybles.handles[handleIndex];\r\n var handleHeight = this._handleHeight;\r\n handle.attr({\r\n scaleX: handleHeight / 2,\r\n scaleY: handleHeight / 2,\r\n x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\r\n y: size[1] / 2 - handleHeight / 2\r\n });\r\n }, this);\r\n displaybles.filler.setShape({\r\n x: handleInterval[0],\r\n y: 0,\r\n width: handleInterval[1] - handleInterval[0],\r\n height: size[1]\r\n });\r\n var viewExtent = {\r\n x: handleInterval[0],\r\n width: handleInterval[1] - handleInterval[0]\r\n };\r\n if (displaybles.moveHandle) {\r\n displaybles.moveHandle.setShape(viewExtent);\r\n displaybles.moveZone.setShape(viewExtent);\r\n displaybles.moveZone.getBoundingRect();\r\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\r\n }\r\n var dataShadowSegs = displaybles.dataShadowSegs;\r\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\r\n for (var i = 0; i < dataShadowSegs.length; i++) {\r\n var segGroup = dataShadowSegs[i];\r\n var clipPath = segGroup.getClipPath();\r\n if (!clipPath) {\r\n clipPath = new Rect();\r\n segGroup.setClipPath(clipPath);\r\n }\r\n clipPath.setShape({\r\n x: segIntervals[i],\r\n y: 0,\r\n width: segIntervals[i + 1] - segIntervals[i],\r\n height: size[1]\r\n });\r\n }\r\n this._updateDataInfo(nonRealtime);\r\n };\r\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var displaybles = this._displayables;\r\n var handleLabels = displaybles.handleLabels;\r\n var orient = this._orient;\r\n var labelTexts = ['', ''];\r\n if (dataZoomModel.get('showDetail')) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var axis = axisProxy.getAxisModel().axis;\r\n var range = this._range;\r\n var dataInterval = nonRealtime\r\n ? axisProxy.calculateDataWindow({\r\n start: range[0], end: range[1]\r\n }).valueWindow\r\n : axisProxy.getDataValueWindow();\r\n labelTexts = [\r\n this._formatLabel(dataInterval[0], axis),\r\n this._formatLabel(dataInterval[1], axis)\r\n ];\r\n }\r\n }\r\n var orderedHandleEnds = asc(this._handleEnds.slice());\r\n setLabel.call(this, 0);\r\n setLabel.call(this, 1);\r\n function setLabel(handleIndex) {\r\n var barTransform = getTransform(displaybles.handles[handleIndex].parent, this.group);\r\n var direction = transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\r\n var offset = this._handleWidth / 2 + LABEL_GAP;\r\n var textPoint = applyTransform$1([\r\n orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset),\r\n this._size[1] / 2\r\n ], barTransform);\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\r\n align: orient === HORIZONTAL ? direction : 'center',\r\n text: labelTexts[handleIndex]\r\n });\r\n }\r\n };\r\n SliderZoomView.prototype._formatLabel = function (value, axis) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var labelFormatter = dataZoomModel.get('labelFormatter');\r\n var labelPrecision = dataZoomModel.get('labelPrecision');\r\n if (labelPrecision == null || labelPrecision === 'auto') {\r\n labelPrecision = axis.getPixelPrecision();\r\n }\r\n var valueStr = (value == null || isNaN(value))\r\n ? ''\r\n : (axis.type === 'category' || axis.type === 'time')\r\n ? axis.scale.getLabel({\r\n value: Math.round(value)\r\n })\r\n : value.toFixed(Math.min(labelPrecision, 20));\r\n return isFunction(labelFormatter)\r\n ? labelFormatter(value, valueStr)\r\n : isString(labelFormatter)\r\n ? labelFormatter.replace('{value}', valueStr)\r\n : valueStr;\r\n };\r\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\r\n showOrHide = this._dragging || showOrHide;\r\n var displayables = this._displayables;\r\n var handleLabels = displayables.handleLabels;\r\n handleLabels[0].attr('invisible', !showOrHide);\r\n handleLabels[1].attr('invisible', !showOrHide);\r\n displayables.moveHandle\r\n && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\r\n };\r\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\r\n this._dragging = true;\r\n stop(event.event);\r\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\r\n var vertex = applyTransform$1([dx, dy], barTransform, true);\r\n var changed = this._updateInterval(handleIndex, vertex[0]);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n this._updateView(!realtime);\r\n changed && realtime && this._dispatchZoomAction(true);\r\n };\r\n SliderZoomView.prototype._onDragEnd = function () {\r\n this._dragging = false;\r\n this._showDataInfo(false);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n !realtime && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onClickPanel = function (e) {\r\n var size = this._size;\r\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\r\n if (localPoint[0] < 0 || localPoint[0] > size[0]\r\n || localPoint[1] < 0 || localPoint[1] > size[1]) {\r\n return;\r\n }\r\n var handleEnds = this._handleEnds;\r\n var center = (handleEnds[0] + handleEnds[1]) / 2;\r\n var changed = this._updateInterval('all', localPoint[0] - center);\r\n this._updateView();\r\n changed && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrushStart = function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n this._brushStart = new Point(x, y);\r\n this._brushing = true;\r\n this._brushStartTime = +new Date();\r\n };\r\n SliderZoomView.prototype._onBrushEnd = function (e) {\r\n if (!this._brushing) {\r\n return;\r\n }\r\n var brushRect = this._displayables.brushRect;\r\n this._brushing = false;\r\n if (!brushRect) {\r\n return;\r\n }\r\n brushRect.attr('ignore', true);\r\n var brushShape = brushRect.shape;\r\n var brushEndTime = +new Date();\r\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\r\n return;\r\n }\r\n var viewExtend = this._getViewExtent();\r\n var percentExtent = [0, 100];\r\n this._range = asc([\r\n linearMap(brushShape.x, viewExtend, percentExtent, true),\r\n linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)\r\n ]);\r\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\r\n this._updateView();\r\n this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrush = function (e) {\r\n if (this._brushing) {\r\n stop(e.event);\r\n this._updateBrushRect(e.offsetX, e.offsetY);\r\n }\r\n };\r\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\r\n var displayables = this._displayables;\r\n var dataZoomModel = this.dataZoomModel;\r\n var brushRect = displayables.brushRect;\r\n if (!brushRect) {\r\n brushRect = displayables.brushRect = new Rect$1({\r\n silent: true,\r\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\r\n });\r\n displayables.sliderGroup.add(brushRect);\r\n }\r\n brushRect.attr('ignore', false);\r\n var brushStart = this._brushStart;\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\r\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\r\n var size = this._size;\r\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\r\n brushRect.setShape({\r\n x: startPoint[0], y: 0,\r\n width: endPoint[0] - startPoint[0], height: size[1]\r\n });\r\n };\r\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\r\n var range = this._range;\r\n this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n dataZoomId: this.dataZoomModel.id,\r\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n };\r\n SliderZoomView.prototype._findCoordRect = function () {\r\n var rect;\r\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\r\n if (!rect && coordSysInfoList.length) {\r\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\r\n rect = coordSys.getRect && coordSys.getRect();\r\n }\r\n if (!rect) {\r\n var width = this.api.getWidth();\r\n var height = this.api.getHeight();\r\n rect = {\r\n x: width * 0.2,\r\n y: height * 0.2,\r\n width: width * 0.6,\r\n height: height * 0.6\r\n };\r\n }\r\n return rect;\r\n };\r\n SliderZoomView.type = 'dataZoom.slider';\r\n return SliderZoomView;\r\n }(DataZoomView));\r\n function getOtherDim(thisDim) {\r\n var map = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' };\r\n return map[thisDim];\r\n }\r\n function getCursor(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(SliderZoomView);\n\n var each$7 = each;\r\n var asc$1 = asc;\r\n var AxisProxy = (function () {\r\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\r\n this._dimName = dimName;\r\n this._axisIndex = axisIndex;\r\n this.ecModel = ecModel;\r\n this._dataZoomModel = dataZoomModel;\r\n }\r\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\r\n return this._dataZoomModel === dataZoomModel;\r\n };\r\n AxisProxy.prototype.getDataValueWindow = function () {\r\n return this._valueWindow.slice();\r\n };\r\n AxisProxy.prototype.getDataPercentWindow = function () {\r\n return this._percentWindow.slice();\r\n };\r\n AxisProxy.prototype.getTargetSeriesModels = function () {\r\n var seriesModels = [];\r\n this.ecModel.eachSeries(function (seriesModel) {\r\n if (isCoordSupported(seriesModel)) {\r\n var axisMainType = getAxisMainType(this._dimName);\r\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\r\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\r\n seriesModels.push(seriesModel);\r\n }\r\n }\r\n }, this);\r\n return seriesModels;\r\n };\r\n AxisProxy.prototype.getAxisModel = function () {\r\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\r\n };\r\n AxisProxy.prototype.getMinMaxSpan = function () {\r\n return clone(this._minMaxSpan);\r\n };\r\n AxisProxy.prototype.calculateDataWindow = function (opt) {\r\n var dataExtent = this._dataExtent;\r\n var axisModel = this.getAxisModel();\r\n var scale = axisModel.axis.scale;\r\n var rangePropMode = this._dataZoomModel.getRangePropMode();\r\n var percentExtent = [0, 100];\r\n var percentWindow = [];\r\n var valueWindow = [];\r\n var hasPropModeValue;\r\n each$7(['start', 'end'], function (prop, idx) {\r\n var boundPercent = opt[prop];\r\n var boundValue = opt[prop + 'Value'];\r\n if (rangePropMode[idx] === 'percent') {\r\n boundPercent == null && (boundPercent = percentExtent[idx]);\r\n boundValue = scale.parse(linearMap(boundPercent, percentExtent, dataExtent));\r\n }\r\n else {\r\n hasPropModeValue = true;\r\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\r\n boundPercent = linearMap(boundValue, dataExtent, percentExtent);\r\n }\r\n valueWindow[idx] = boundValue;\r\n percentWindow[idx] = boundPercent;\r\n });\r\n asc$1(valueWindow);\r\n asc$1(percentWindow);\r\n var spans = this._minMaxSpan;\r\n hasPropModeValue\r\n ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false)\r\n : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\r\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\r\n var suffix = toValue ? 'Span' : 'ValueSpan';\r\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\r\n for (var i = 0; i < 2; i++) {\r\n toWindow[i] = linearMap(fromWindow[i], fromExtent, toExtent, true);\r\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\r\n }\r\n }\r\n return {\r\n valueWindow: valueWindow,\r\n percentWindow: percentWindow\r\n };\r\n };\r\n AxisProxy.prototype.reset = function (dataZoomModel) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var targetSeries = this.getTargetSeriesModels();\r\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\r\n this._updateMinMaxSpan();\r\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\r\n this._valueWindow = dataWindow.valueWindow;\r\n this._percentWindow = dataWindow.percentWindow;\r\n this._setAxisModel();\r\n };\r\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var axisDim = this._dimName;\r\n var seriesModels = this.getTargetSeriesModels();\r\n var filterMode = dataZoomModel.get('filterMode');\r\n var valueWindow = this._valueWindow;\r\n if (filterMode === 'none') {\r\n return;\r\n }\r\n each$7(seriesModels, function (seriesModel) {\r\n var seriesData = seriesModel.getData();\r\n var dataDims = seriesData.mapDimensionsAll(axisDim);\r\n if (!dataDims.length) {\r\n return;\r\n }\r\n if (filterMode === 'weakFilter') {\r\n seriesData.filterSelf(function (dataIndex) {\r\n var leftOut;\r\n var rightOut;\r\n var hasValue;\r\n for (var i = 0; i < dataDims.length; i++) {\r\n var value = seriesData.get(dataDims[i], dataIndex);\r\n var thisHasValue = !isNaN(value);\r\n var thisLeftOut = value < valueWindow[0];\r\n var thisRightOut = value > valueWindow[1];\r\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\r\n return true;\r\n }\r\n thisHasValue && (hasValue = true);\r\n thisLeftOut && (leftOut = true);\r\n thisRightOut && (rightOut = true);\r\n }\r\n return hasValue && leftOut && rightOut;\r\n });\r\n }\r\n else {\r\n each$7(dataDims, function (dim) {\r\n if (filterMode === 'empty') {\r\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\r\n return !isInWindow(value) ? NaN : value;\r\n }));\r\n }\r\n else {\r\n var range = {};\r\n range[dim] = valueWindow;\r\n seriesData.selectRange(range);\r\n }\r\n });\r\n }\r\n each$7(dataDims, function (dim) {\r\n seriesData.setApproximateExtent(valueWindow, dim);\r\n });\r\n });\r\n function isInWindow(value) {\r\n return value >= valueWindow[0] && value <= valueWindow[1];\r\n }\r\n };\r\n AxisProxy.prototype._updateMinMaxSpan = function () {\r\n var minMaxSpan = this._minMaxSpan = {};\r\n var dataZoomModel = this._dataZoomModel;\r\n var dataExtent = this._dataExtent;\r\n each$7(['min', 'max'], function (minMax) {\r\n var percentSpan = dataZoomModel.get(minMax + 'Span');\r\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\r\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\r\n if (valueSpan != null) {\r\n percentSpan = linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\r\n }\r\n else if (percentSpan != null) {\r\n valueSpan = linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\r\n }\r\n minMaxSpan[minMax + 'Span'] = percentSpan;\r\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\r\n }, this);\r\n };\r\n AxisProxy.prototype._setAxisModel = function () {\r\n var axisModel = this.getAxisModel();\r\n var percentWindow = this._percentWindow;\r\n var valueWindow = this._valueWindow;\r\n if (!percentWindow) {\r\n return;\r\n }\r\n var precision = getPixelPrecision(valueWindow, [0, 500]);\r\n precision = Math.min(precision, 20);\r\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\r\n if (percentWindow[0] !== 0) {\r\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\r\n }\r\n if (percentWindow[1] !== 100) {\r\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\r\n }\r\n rawExtentInfo.freeze();\r\n };\r\n return AxisProxy;\r\n }());\r\n function calculateDataExtent(axisProxy, axisDim, seriesModels) {\r\n var dataExtent = [Infinity, -Infinity];\r\n each$7(seriesModels, function (seriesModel) {\r\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\r\n });\r\n var axisModel = axisProxy.getAxisModel();\r\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\r\n return [rawExtentResult.min, rawExtentResult.max];\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER, {\r\n getTargetSeries: function (ecModel) {\r\n function eachAxisModel(cb) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\r\n });\r\n });\r\n }\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n axisModel.__dzAxisProxy = null;\r\n });\r\n var proxyList = [];\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n if (!axisModel.__dzAxisProxy) {\r\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\r\n proxyList.push(axisModel.__dzAxisProxy);\r\n }\r\n });\r\n var seriesModelMap = createHashMap();\r\n each(proxyList, function (axisProxy) {\r\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\r\n seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\r\n });\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\r\n });\r\n });\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var percentRange = axisProxy.getDataPercentWindow();\r\n var valueRange = axisProxy.getDataValueWindow();\r\n dataZoomModel.setCalculatedRange({\r\n start: percentRange[0],\r\n end: percentRange[1],\r\n startValue: valueRange[0],\r\n endValue: valueRange[1]\r\n });\r\n }\r\n });\r\n }\r\n });\n\n registerAction('dataZoom', function (payload, ecModel) {\r\n var effectedModels = findEffectedDataZooms(ecModel, payload);\r\n each(effectedModels, function (dataZoomModel) {\r\n dataZoomModel.setRawRange({\r\n start: payload.start,\r\n end: payload.end,\r\n startValue: payload.startValue,\r\n endValue: payload.endValue\r\n });\r\n });\r\n });\n\n var InsideZoomModel = (function (_super) {\r\n __extends(InsideZoomModel, _super);\r\n function InsideZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = InsideZoomModel.type;\r\n return _this;\r\n }\r\n InsideZoomModel.type = 'dataZoom.inside';\r\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n disabled: false,\r\n zoomLock: false,\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n return InsideZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(InsideZoomModel);\n\n var ATTR = '\\0_ec_interaction_mutex';\r\n function take(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n store[resourceKey] = userKey;\r\n }\r\n function release(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n var uKey = store[resourceKey];\r\n if (uKey === userKey) {\r\n store[resourceKey] = null;\r\n }\r\n }\r\n function isTaken(zr, resourceKey) {\r\n return !!getStore(zr)[resourceKey];\r\n }\r\n function getStore(zr) {\r\n return zr[ATTR] || (zr[ATTR] = {});\r\n }\r\n registerAction({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, function () { });\n\n var RoamController = (function (_super) {\r\n __extends(RoamController, _super);\r\n function RoamController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._zr = zr;\r\n var mousedownHandler = bind(_this._mousedownHandler, _this);\r\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\r\n var mouseupHandler = bind(_this._mouseupHandler, _this);\r\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\r\n var pinchHandler = bind(_this._pinchHandler, _this);\r\n _this.enable = function (controlType, opt) {\r\n this.disable();\r\n this._opt = defaults(clone(opt) || {}, {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n if (controlType == null) {\r\n controlType = true;\r\n }\r\n if (controlType === true || (controlType === 'move' || controlType === 'pan')) {\r\n zr.on('mousedown', mousedownHandler);\r\n zr.on('mousemove', mousemoveHandler);\r\n zr.on('mouseup', mouseupHandler);\r\n }\r\n if (controlType === true || (controlType === 'scale' || controlType === 'zoom')) {\r\n zr.on('mousewheel', mousewheelHandler);\r\n zr.on('pinch', pinchHandler);\r\n }\r\n };\r\n _this.disable = function () {\r\n zr.off('mousedown', mousedownHandler);\r\n zr.off('mousemove', mousemoveHandler);\r\n zr.off('mouseup', mouseupHandler);\r\n zr.off('mousewheel', mousewheelHandler);\r\n zr.off('pinch', pinchHandler);\r\n };\r\n return _this;\r\n }\r\n RoamController.prototype.isDragging = function () {\r\n return this._dragging;\r\n };\r\n RoamController.prototype.isPinching = function () {\r\n return this._pinching;\r\n };\r\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\r\n this.pointerChecker = pointerChecker;\r\n };\r\n RoamController.prototype.dispose = function () {\r\n this.disable();\r\n };\r\n RoamController.prototype._mousedownHandler = function (e) {\r\n if (isMiddleOrRightButtonOnMouseUpDown(e)\r\n || (e.target && e.target.draggable)) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\r\n this._x = x;\r\n this._y = y;\r\n this._dragging = true;\r\n }\r\n };\r\n RoamController.prototype._mousemoveHandler = function (e) {\r\n if (!this._dragging\r\n || !isAvailableBehavior('moveOnMouseMove', e, this._opt)\r\n || e.gestureEvent === 'pinch'\r\n || isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var oldX = this._x;\r\n var oldY = this._y;\r\n var dx = x - oldX;\r\n var dy = y - oldY;\r\n this._x = x;\r\n this._y = y;\r\n this._opt.preventDefaultMouseMove && stop(e.event);\r\n trigger(this, 'pan', 'moveOnMouseMove', e, {\r\n dx: dx, dy: dy, oldX: oldX, oldY: oldY, newX: x, newY: y, isAvailableBehavior: null\r\n });\r\n };\r\n RoamController.prototype._mouseupHandler = function (e) {\r\n if (!isMiddleOrRightButtonOnMouseUpDown(e)) {\r\n this._dragging = false;\r\n }\r\n };\r\n RoamController.prototype._mousewheelHandler = function (e) {\r\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\r\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\r\n var wheelDelta = e.wheelDelta;\r\n var absWheelDeltaDelta = Math.abs(wheelDelta);\r\n var originX = e.offsetX;\r\n var originY = e.offsetY;\r\n if (wheelDelta === 0 || (!shouldZoom && !shouldMove)) {\r\n return;\r\n }\r\n if (shouldZoom) {\r\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\r\n var scale = wheelDelta > 0 ? factor : 1 / factor;\r\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\r\n scale: scale, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n if (shouldMove) {\r\n var absDelta = Math.abs(wheelDelta);\r\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\r\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\r\n scrollDelta: scrollDelta, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n };\r\n RoamController.prototype._pinchHandler = function (e) {\r\n if (isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\r\n checkPointerAndTrigger(this, 'zoom', null, e, {\r\n scale: scale, originX: e.pinchX, originY: e.pinchY, isAvailableBehavior: null\r\n });\r\n };\r\n return RoamController;\r\n }(Eventful));\r\n function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n if (controller.pointerChecker\r\n && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\r\n stop(e.event);\r\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\r\n }\r\n }\r\n function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\r\n controller.trigger(eventName, contollerEvent);\r\n }\r\n function isAvailableBehavior(behaviorToCheck, e, settings) {\r\n var setting = settings[behaviorToCheck];\r\n return !behaviorToCheck || (setting && (!isString(setting) || e.event[setting + 'Key']));\r\n }\n\n var inner$e = makeInner();\r\n registerProcessor(PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\r\n var apiInner = inner$e(api);\r\n var coordSysRecordMap = apiInner.coordSysRecordMap\r\n || (apiInner.coordSysRecordMap = createHashMap());\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n coordSysRecord.dataZoomInfoMap = null;\r\n });\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'inside' }, function (dataZoomModel) {\r\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\r\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\r\n var coordSysUid = dzCoordSysInfo.model.uid;\r\n var coordSysRecord = coordSysRecordMap.get(coordSysUid)\r\n || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap\r\n || (coordSysRecord.dataZoomInfoMap = createHashMap());\r\n dataZoomInfoMap.set(dataZoomModel.uid, {\r\n dzReferCoordSysInfo: dzCoordSysInfo,\r\n model: dataZoomModel,\r\n getRange: null\r\n });\r\n });\r\n });\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n var controller = coordSysRecord.controller;\r\n var firstDzInfo;\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var firstDzKey = dataZoomInfoMap.keys()[0];\r\n if (firstDzKey != null) {\r\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\r\n }\r\n }\r\n if (!firstDzInfo) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n return;\r\n }\r\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\r\n controller.enable(controllerParams.controlType, controllerParams.opt);\r\n controller.setPointerChecker(coordSysRecord.containsPoint);\r\n createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\r\n });\r\n });\r\n function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\r\n inner$e(api).coordSysRecordMap.each(function (coordSysRecord) {\r\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\r\n if (dzInfo) {\r\n dzInfo.getRange = getRange;\r\n }\r\n });\r\n }\r\n function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\r\n var coordSysRecordMap = inner$e(api).coordSysRecordMap;\r\n var coordSysKeyArr = coordSysRecordMap.keys();\r\n for (var i = 0; i < coordSysKeyArr.length; i++) {\r\n var coordSysKey = coordSysKeyArr[i];\r\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var dzUid = dataZoomModel.uid;\r\n var dzInfo = dataZoomInfoMap.get(dzUid);\r\n if (dzInfo) {\r\n dataZoomInfoMap.removeKey(dzUid);\r\n if (!dataZoomInfoMap.keys().length) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\r\n if (coordSysRecord) {\r\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\r\n var controller = coordSysRecord.controller;\r\n controller && controller.dispose();\r\n }\r\n }\r\n function createCoordSysRecord(api, coordSysModel) {\r\n var coordSysRecord = {\r\n model: coordSysModel,\r\n containsPoint: curry(containsPoint, coordSysModel),\r\n dispatchAction: curry(dispatchAction, api),\r\n dataZoomInfoMap: null,\r\n controller: null\r\n };\r\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\r\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\r\n controller.on(eventName, function (event) {\r\n var batch = [];\r\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\r\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\r\n return;\r\n }\r\n var method = (dzInfo.getRange || {})[eventName];\r\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\r\n !dzInfo.model.get('disabled', true) && range && batch.push({\r\n dataZoomId: dzInfo.model.id,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n });\r\n batch.length && coordSysRecord.dispatchAction(batch);\r\n });\r\n });\r\n return coordSysRecord;\r\n }\r\n function dispatchAction(api, batch) {\r\n api.dispatchAction({\r\n type: 'dataZoom',\r\n animation: {\r\n easing: 'cubicOut',\r\n duration: 100\r\n },\r\n batch: batch\r\n });\r\n }\r\n function containsPoint(coordSysModel, e, x, y) {\r\n return coordSysModel.coordinateSystem.containPoint([x, y]);\r\n }\r\n function mergeControllerParams(dataZoomInfoMap) {\r\n var controlType;\r\n var prefix = 'type_';\r\n var typePriority = {\r\n 'type_true': 2,\r\n 'type_move': 1,\r\n 'type_false': 0,\r\n 'type_undefined': -1\r\n };\r\n var preventDefaultMouseMove = true;\r\n dataZoomInfoMap.each(function (dataZoomInfo) {\r\n var dataZoomModel = dataZoomInfo.model;\r\n var oneType = dataZoomModel.get('disabled', true)\r\n ? false\r\n : dataZoomModel.get('zoomLock', true)\r\n ? 'move'\r\n : true;\r\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\r\n controlType = oneType;\r\n }\r\n preventDefaultMouseMove = preventDefaultMouseMove\r\n && dataZoomModel.get('preventDefaultMouseMove', true);\r\n });\r\n return {\r\n controlType: controlType,\r\n opt: {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: true,\r\n preventDefaultMouseMove: !!preventDefaultMouseMove\r\n }\r\n };\r\n }\n\n var InsideZoomView = (function (_super) {\r\n __extends(InsideZoomView, _super);\r\n function InsideZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataZoom.inside';\r\n return _this;\r\n }\r\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\r\n _super.prototype.render.apply(this, arguments);\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n return;\r\n }\r\n this.range = dataZoomModel.getPercentRange();\r\n setViewInfoToCoordSysRecord(api, dataZoomModel, {\r\n pan: bind(getRangeHandlers.pan, this),\r\n zoom: bind(getRangeHandlers.zoom, this),\r\n scrollMove: bind(getRangeHandlers.scrollMove, this)\r\n });\r\n };\r\n InsideZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n InsideZoomView.prototype._clear = function () {\r\n disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\r\n this.range = null;\r\n };\r\n InsideZoomView.type = 'dataZoom.inside';\r\n return InsideZoomView;\r\n }(DataZoomView));\r\n var getRangeHandlers = {\r\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\r\n var percentPoint = (directionInfo.signal > 0\r\n ? (directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel)\r\n : (directionInfo.pixel - directionInfo.pixelStart)) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\r\n var scale = Math.max(1 / e.scale, 0);\r\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\r\n range[1] = (range[1] - percentPoint) * scale + percentPoint;\r\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n },\r\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal\r\n * (range[1] - range[0])\r\n * directionInfo.pixel / directionInfo.pixelLength;\r\n }),\r\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\r\n })\r\n };\r\n function makeMover(getPercentDelta) {\r\n return function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\r\n sliderMove(percentDelta, range, [0, 100], 'all');\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n };\r\n }\r\n var getDirectionInfo = {\r\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.dim === 'x') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var polar = coordSysInfo.model.coordinateSystem;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var angleExtent = polar.getAngleAxis().getExtent();\r\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\r\n newPoint = polar.pointToCoord(newPoint);\r\n if (axisModel.mainType === 'radiusAxis') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\r\n ret.pixelStart = radiusExtent[0];\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = angleExtent[1] - angleExtent[0];\r\n ret.pixelStart = angleExtent[0];\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n var ret = {};\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.orient === 'horizontal') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n }\r\n };\r\n ComponentView.registerClass(InsideZoomView);\n\n var ToolboxFeature = (function () {\r\n function ToolboxFeature() {\r\n }\r\n return ToolboxFeature;\r\n }());\r\n var features = {};\r\n function registerFeature(name, ctor) {\r\n features[name] = ctor;\r\n }\r\n function getFeature(name) {\r\n return features[name];\r\n }\n\n var ToolboxModel = (function (_super) {\r\n __extends(ToolboxModel, _super);\r\n function ToolboxModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ToolboxModel.type;\r\n return _this;\r\n }\r\n ToolboxModel.prototype.optionUpdated = function () {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n var ecModel = this.ecModel;\r\n each(this.option.feature, function (featureOpt, featureName) {\r\n var Feature = getFeature(featureName);\r\n if (Feature) {\r\n if (Feature.getDefaultOption) {\r\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\r\n }\r\n merge(featureOpt, Feature.defaultOption);\r\n }\r\n });\r\n };\r\n ToolboxModel.type = 'toolbox';\r\n ToolboxModel.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n ToolboxModel.defaultOption = {\r\n show: true,\r\n z: 6,\r\n zlevel: 0,\r\n orient: 'horizontal',\r\n left: 'right',\r\n top: 'top',\r\n backgroundColor: 'transparent',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemSize: 15,\r\n itemGap: 8,\r\n showTitle: true,\r\n iconStyle: {\r\n borderColor: '#666',\r\n color: 'none'\r\n },\r\n emphasis: {\r\n iconStyle: {\r\n borderColor: '#3E98C5'\r\n }\r\n },\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return ToolboxModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ToolboxModel);\n\n var ToolboxView = (function (_super) {\r\n __extends(ToolboxView, _super);\r\n function ToolboxView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n if (!toolboxModel.get('show')) {\r\n return;\r\n }\r\n var itemSize = +toolboxModel.get('itemSize');\r\n var featureOpts = toolboxModel.get('feature') || {};\r\n var features = this._features || (this._features = {});\r\n var featureNames = [];\r\n each(featureOpts, function (opt, name) {\r\n featureNames.push(name);\r\n });\r\n (new DataDiffer(this._featureNames || [], featureNames))\r\n .add(processFeature)\r\n .update(processFeature)\r\n .remove(curry(processFeature, null))\r\n .execute();\r\n this._featureNames = featureNames;\r\n function processFeature(newIndex, oldIndex) {\r\n var featureName = featureNames[newIndex];\r\n var oldName = featureNames[oldIndex];\r\n var featureOpt = featureOpts[featureName];\r\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\r\n var feature;\r\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\r\n featureOpt.title = payload.newTitle;\r\n }\r\n if (featureName && !oldName) {\r\n if (isUserFeatureName(featureName)) {\r\n feature = {\r\n onclick: featureModel.option.onclick,\r\n featureName: featureName\r\n };\r\n }\r\n else {\r\n var Feature = getFeature(featureName);\r\n if (!Feature) {\r\n return;\r\n }\r\n feature = new Feature();\r\n }\r\n features[featureName] = feature;\r\n }\r\n else {\r\n feature = features[oldName];\r\n if (!feature) {\r\n return;\r\n }\r\n }\r\n feature.uid = getUID('toolbox-feature');\r\n feature.model = featureModel;\r\n feature.ecModel = ecModel;\r\n feature.api = api;\r\n if (feature instanceof ToolboxFeature) {\r\n if (!featureName && oldName) {\r\n feature.dispose && feature.dispose(ecModel, api);\r\n return;\r\n }\r\n if (!featureModel.get('show') || feature.unusable) {\r\n feature.remove && feature.remove(ecModel, api);\r\n return;\r\n }\r\n }\r\n createIconPaths(featureModel, feature, featureName);\r\n featureModel.setIconStatus = function (iconName, status) {\r\n var option = this.option;\r\n var iconPaths = this.iconPaths;\r\n option.iconStatus = option.iconStatus || {};\r\n option.iconStatus[iconName] = status;\r\n if (iconPaths[iconName]) {\r\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\r\n }\r\n };\r\n if (feature instanceof ToolboxFeature) {\r\n if (feature.render) {\r\n feature.render(featureModel, ecModel, api, payload);\r\n }\r\n }\r\n }\r\n function createIconPaths(featureModel, feature, featureName) {\r\n var iconStyleModel = featureModel.getModel('iconStyle');\r\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\r\n var icons = (feature instanceof ToolboxFeature && feature.getIcons)\r\n ? feature.getIcons() : featureModel.get('icon');\r\n var titles = featureModel.get('title') || {};\r\n var iconsMap;\r\n var titlesMap;\r\n if (typeof icons === 'string') {\r\n iconsMap = {};\r\n iconsMap[featureName] = icons;\r\n }\r\n else {\r\n iconsMap = icons;\r\n }\r\n if (typeof titles === 'string') {\r\n titlesMap = {};\r\n titlesMap[featureName] = titles;\r\n }\r\n else {\r\n titlesMap = titles;\r\n }\r\n var iconPaths = featureModel.iconPaths = {};\r\n each(iconsMap, function (iconStr, iconName) {\r\n var path = createIcon(iconStr, {}, {\r\n x: -itemSize / 2,\r\n y: -itemSize / 2,\r\n width: itemSize,\r\n height: itemSize\r\n });\r\n path.setStyle(iconStyleModel.getItemStyle());\r\n var pathEmphasisState = path.ensureState('emphasis');\r\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\r\n var textContent = new ZRText({\r\n style: {\r\n text: titlesMap[iconName],\r\n align: iconStyleEmphasisModel.get('textAlign'),\r\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\r\n padding: iconStyleEmphasisModel.get('textPadding'),\r\n fill: null\r\n },\r\n ignore: true\r\n });\r\n path.setTextContent(textContent);\r\n var tooltipModel = toolboxModel.getModel('tooltip');\r\n if (tooltipModel && tooltipModel.get('show')) {\r\n path.tooltip = extend({\r\n content: titlesMap[iconName],\r\n formatter: tooltipModel.get('formatter', true)\r\n || function () {\r\n return titlesMap[iconName];\r\n },\r\n formatterParams: {\r\n componentType: 'toolbox',\r\n name: iconName,\r\n title: titlesMap[iconName],\r\n $vars: ['name', 'title']\r\n },\r\n position: tooltipModel.get('position', true) || 'bottom'\r\n }, tooltipModel.option);\r\n }\r\n path.__title = titlesMap[iconName];\r\n path.on('mouseover', function () {\r\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\r\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical'\r\n ? (toolboxModel.get('right') == null ? 'right' : 'left')\r\n : (toolboxModel.get('bottom') == null ? 'bottom' : 'top');\r\n textContent.setStyle({\r\n fill: (iconStyleEmphasisModel.get('textFill')\r\n || hoverStyle.fill || hoverStyle.stroke || '#000'),\r\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\r\n });\r\n path.setTextConfig({\r\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\r\n });\r\n textContent.ignore = !toolboxModel.get('showTitle');\r\n enterEmphasis(this);\r\n })\r\n .on('mouseout', function () {\r\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\r\n leaveEmphasis(this);\r\n }\r\n textContent.hide();\r\n });\r\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\r\n group.add(path);\r\n path.on('click', bind(feature.onclick, feature, ecModel, api, iconName));\r\n iconPaths[iconName] = path;\r\n });\r\n }\r\n layout$2(group, toolboxModel, api);\r\n group.add(makeBackground(group.getBoundingRect(), toolboxModel));\r\n group.eachChild(function (icon) {\r\n var titleText = icon.__title;\r\n var emphasisState = icon.ensureState('emphasis');\r\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\r\n var textContent = icon.getTextContent();\r\n var emphasisTextState = textContent && textContent.states.emphasis;\r\n if (emphasisTextState && !isFunction(emphasisTextState) && titleText) {\r\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\r\n var rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\r\n var offsetX = icon.x + group.x;\r\n var offsetY = icon.y + group.y + itemSize;\r\n var needPutOnTop = false;\r\n if (offsetY + rect.height > api.getHeight()) {\r\n emphasisTextConfig.position = 'top';\r\n needPutOnTop = true;\r\n }\r\n var topOffset = needPutOnTop ? (-5 - rect.height) : (itemSize + 8);\r\n if (offsetX + rect.width / 2 > api.getWidth()) {\r\n emphasisTextConfig.position = ['100%', topOffset];\r\n emphasisTextStyle.align = 'right';\r\n }\r\n else if (offsetX - rect.width / 2 < 0) {\r\n emphasisTextConfig.position = [0, topOffset];\r\n emphasisTextStyle.align = 'left';\r\n }\r\n }\r\n });\r\n };\r\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\r\n });\r\n };\r\n ToolboxView.prototype.remove = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.remove && feature.remove(ecModel, api);\r\n });\r\n this.group.removeAll();\r\n };\r\n ToolboxView.prototype.dispose = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.dispose && feature.dispose(ecModel, api);\r\n });\r\n };\r\n ToolboxView.type = 'toolbox';\r\n return ToolboxView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ToolboxView);\r\n function isUserFeatureName(featureName) {\r\n return featureName.indexOf('my') === 0;\r\n }\n\n var SaveAsImage = (function (_super) {\r\n __extends(SaveAsImage, _super);\r\n function SaveAsImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SaveAsImage.prototype.onclick = function (ecModel, api) {\r\n var model = this.model;\r\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\r\n var isSvg = api.getZr().painter.getType() === 'svg';\r\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\r\n var url = api.getConnectedDataURL({\r\n type: type,\r\n backgroundColor: model.get('backgroundColor', true)\r\n || ecModel.get('backgroundColor') || '#fff',\r\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\r\n excludeComponents: model.get('excludeComponents'),\r\n pixelRatio: model.get('pixelRatio')\r\n });\r\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\r\n var $a = document.createElement('a');\r\n $a.download = title + '.' + type;\r\n $a.target = '_blank';\r\n $a.href = url;\r\n var evt = new MouseEvent('click', {\r\n view: document.defaultView,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n $a.dispatchEvent(evt);\r\n }\r\n else {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n var bstr = atob(url.split(',')[1]);\r\n var n = bstr.length;\r\n var u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var blob = new Blob([u8arr]);\r\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\r\n }\r\n else {\r\n var lang = model.get('lang');\r\n var html = ''\r\n + '<body style=\"margin:0;\">'\r\n + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + ((lang && lang[0]) || '') + '\" />'\r\n + '</body>';\r\n var tab = window.open();\r\n tab.document.write(html);\r\n }\r\n }\r\n };\r\n SaveAsImage.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\r\n title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\r\n type: 'png',\r\n connectedBackgroundColor: '#fff',\r\n name: '',\r\n excludeComponents: ['toolbox'],\r\n pixelRatio: 1,\r\n lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\r\n };\r\n return defaultOption;\r\n };\r\n return SaveAsImage;\r\n }(ToolboxFeature));\r\n SaveAsImage.prototype.unusable = !env.canvasSupported;\r\n registerFeature('saveAsImage', SaveAsImage);\n\n var INNER_STACK_KEYWORD = '__ec_magicType_stack__';\r\n var radioTypes = [\r\n ['line', 'bar'],\r\n ['stack']\r\n ];\r\n var MagicType = (function (_super) {\r\n __extends(MagicType, _super);\r\n function MagicType() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MagicType.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon');\r\n var icons = {};\r\n each(model.get('type'), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n MagicType.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: [],\r\n icon: {\r\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\r\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\r\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\r\n option: {},\r\n seriesIndex: {}\r\n };\r\n return defaultOption;\r\n };\r\n MagicType.prototype.onclick = function (ecModel, api, type) {\r\n var model = this.model;\r\n var seriesIndex = model.get(['seriesIndex', type]);\r\n if (!seriesOptGenreator[type]) {\r\n return;\r\n }\r\n var newOption = {\r\n series: []\r\n };\r\n var generateNewSeriesTypes = function (seriesModel) {\r\n var seriesType = seriesModel.subType;\r\n var seriesId = seriesModel.id;\r\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\r\n if (newSeriesOpt) {\r\n defaults(newSeriesOpt, seriesModel.option);\r\n newOption.series.push(newSeriesOpt);\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (categoryAxis) {\r\n var axisDim = categoryAxis.dim;\r\n var axisType = axisDim + 'Axis';\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n var axisIndex = axisModel.componentIndex;\r\n newOption[axisType] = newOption[axisType] || [];\r\n for (var i = 0; i <= axisIndex; i++) {\r\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\r\n }\r\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\r\n }\r\n }\r\n };\r\n each(radioTypes, function (radio) {\r\n if (indexOf(radio, type) >= 0) {\r\n each(radio, function (item) {\r\n model.setIconStatus(item, 'normal');\r\n });\r\n }\r\n });\r\n model.setIconStatus(type, 'emphasis');\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n query: seriesIndex == null ? null : {\r\n seriesIndex: seriesIndex\r\n }\r\n }, generateNewSeriesTypes);\r\n var newTitle;\r\n if (type === 'stack') {\r\n newTitle = merge({\r\n stack: model.option.title.tiled,\r\n tiled: model.option.title.stack\r\n }, model.option.title);\r\n }\r\n api.dispatchAction({\r\n type: 'changeMagicType',\r\n currentType: type,\r\n newOption: newOption,\r\n newTitle: newTitle,\r\n featureName: 'magicType'\r\n });\r\n };\r\n return MagicType;\r\n }(ToolboxFeature));\r\n var seriesOptGenreator = {\r\n 'line': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'bar') {\r\n return merge({\r\n id: seriesId,\r\n type: 'line',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'line']) || {}, true);\r\n }\r\n },\r\n 'bar': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'line') {\r\n return merge({\r\n id: seriesId,\r\n type: 'bar',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'bar']) || {}, true);\r\n }\r\n },\r\n 'stack': function (seriesType, seriesId, seriesModel, model) {\r\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\r\n if (seriesType === 'line' || seriesType === 'bar') {\r\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\r\n return merge({\r\n id: seriesId,\r\n stack: isStack ? '' : INNER_STACK_KEYWORD\r\n }, model.get(['option', 'stack']) || {}, true);\r\n }\r\n }\r\n };\r\n registerAction({\r\n type: 'changeMagicType',\r\n event: 'magicTypeChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n ecModel.mergeOption(payload.newOption);\r\n });\r\n registerFeature('magicType', MagicType);\n\n var BLOCK_SPLITER = new Array(60).join('-');\r\n var ITEM_SPLITER = '\\t';\r\n function groupSeries(ecModel) {\r\n var seriesGroupByCategoryAxis = {};\r\n var otherSeries = [];\r\n var meta = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n if (baseAxis.type === 'category') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n if (!seriesGroupByCategoryAxis[key]) {\r\n seriesGroupByCategoryAxis[key] = {\r\n categoryAxis: baseAxis,\r\n valueAxis: coordSys.getOtherAxis(baseAxis),\r\n series: []\r\n };\r\n meta.push({\r\n axisDim: baseAxis.dim,\r\n axisIndex: baseAxis.index\r\n });\r\n }\r\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n });\r\n return {\r\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\r\n other: otherSeries,\r\n meta: meta\r\n };\r\n }\r\n function assembleSeriesWithCategoryAxis(groups) {\r\n var tables = [];\r\n each(groups, function (group, key) {\r\n var categoryAxis = group.categoryAxis;\r\n var valueAxis = group.valueAxis;\r\n var valueAxisDim = valueAxis.dim;\r\n var headers = [' '].concat(map(group.series, function (series) {\r\n return series.name;\r\n }));\r\n var columns = [categoryAxis.model.getCategories()];\r\n each(group.series, function (series) {\r\n var rawData = series.getRawData();\r\n columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\r\n return val;\r\n }));\r\n });\r\n var lines = [headers.join(ITEM_SPLITER)];\r\n for (var i = 0; i < columns[0].length; i++) {\r\n var items = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n items.push(columns[j][i]);\r\n }\r\n lines.push(items.join(ITEM_SPLITER));\r\n }\r\n tables.push(lines.join('\\n'));\r\n });\r\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function assembleOtherSeries(series) {\r\n return map(series, function (series) {\r\n var data = series.getRawData();\r\n var lines = [series.name];\r\n var vals = [];\r\n data.each(data.dimensions, function () {\r\n var argLen = arguments.length;\r\n var dataIndex = arguments[argLen - 1];\r\n var name = data.getName(dataIndex);\r\n for (var i = 0; i < argLen - 1; i++) {\r\n vals[i] = arguments[i];\r\n }\r\n lines.push((name ? (name + ITEM_SPLITER) : '') + vals.join(ITEM_SPLITER));\r\n });\r\n return lines.join('\\n');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function getContentFromModel(ecModel) {\r\n var result = groupSeries(ecModel);\r\n return {\r\n value: filter([\r\n assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis),\r\n assembleOtherSeries(result.other)\r\n ], function (str) {\r\n return !!str.replace(/[\\n\\t\\s]/g, '');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\r\n meta: result.meta\r\n };\r\n }\r\n function trim$1(str) {\r\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n }\r\n function isTSVFormat(block) {\r\n var firstLine = block.slice(0, block.indexOf('\\n'));\r\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\r\n return true;\r\n }\r\n }\r\n var itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\r\n function parseTSVContents(tsv) {\r\n var tsvLines = tsv.split(/\\n+/g);\r\n var headers = trim$1(tsvLines.shift()).split(itemSplitRegex);\r\n var categories = [];\r\n var series = map(headers, function (header) {\r\n return {\r\n name: header,\r\n data: []\r\n };\r\n });\r\n for (var i = 0; i < tsvLines.length; i++) {\r\n var items = trim$1(tsvLines[i]).split(itemSplitRegex);\r\n categories.push(items.shift());\r\n for (var j = 0; j < items.length; j++) {\r\n series[j] && (series[j].data[i] = items[j]);\r\n }\r\n }\r\n return {\r\n series: series,\r\n categories: categories\r\n };\r\n }\r\n function parseListContents(str) {\r\n var lines = str.split(/\\n+/g);\r\n var seriesName = trim$1(lines.shift());\r\n var data = [];\r\n for (var i = 0; i < lines.length; i++) {\r\n var line = trim$1(lines[i]);\r\n if (!line) {\r\n continue;\r\n }\r\n var items = line.split(itemSplitRegex);\r\n var name_1 = '';\r\n var value = void 0;\r\n var hasName = false;\r\n if (isNaN(items[0])) {\r\n hasName = true;\r\n name_1 = items[0];\r\n items = items.slice(1);\r\n data[i] = {\r\n name: name_1,\r\n value: []\r\n };\r\n value = data[i].value;\r\n }\r\n else {\r\n value = data[i] = [];\r\n }\r\n for (var j = 0; j < items.length; j++) {\r\n value.push(+items[j]);\r\n }\r\n if (value.length === 1) {\r\n hasName ? (data[i].value = value[0]) : (data[i] = value[0]);\r\n }\r\n }\r\n return {\r\n name: seriesName,\r\n data: data\r\n };\r\n }\r\n function parseContents(str, blockMetaList) {\r\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\r\n var newOption = {\r\n series: []\r\n };\r\n each(blocks, function (block, idx) {\r\n if (isTSVFormat(block)) {\r\n var result = parseTSVContents(block);\r\n var blockMeta = blockMetaList[idx];\r\n var axisKey = blockMeta.axisDim + 'Axis';\r\n if (blockMeta) {\r\n newOption[axisKey] = newOption[axisKey] || [];\r\n newOption[axisKey][blockMeta.axisIndex] = {\r\n data: result.categories\r\n };\r\n newOption.series = newOption.series.concat(result.series);\r\n }\r\n }\r\n else {\r\n var result = parseListContents(block);\r\n newOption.series.push(result);\r\n }\r\n });\r\n return newOption;\r\n }\r\n var DataView = (function (_super) {\r\n __extends(DataView, _super);\r\n function DataView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataView.prototype.onclick = function (ecModel, api) {\r\n var container = api.getDom();\r\n var model = this.model;\r\n if (this._dom) {\r\n container.removeChild(this._dom);\r\n }\r\n var root = document.createElement('div');\r\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\r\n root.style.backgroundColor = model.get('backgroundColor') || '#fff';\r\n var header = document.createElement('h4');\r\n var lang = model.get('lang') || [];\r\n header.innerHTML = lang[0] || model.get('title');\r\n header.style.cssText = 'margin: 10px 20px;';\r\n header.style.color = model.get('textColor');\r\n var viewMain = document.createElement('div');\r\n var textarea = document.createElement('textarea');\r\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\r\n var optionToContent = model.get('optionToContent');\r\n var contentToOption = model.get('contentToOption');\r\n var result = getContentFromModel(ecModel);\r\n if (typeof optionToContent === 'function') {\r\n var htmlOrDom = optionToContent(api.getOption());\r\n if (typeof htmlOrDom === 'string') {\r\n viewMain.innerHTML = htmlOrDom;\r\n }\r\n else if (isDom(htmlOrDom)) {\r\n viewMain.appendChild(htmlOrDom);\r\n }\r\n }\r\n else {\r\n viewMain.appendChild(textarea);\r\n textarea.readOnly = model.get('readOnly');\r\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\r\n textarea.style.color = model.get('textColor');\r\n textarea.style.borderColor = model.get('textareaBorderColor');\r\n textarea.style.backgroundColor = model.get('textareaColor');\r\n textarea.value = result.value;\r\n }\r\n var blockMetaList = result.meta;\r\n var buttonContainer = document.createElement('div');\r\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\r\n var buttonStyle = 'float:right;margin-right:20px;border:none;'\r\n + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\r\n var closeButton = document.createElement('div');\r\n var refreshButton = document.createElement('div');\r\n buttonStyle += ';background-color:' + model.get('buttonColor');\r\n buttonStyle += ';color:' + model.get('buttonTextColor');\r\n var self = this;\r\n function close() {\r\n container.removeChild(root);\r\n self._dom = null;\r\n }\r\n addEventListener(closeButton, 'click', close);\r\n addEventListener(refreshButton, 'click', function () {\r\n if ((contentToOption == null && optionToContent != null)\r\n || (contentToOption != null && optionToContent == null)) {\r\n if (__DEV__) {\r\n console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\r\n }\r\n close();\r\n return;\r\n }\r\n var newOption;\r\n try {\r\n if (typeof contentToOption === 'function') {\r\n newOption = contentToOption(viewMain, api.getOption());\r\n }\r\n else {\r\n newOption = parseContents(textarea.value, blockMetaList);\r\n }\r\n }\r\n catch (e) {\r\n close();\r\n throw new Error('Data view format error ' + e);\r\n }\r\n if (newOption) {\r\n api.dispatchAction({\r\n type: 'changeDataView',\r\n newOption: newOption\r\n });\r\n }\r\n close();\r\n });\r\n closeButton.innerHTML = lang[1];\r\n refreshButton.innerHTML = lang[2];\r\n refreshButton.style.cssText = buttonStyle;\r\n closeButton.style.cssText = buttonStyle;\r\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\r\n buttonContainer.appendChild(closeButton);\r\n root.appendChild(header);\r\n root.appendChild(viewMain);\r\n root.appendChild(buttonContainer);\r\n viewMain.style.height = (container.clientHeight - 80) + 'px';\r\n container.appendChild(root);\r\n this._dom = root;\r\n };\r\n DataView.prototype.remove = function (ecModel, api) {\r\n this._dom && api.getDom().removeChild(this._dom);\r\n };\r\n DataView.prototype.dispose = function (ecModel, api) {\r\n this.remove(ecModel, api);\r\n };\r\n DataView.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n readOnly: false,\r\n optionToContent: null,\r\n contentToOption: null,\r\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\r\n title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\r\n lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\r\n backgroundColor: '#fff',\r\n textColor: '#000',\r\n textareaColor: '#fff',\r\n textareaBorderColor: '#333',\r\n buttonColor: '#c23531',\r\n buttonTextColor: '#fff'\r\n };\r\n return defaultOption;\r\n };\r\n return DataView;\r\n }(ToolboxFeature));\r\n function tryMergeDataOption(newData, originalData) {\r\n return map(newData, function (newVal, idx) {\r\n var original = originalData && originalData[idx];\r\n if (isObject(original) && !isArray(original)) {\r\n var newValIsObject = isObject(newVal) && !isArray(newVal);\r\n if (!newValIsObject) {\r\n newVal = {\r\n value: newVal\r\n };\r\n }\r\n var shouldDeleteName = original.name != null && newVal.name == null;\r\n newVal = defaults(newVal, original);\r\n shouldDeleteName && (delete newVal.name);\r\n return newVal;\r\n }\r\n else {\r\n return newVal;\r\n }\r\n });\r\n }\r\n registerFeature('dataView', DataView);\r\n registerAction({\r\n type: 'changeDataView',\r\n event: 'dataViewChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n var newSeriesOptList = [];\r\n each(payload.newOption.series, function (seriesOpt) {\r\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\r\n if (!seriesModel) {\r\n newSeriesOptList.push(extend({\r\n type: 'scatter'\r\n }, seriesOpt));\r\n }\r\n else {\r\n var originalData = seriesModel.get('data');\r\n newSeriesOptList.push({\r\n name: seriesOpt.name,\r\n data: tryMergeDataOption(seriesOpt.data, originalData)\r\n });\r\n }\r\n });\r\n ecModel.mergeOption(defaults({\r\n series: newSeriesOptList\r\n }, payload.newOption));\r\n });\n\n var BRUSH_PANEL_GLOBAL = true;\r\n var mathMin$7 = Math.min;\r\n var mathMax$7 = Math.max;\r\n var mathPow$2 = Math.pow;\r\n var COVER_Z = 10000;\r\n var UNSELECT_THRESHOLD = 6;\r\n var MIN_RESIZE_LINE_WIDTH = 6;\r\n var MUTEX_RESOURCE_KEY = 'globalPan';\r\n var DIRECTION_MAP = {\r\n w: [0, 0],\r\n e: [0, 1],\r\n n: [1, 0],\r\n s: [1, 1]\r\n };\r\n var CURSOR_MAP = {\r\n w: 'ew',\r\n e: 'ew',\r\n n: 'ns',\r\n s: 'ns',\r\n ne: 'nesw',\r\n sw: 'nesw',\r\n nw: 'nwse',\r\n se: 'nwse'\r\n };\r\n var DEFAULT_BRUSH_OPT = {\r\n brushStyle: {\r\n lineWidth: 2,\r\n stroke: 'rgba(210,219,238,0.3)',\r\n fill: '#D2DBEE'\r\n },\r\n transformable: true,\r\n brushMode: 'single',\r\n removeOnClick: false\r\n };\r\n var baseUID = 0;\r\n var BrushController = (function (_super) {\r\n __extends(BrushController, _super);\r\n function BrushController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._track = [];\r\n _this._covers = [];\r\n _this._handlers = {};\r\n if (__DEV__) {\r\n assert(zr);\r\n }\r\n _this._zr = zr;\r\n _this.group = new Group();\r\n _this._uid = 'brushController_' + baseUID++;\r\n each(pointerHandlers, function (handler, eventName) {\r\n this._handlers[eventName] = bind(handler, this);\r\n }, _this);\r\n return _this;\r\n }\r\n BrushController.prototype.enableBrush = function (brushOption) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n this._brushType && this._doDisableBrush();\r\n brushOption.brushType && this._doEnableBrush(brushOption);\r\n return this;\r\n };\r\n BrushController.prototype._doEnableBrush = function (brushOption) {\r\n var zr = this._zr;\r\n if (!this._enableGlobalPan) {\r\n take(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n }\r\n each(this._handlers, function (handler, eventName) {\r\n zr.on(eventName, handler);\r\n });\r\n this._brushType = brushOption.brushType;\r\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\r\n };\r\n BrushController.prototype._doDisableBrush = function () {\r\n var zr = this._zr;\r\n release(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n each(this._handlers, function (handler, eventName) {\r\n zr.off(eventName, handler);\r\n });\r\n this._brushType = this._brushOption = null;\r\n };\r\n BrushController.prototype.setPanels = function (panelOpts) {\r\n if (panelOpts && panelOpts.length) {\r\n var panels_1 = this._panels = {};\r\n each(panelOpts, function (panelOpts) {\r\n panels_1[panelOpts.panelId] = clone(panelOpts);\r\n });\r\n }\r\n else {\r\n this._panels = null;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.mount = function (opt) {\r\n opt = opt || {};\r\n if (__DEV__) {\r\n this._mounted = true;\r\n }\r\n this._enableGlobalPan = opt.enableGlobalPan;\r\n var thisGroup = this.group;\r\n this._zr.add(thisGroup);\r\n thisGroup.attr({\r\n x: opt.x || 0,\r\n y: opt.y || 0,\r\n rotation: opt.rotation || 0,\r\n scaleX: opt.scaleX || 1,\r\n scaleY: opt.scaleY || 1\r\n });\r\n this._transform = thisGroup.getLocalTransform();\r\n return this;\r\n };\r\n BrushController.prototype.updateCovers = function (coverConfigList) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n coverConfigList = map(coverConfigList, function (coverConfig) {\r\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\r\n });\r\n var tmpIdPrefix = '\\0-brush-index-';\r\n var oldCovers = this._covers;\r\n var newCovers = this._covers = [];\r\n var controller = this;\r\n var creatingCover = this._creatingCover;\r\n (new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey))\r\n .add(addOrUpdate)\r\n .update(addOrUpdate)\r\n .remove(remove)\r\n .execute();\r\n return this;\r\n function getKey(brushOption, index) {\r\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index)\r\n + '-' + brushOption.brushType;\r\n }\r\n function oldGetKey(cover, index) {\r\n return getKey(cover.__brushOption, index);\r\n }\r\n function addOrUpdate(newIndex, oldIndex) {\r\n var newBrushInternal = coverConfigList[newIndex];\r\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\r\n newCovers[newIndex] = oldCovers[oldIndex];\r\n }\r\n else {\r\n var cover = newCovers[newIndex] = oldIndex != null\r\n ? (oldCovers[oldIndex].__brushOption = newBrushInternal,\r\n oldCovers[oldIndex])\r\n : endCreating(controller, createCover(controller, newBrushInternal));\r\n updateCoverAfterCreation(controller, cover);\r\n }\r\n }\r\n function remove(oldIndex) {\r\n if (oldCovers[oldIndex] !== creatingCover) {\r\n controller.group.remove(oldCovers[oldIndex]);\r\n }\r\n }\r\n };\r\n BrushController.prototype.unmount = function () {\r\n if (__DEV__) {\r\n if (!this._mounted) {\r\n return;\r\n }\r\n }\r\n this.enableBrush(false);\r\n clearCovers(this);\r\n this._zr.remove(this.group);\r\n if (__DEV__) {\r\n this._mounted = false;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.dispose = function () {\r\n this.unmount();\r\n this.off();\r\n };\r\n return BrushController;\r\n }(Eventful));\r\n function createCover(controller, brushOption) {\r\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\r\n cover.__brushOption = brushOption;\r\n updateZ(cover, brushOption);\r\n controller.group.add(cover);\r\n return cover;\r\n }\r\n function endCreating(controller, creatingCover) {\r\n var coverRenderer = getCoverRenderer(creatingCover);\r\n if (coverRenderer.endCreating) {\r\n coverRenderer.endCreating(controller, creatingCover);\r\n updateZ(creatingCover, creatingCover.__brushOption);\r\n }\r\n return creatingCover;\r\n }\r\n function updateCoverShape(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\r\n }\r\n function updateZ(cover, brushOption) {\r\n var z = brushOption.z;\r\n z == null && (z = COVER_Z);\r\n cover.traverse(function (el) {\r\n el.z = z;\r\n el.z2 = z;\r\n });\r\n }\r\n function updateCoverAfterCreation(controller, cover) {\r\n getCoverRenderer(cover).updateCommon(controller, cover);\r\n updateCoverShape(controller, cover);\r\n }\r\n function getCoverRenderer(cover) {\r\n return coverRenderers[cover.__brushOption.brushType];\r\n }\r\n function getPanelByPoint(controller, e, localCursorPoint) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panel;\r\n var transform = controller._transform;\r\n each(panels, function (pn) {\r\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\r\n });\r\n return panel;\r\n }\r\n function getPanelByCover(controller, cover) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panelId = cover.__brushOption.panelId;\r\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\r\n }\r\n function clearCovers(controller) {\r\n var covers = controller._covers;\r\n var originalLength = covers.length;\r\n each(covers, function (cover) {\r\n controller.group.remove(cover);\r\n }, controller);\r\n covers.length = 0;\r\n return !!originalLength;\r\n }\r\n function trigger$1(controller, opt) {\r\n var areas = map(controller._covers, function (cover) {\r\n var brushOption = cover.__brushOption;\r\n var range = clone(brushOption.range);\r\n return {\r\n brushType: brushOption.brushType,\r\n panelId: brushOption.panelId,\r\n range: range\r\n };\r\n });\r\n controller.trigger('brush', {\r\n areas: areas,\r\n isEnd: !!opt.isEnd,\r\n removeOnClick: !!opt.removeOnClick\r\n });\r\n }\r\n function shouldShowCover(controller) {\r\n var track = controller._track;\r\n if (!track.length) {\r\n return false;\r\n }\r\n var p2 = track[track.length - 1];\r\n var p1 = track[0];\r\n var dx = p2[0] - p1[0];\r\n var dy = p2[1] - p1[1];\r\n var dist = mathPow$2(dx * dx + dy * dy, 0.5);\r\n return dist > UNSELECT_THRESHOLD;\r\n }\r\n function getTrackEnds(track) {\r\n var tail = track.length - 1;\r\n tail < 0 && (tail = 0);\r\n return [track[0], track[tail]];\r\n }\r\n function createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\r\n var cover = new Group();\r\n cover.add(new Rect({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true,\r\n draggable: true,\r\n cursor: 'move',\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n each(edgeNameSequences, function (nameSequence) {\r\n cover.add(new Rect({\r\n name: nameSequence.join(''),\r\n style: { opacity: 0 },\r\n draggable: true,\r\n silent: true,\r\n invisible: true,\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n });\r\n return cover;\r\n }\r\n function updateBaseRect(controller, cover, localRange, brushOption) {\r\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\r\n var handleSize = mathMax$7(lineWidth, MIN_RESIZE_LINE_WIDTH);\r\n var x = localRange[0][0];\r\n var y = localRange[1][0];\r\n var xa = x - lineWidth / 2;\r\n var ya = y - lineWidth / 2;\r\n var x2 = localRange[0][1];\r\n var y2 = localRange[1][1];\r\n var x2a = x2 - handleSize + lineWidth / 2;\r\n var y2a = y2 - handleSize + lineWidth / 2;\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var widtha = width + lineWidth;\r\n var heighta = height + lineWidth;\r\n updateRectShape(controller, cover, 'main', x, y, width, height);\r\n if (brushOption.transformable) {\r\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\r\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\r\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\r\n }\r\n }\r\n function updateCommon(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n var transformable = brushOption.transformable;\r\n var mainEl = cover.childAt(0);\r\n mainEl.useStyle(makeStyle(brushOption));\r\n mainEl.attr({\r\n silent: !transformable,\r\n cursor: transformable ? 'move' : 'default'\r\n });\r\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\r\n var el = cover.childOfName(nameSequence.join(''));\r\n var globalDir = nameSequence.length === 1\r\n ? getGlobalDirection1(controller, nameSequence[0])\r\n : getGlobalDirection2(controller, nameSequence);\r\n el && el.attr({\r\n silent: !transformable,\r\n invisible: !transformable,\r\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\r\n });\r\n });\r\n }\r\n function updateRectShape(controller, cover, name, x, y, w, h) {\r\n var el = cover.childOfName(name);\r\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\r\n }\r\n function makeStyle(brushOption) {\r\n return defaults({ strokeNoScale: true }, brushOption.brushStyle);\r\n }\r\n function formatRectRange(x, y, x2, y2) {\r\n var min = [mathMin$7(x, x2), mathMin$7(y, y2)];\r\n var max = [mathMax$7(x, x2), mathMax$7(y, y2)];\r\n return [\r\n [min[0], max[0]],\r\n [min[1], max[1]]\r\n ];\r\n }\r\n function getTransform$1(controller) {\r\n return getTransform(controller.group);\r\n }\r\n function getGlobalDirection1(controller, localDirName) {\r\n var map = { w: 'left', e: 'right', n: 'top', s: 'bottom' };\r\n var inverseMap = { left: 'w', right: 'e', top: 'n', bottom: 's' };\r\n var dir = transformDirection(map[localDirName], getTransform$1(controller));\r\n return inverseMap[dir];\r\n }\r\n function getGlobalDirection2(controller, localDirNameSeq) {\r\n var globalDir = [\r\n getGlobalDirection1(controller, localDirNameSeq[0]),\r\n getGlobalDirection1(controller, localDirNameSeq[1])\r\n ];\r\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\r\n return globalDir.join('');\r\n }\r\n function driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\r\n var brushOption = cover.__brushOption;\r\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(dirNameSequence, function (dirName) {\r\n var ind = DIRECTION_MAP[dirName];\r\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\r\n });\r\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function driftPolygon(controller, cover, dx, dy) {\r\n var range = cover.__brushOption.range;\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(range, function (point) {\r\n point[0] += localDelta[0];\r\n point[1] += localDelta[1];\r\n });\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function toLocalDelta(controller, dx, dy) {\r\n var thisGroup = controller.group;\r\n var localD = thisGroup.transformCoordToLocal(dx, dy);\r\n var localZero = thisGroup.transformCoordToLocal(0, 0);\r\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\r\n }\r\n function clipByPanel(controller, cover, data) {\r\n var panel = getPanelByCover(controller, cover);\r\n return (panel && panel !== BRUSH_PANEL_GLOBAL)\r\n ? panel.clipPath(data, controller._transform)\r\n : clone(data);\r\n }\r\n function pointsToRect(points) {\r\n var xmin = mathMin$7(points[0][0], points[1][0]);\r\n var ymin = mathMin$7(points[0][1], points[1][1]);\r\n var xmax = mathMax$7(points[0][0], points[1][0]);\r\n var ymax = mathMax$7(points[0][1], points[1][1]);\r\n return {\r\n x: xmin,\r\n y: ymin,\r\n width: xmax - xmin,\r\n height: ymax - ymin\r\n };\r\n }\r\n function resetCursor(controller, e, localCursorPoint) {\r\n if (!controller._brushType\r\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\r\n return;\r\n }\r\n var zr = controller._zr;\r\n var covers = controller._covers;\r\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\r\n if (!controller._dragging) {\r\n for (var i = 0; i < covers.length; i++) {\r\n var brushOption = covers[i].__brushOption;\r\n if (currPanel\r\n && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId)\r\n && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\r\n return;\r\n }\r\n }\r\n }\r\n currPanel && zr.setCursorStyle('crosshair');\r\n }\r\n function preventDefault(e) {\r\n var rawE = e.event;\r\n rawE.preventDefault && rawE.preventDefault();\r\n }\r\n function mainShapeContain(cover, x, y) {\r\n return cover.childOfName('main').contain(x, y);\r\n }\r\n function updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\r\n var creatingCover = controller._creatingCover;\r\n var panel = controller._creatingPanel;\r\n var thisBrushOption = controller._brushOption;\r\n var eventParams;\r\n controller._track.push(localCursorPoint.slice());\r\n if (shouldShowCover(controller) || creatingCover) {\r\n if (panel && !creatingCover) {\r\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\r\n var brushOption = clone(thisBrushOption);\r\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\r\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\r\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\r\n controller._covers.push(creatingCover);\r\n }\r\n if (creatingCover) {\r\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\r\n var coverBrushOption = creatingCover.__brushOption;\r\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\r\n if (isEnd) {\r\n endCreating(controller, creatingCover);\r\n coverRenderer.updateCommon(controller, creatingCover);\r\n }\r\n updateCoverShape(controller, creatingCover);\r\n eventParams = { isEnd: isEnd };\r\n }\r\n }\r\n else if (isEnd\r\n && thisBrushOption.brushMode === 'single'\r\n && thisBrushOption.removeOnClick) {\r\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\r\n eventParams = { isEnd: isEnd, removeOnClick: true };\r\n }\r\n }\r\n return eventParams;\r\n }\r\n function determineBrushType(brushType, panel) {\r\n if (brushType === 'auto') {\r\n if (__DEV__) {\r\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\r\n }\r\n return panel.defaultBrushType;\r\n }\r\n return brushType;\r\n }\r\n var pointerHandlers = {\r\n mousedown: function (e) {\r\n if (this._dragging) {\r\n handleDragEnd(this, e);\r\n }\r\n else if (!e.target || !e.target.draggable) {\r\n preventDefault(e);\r\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\r\n this._creatingCover = null;\r\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\r\n if (panel) {\r\n this._dragging = true;\r\n this._track = [localCursorPoint.slice()];\r\n }\r\n }\r\n },\r\n mousemove: function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\r\n resetCursor(this, e, localCursorPoint);\r\n if (this._dragging) {\r\n preventDefault(e);\r\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\r\n eventParams && trigger$1(this, eventParams);\r\n }\r\n },\r\n mouseup: function (e) {\r\n handleDragEnd(this, e);\r\n }\r\n };\r\n function handleDragEnd(controller, e) {\r\n if (controller._dragging) {\r\n preventDefault(e);\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\r\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\r\n controller._dragging = false;\r\n controller._track = [];\r\n controller._creatingCover = null;\r\n eventParams && trigger$1(controller, eventParams);\r\n }\r\n }\r\n function isOutsideZrArea(controller, x, y) {\r\n var zr = controller._zr;\r\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\r\n }\r\n var coverRenderers = {\r\n lineX: getLineRenderer(0),\r\n lineY: getLineRenderer(1),\r\n rect: {\r\n createCover: function (controller, brushOption) {\r\n function returnInput(range) {\r\n return range;\r\n }\r\n return createBaseRectCover({\r\n toRectRange: returnInput,\r\n fromRectRange: returnInput\r\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n updateBaseRect(controller, cover, localRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n },\r\n polygon: {\r\n createCover: function (controller, brushOption) {\r\n var cover = new Group();\r\n cover.add(new Polyline({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true\r\n }));\r\n return cover;\r\n },\r\n getCreatingRange: function (localTrack) {\r\n return localTrack;\r\n },\r\n endCreating: function (controller, cover) {\r\n cover.remove(cover.childAt(0));\r\n cover.add(new Polygon({\r\n name: 'main',\r\n draggable: true,\r\n drift: curry(driftPolygon, controller, cover),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n cover.childAt(0).setShape({\r\n points: clipByPanel(controller, cover, localRange)\r\n });\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n }\r\n };\r\n function getLineRenderer(xyIndex) {\r\n return {\r\n createCover: function (controller, brushOption) {\r\n return createBaseRectCover({\r\n toRectRange: function (range) {\r\n var rectRange = [range, [0, 100]];\r\n xyIndex && rectRange.reverse();\r\n return rectRange;\r\n },\r\n fromRectRange: function (rectRange) {\r\n return rectRange[xyIndex];\r\n }\r\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n var min = mathMin$7(ends[0][xyIndex], ends[1][xyIndex]);\r\n var max = mathMax$7(ends[0][xyIndex], ends[1][xyIndex]);\r\n return [min, max];\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n var otherExtent;\r\n var panel = getPanelByCover(controller, cover);\r\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\r\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\r\n }\r\n else {\r\n var zr = controller._zr;\r\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\r\n }\r\n var rectRange = [localRange, otherExtent];\r\n xyIndex && rectRange.reverse();\r\n updateBaseRect(controller, cover, rectRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n };\r\n }\n\n var IRRELEVANT_EXCLUDES = { 'axisPointer': 1, 'tooltip': 1, 'brush': 1 };\r\n function onIrrelevantElement(e, api, targetCoordSysModel) {\r\n var model = api.getComponentByElement(e.topTarget);\r\n var coordSys = model && model.coordinateSystem;\r\n return model\r\n && model !== targetCoordSysModel\r\n && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType)\r\n && (coordSys && coordSys.model !== targetCoordSysModel);\r\n }\n\n function makeRectPanelClipPath(rect) {\r\n rect = normalizeRect(rect);\r\n return function (localPoints) {\r\n return clipPointsByRect(localPoints, rect);\r\n };\r\n }\r\n function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\r\n rect = normalizeRect(rect);\r\n return function (xyIndex) {\r\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\r\n var brushWidth = idx ? rect.width : rect.height;\r\n var base = idx ? rect.x : rect.y;\r\n return [base, base + (brushWidth || 0)];\r\n };\r\n }\r\n function makeRectIsTargetByCursor(rect, api, targetModel) {\r\n var boundingRect = normalizeRect(rect);\r\n return function (e, localCursorPoint) {\r\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1])\r\n && !onIrrelevantElement(e, api, targetModel);\r\n };\r\n }\r\n function normalizeRect(rect) {\r\n return BoundingRect.create(rect);\r\n }\n\n var COORD_CONVERTS = ['dataToPoint', 'pointToData'];\r\n var INCLUDE_FINDER_MAIN_TYPES = [\r\n 'grid', 'xAxis', 'yAxis', 'geo', 'graph',\r\n 'polar', 'radiusAxis', 'angleAxis', 'bmap'\r\n ];\r\n var BrushTargetManager = (function () {\r\n function BrushTargetManager(finder, ecModel, opt) {\r\n var _this = this;\r\n this._targetInfoList = [];\r\n var foundCpts = parseFinder$1(ecModel, finder);\r\n each(targetInfoBuilders, function (builder, type) {\r\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\r\n builder(foundCpts, _this._targetInfoList);\r\n }\r\n });\r\n }\r\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\r\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n (area.coordRanges || (area.coordRanges = [])).push(coordRange);\r\n if (!area.coordRange) {\r\n area.coordRange = coordRange;\r\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\r\n area.__rangeOffset = {\r\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\r\n xyMinMax: result.xyMinMax\r\n };\r\n }\r\n });\r\n return areas;\r\n };\r\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (targetInfo && targetInfo !== true) {\r\n each(targetInfo.coordSyses, function (coordSys) {\r\n var result = coordConvert[area.brushType](1, coordSys, area.range);\r\n cb(area, result.values, coordSys, ecModel);\r\n });\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (__DEV__) {\r\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\r\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\r\n }\r\n area.range = area.range || [];\r\n if (targetInfo && targetInfo !== true) {\r\n area.panelId = targetInfo.panelId;\r\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\r\n var rangeOffset = area.__rangeOffset;\r\n area.range = rangeOffset\r\n ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax))\r\n : result.values;\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\r\n return map(this._targetInfoList, function (targetInfo) {\r\n var rect = targetInfo.getPanelRect();\r\n return {\r\n panelId: targetInfo.panelId,\r\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect)\r\n };\r\n });\r\n };\r\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n return targetInfo === true || (targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0);\r\n };\r\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\r\n var targetInfoList = this._targetInfoList;\r\n var foundCpts = parseFinder$1(ecModel, area);\r\n for (var i = 0; i < targetInfoList.length; i++) {\r\n var targetInfo = targetInfoList[i];\r\n var areaPanelId = area.panelId;\r\n if (areaPanelId) {\r\n if (targetInfo.panelId === areaPanelId) {\r\n return targetInfo;\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < targetInfoMatchers.length; j++) {\r\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\r\n return targetInfo;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return BrushTargetManager;\r\n }());\r\n function formatMinMax(minMax) {\r\n minMax[0] > minMax[1] && minMax.reverse();\r\n return minMax;\r\n }\r\n function parseFinder$1(ecModel, finder) {\r\n return parseFinder(ecModel, finder, { includeMainTypes: INCLUDE_FINDER_MAIN_TYPES });\r\n }\r\n var targetInfoBuilders = {\r\n grid: function (foundCpts, targetInfoList) {\r\n var xAxisModels = foundCpts.xAxisModels;\r\n var yAxisModels = foundCpts.yAxisModels;\r\n var gridModels = foundCpts.gridModels;\r\n var gridModelMap = createHashMap();\r\n var xAxesHas = {};\r\n var yAxesHas = {};\r\n if (!xAxisModels && !yAxisModels && !gridModels) {\r\n return;\r\n }\r\n each(xAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n });\r\n each(yAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n each(gridModels, function (gridModel) {\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n gridModelMap.each(function (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n var cartesians = [];\r\n each(grid.getCartesians(), function (cartesian, index) {\r\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0\r\n || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\r\n cartesians.push(cartesian);\r\n }\r\n });\r\n targetInfoList.push({\r\n panelId: 'grid--' + gridModel.id,\r\n gridModel: gridModel,\r\n coordSysModel: gridModel,\r\n coordSys: cartesians[0],\r\n coordSyses: cartesians,\r\n getPanelRect: panelRectBuilders.grid,\r\n xAxisDeclared: xAxesHas[gridModel.id],\r\n yAxisDeclared: yAxesHas[gridModel.id]\r\n });\r\n });\r\n },\r\n geo: function (foundCpts, targetInfoList) {\r\n each(foundCpts.geoModels, function (geoModel) {\r\n var coordSys = geoModel.coordinateSystem;\r\n targetInfoList.push({\r\n panelId: 'geo--' + geoModel.id,\r\n geoModel: geoModel,\r\n coordSysModel: geoModel,\r\n coordSys: coordSys,\r\n coordSyses: [coordSys],\r\n getPanelRect: panelRectBuilders.geo\r\n });\r\n });\r\n }\r\n };\r\n var targetInfoMatchers = [\r\n function (foundCpts, targetInfo) {\r\n var xAxisModel = foundCpts.xAxisModel;\r\n var yAxisModel = foundCpts.yAxisModel;\r\n var gridModel = foundCpts.gridModel;\r\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\r\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\r\n return gridModel && gridModel === targetInfo.gridModel;\r\n },\r\n function (foundCpts, targetInfo) {\r\n var geoModel = foundCpts.geoModel;\r\n return geoModel && geoModel === targetInfo.geoModel;\r\n }\r\n ];\r\n var panelRectBuilders = {\r\n grid: function () {\r\n return this.coordSys.master.getRect().clone();\r\n },\r\n geo: function () {\r\n var coordSys = this.coordSys;\r\n var rect = coordSys.getBoundingRect().clone();\r\n rect.applyTransform(getTransform(coordSys));\r\n return rect;\r\n }\r\n };\r\n var coordConvert = {\r\n lineX: curry(axisConvert, 0),\r\n lineY: curry(axisConvert, 1),\r\n rect: function (to, coordSys, rangeOrCoordRange) {\r\n var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\r\n var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\r\n var values = [\r\n formatMinMax([xminymin[0], xmaxymax[0]]),\r\n formatMinMax([xminymin[1], xmaxymax[1]])\r\n ];\r\n return { values: values, xyMinMax: values };\r\n },\r\n polygon: function (to, coordSys, rangeOrCoordRange) {\r\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var values = map(rangeOrCoordRange, function (item) {\r\n var p = coordSys[COORD_CONVERTS[to]](item);\r\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\r\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\r\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\r\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\r\n return p;\r\n });\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n };\r\n function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\r\n if (__DEV__) {\r\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\r\n }\r\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\r\n var values = formatMinMax(map([0, 1], function (i) {\r\n return to\r\n ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]))\r\n : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\r\n }));\r\n var xyMinMax = [];\r\n xyMinMax[axisNameIndex] = values;\r\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n var diffProcessor = {\r\n lineX: curry(axisDiffProcessor, 0),\r\n lineY: curry(axisDiffProcessor, 1),\r\n rect: function (values, refer, scales) {\r\n return [\r\n [values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]],\r\n [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]\r\n ];\r\n },\r\n polygon: function (values, refer, scales) {\r\n return map(values, function (item, idx) {\r\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\r\n });\r\n }\r\n };\r\n function axisDiffProcessor(axisNameIndex, values, refer, scales) {\r\n return [\r\n values[0] - scales[axisNameIndex] * refer[0],\r\n values[1] - scales[axisNameIndex] * refer[1]\r\n ];\r\n }\r\n function getScales(xyMinMaxCurr, xyMinMaxOrigin) {\r\n var sizeCurr = getSize(xyMinMaxCurr);\r\n var sizeOrigin = getSize(xyMinMaxOrigin);\r\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\r\n isNaN(scales[0]) && (scales[0] = 1);\r\n isNaN(scales[1]) && (scales[1] = 1);\r\n return scales;\r\n }\r\n function getSize(xyMinMax) {\r\n return xyMinMax\r\n ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]]\r\n : [NaN, NaN];\r\n }\n\n var each$8 = each;\r\n var inner$f = makeInner();\r\n function push(ecModel, newSnapshot) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n each$8(newSnapshot, function (batchItem, dataZoomId) {\r\n var i = storedSnapshots.length - 1;\r\n for (; i >= 0; i--) {\r\n var snapshot = storedSnapshots[i];\r\n if (snapshot[dataZoomId]) {\r\n break;\r\n }\r\n }\r\n if (i < 0) {\r\n var dataZoomModel = ecModel.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId })[0];\r\n if (dataZoomModel) {\r\n var percentRange = dataZoomModel.getPercentRange();\r\n storedSnapshots[0][dataZoomId] = {\r\n dataZoomId: dataZoomId,\r\n start: percentRange[0],\r\n end: percentRange[1]\r\n };\r\n }\r\n }\r\n });\r\n storedSnapshots.push(newSnapshot);\r\n }\r\n function pop(ecModel) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n var head = storedSnapshots[storedSnapshots.length - 1];\r\n storedSnapshots.length > 1 && storedSnapshots.pop();\r\n var snapshot = {};\r\n each$8(head, function (batchItem, dataZoomId) {\r\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\r\n batchItem = storedSnapshots[i][dataZoomId];\r\n if (batchItem) {\r\n snapshot[dataZoomId] = batchItem;\r\n break;\r\n }\r\n }\r\n });\r\n return snapshot;\r\n }\r\n function clear$1(ecModel) {\r\n inner$f(ecModel).snapshots = null;\r\n }\r\n function count(ecModel) {\r\n return getStoreSnapshots(ecModel).length;\r\n }\r\n function getStoreSnapshots(ecModel) {\r\n var store = inner$f(ecModel);\r\n if (!store.snapshots) {\r\n store.snapshots = [{}];\r\n }\r\n return store.snapshots;\r\n }\n\n var SelectDataZoomModel = (function (_super) {\r\n __extends(SelectDataZoomModel, _super);\r\n function SelectDataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomModel.type;\r\n return _this;\r\n }\r\n SelectDataZoomModel.type = 'dataZoom.select';\r\n return SelectDataZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SelectDataZoomModel);\n\n var SelectDataZoomView = (function (_super) {\r\n __extends(SelectDataZoomView, _super);\r\n function SelectDataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomView.type;\r\n return _this;\r\n }\r\n SelectDataZoomView.type = 'dataZoom.select';\r\n return SelectDataZoomView;\r\n }(DataZoomView));\r\n ComponentView.registerClass(SelectDataZoomView);\n\n var each$9 = each;\r\n var DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\r\n var DataZoomFeature = (function (_super) {\r\n __extends(DataZoomFeature, _super);\r\n function DataZoomFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\r\n if (!this.brushController) {\r\n this.brushController = new BrushController(api.getZr());\r\n this.brushController.on('brush', bind(this._onBrush, this))\r\n .mount();\r\n }\r\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\r\n updateBackBtnStatus(featureModel, ecModel);\r\n };\r\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\r\n handlers[type].call(this);\r\n };\r\n DataZoomFeature.prototype.remove = function (ecModel, api) {\r\n this.brushController.unmount();\r\n };\r\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\r\n this.brushController.dispose();\r\n };\r\n DataZoomFeature.prototype._onBrush = function (eventParam) {\r\n var areas = eventParam.areas;\r\n if (!eventParam.isEnd || !areas.length) {\r\n return;\r\n }\r\n var snapshot = {};\r\n var ecModel = this.ecModel;\r\n this.brushController.updateCovers([]);\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, { include: ['grid'] });\r\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n if (coordSys.type !== 'cartesian2d') {\r\n return;\r\n }\r\n var brushType = area.brushType;\r\n if (brushType === 'rect') {\r\n setBatch('x', coordSys, coordRange[0]);\r\n setBatch('y', coordSys, coordRange[1]);\r\n }\r\n else {\r\n setBatch({ lineX: 'x', lineY: 'y' }[brushType], coordSys, coordRange);\r\n }\r\n });\r\n push(ecModel, snapshot);\r\n this._dispatchZoomAction(snapshot);\r\n function setBatch(dimName, coordSys, minMax) {\r\n var axis = coordSys.getAxis(dimName);\r\n var axisModel = axis.model;\r\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\r\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\r\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\r\n }\r\n dataZoomModel && (snapshot[dataZoomModel.id] = {\r\n dataZoomId: dataZoomModel.id,\r\n startValue: minMax[0],\r\n endValue: minMax[1]\r\n });\r\n }\r\n function findDataZoom(dimName, axisModel, ecModel) {\r\n var found;\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (dzModel) {\r\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\r\n has && (found = dzModel);\r\n });\r\n return found;\r\n }\r\n };\r\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\r\n var batch = [];\r\n each$9(snapshot, function (batchItem, dataZoomId) {\r\n batch.push(clone(batchItem));\r\n });\r\n batch.length && this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n batch: batch\r\n });\r\n };\r\n DataZoomFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n filterMode: 'filter',\r\n icon: {\r\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\r\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\r\n brushStyle: {\r\n borderWidth: 0,\r\n color: 'rgba(210,219,238,0.2)'\r\n }\r\n };\r\n return defaultOption;\r\n };\r\n return DataZoomFeature;\r\n }(ToolboxFeature));\r\n var handlers = {\r\n zoom: function () {\r\n var nextActive = !this.isZoomActive;\r\n this.api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'dataZoomSelect',\r\n dataZoomSelectActive: nextActive\r\n });\r\n },\r\n back: function () {\r\n this._dispatchZoomAction(pop(this.ecModel));\r\n }\r\n };\r\n function makeAxisFinder(dzFeatureModel) {\r\n var setting = {\r\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\r\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\r\n xAxisId: dzFeatureModel.get('xAxisId', true),\r\n yAxisId: dzFeatureModel.get('yAxisId', true)\r\n };\r\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\r\n setting.xAxisIndex = 'all';\r\n }\r\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\r\n setting.yAxisIndex = 'all';\r\n }\r\n return setting;\r\n }\r\n function updateBackBtnStatus(featureModel, ecModel) {\r\n featureModel.setIconStatus('back', count(ecModel) > 1 ? 'emphasis' : 'normal');\r\n }\r\n function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\r\n var zoomActive = view.isZoomActive;\r\n if (payload && payload.type === 'takeGlobalCursor') {\r\n zoomActive = payload.key === 'dataZoomSelect'\r\n ? payload.dataZoomSelectActive : false;\r\n }\r\n view.isZoomActive = zoomActive;\r\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, { include: ['grid'] });\r\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\r\n return (targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared)\r\n ? 'lineX'\r\n : (!targetInfo.xAxisDeclared && targetInfo.yAxisDeclared)\r\n ? 'lineY'\r\n : 'rect';\r\n });\r\n view.brushController\r\n .setPanels(panels)\r\n .enableBrush((zoomActive && panels.length)\r\n ? {\r\n brushType: 'auto',\r\n brushStyle: featureModel.getModel('brushStyle').getItemStyle()\r\n }\r\n : false);\r\n }\r\n registerFeature('dataZoom', DataZoomFeature);\r\n registerInternalOptionCreator('dataZoom', function (ecModel) {\r\n var toolboxModel = ecModel.getComponent('toolbox', 0);\r\n if (!toolboxModel) {\r\n return;\r\n }\r\n var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\r\n var dzOptions = [];\r\n var finder = makeAxisFinder(dzFeatureModel);\r\n var finderResult = parseFinder(ecModel, finder);\r\n each$9(finderResult.xAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex'); });\r\n each$9(finderResult.yAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex'); });\r\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\r\n var axisIndex = axisModel.componentIndex;\r\n var newOpt = {\r\n type: 'select',\r\n $fromToolbox: true,\r\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\r\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\r\n };\r\n newOpt[axisIndexPropName] = axisIndex;\r\n dzOptions.push(newOpt);\r\n }\r\n return dzOptions;\r\n });\n\n var RestoreOption = (function (_super) {\r\n __extends(RestoreOption, _super);\r\n function RestoreOption() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RestoreOption.prototype.onclick = function (ecModel, api) {\r\n clear$1(ecModel);\r\n api.dispatchAction({\r\n type: 'restore',\r\n from: this.uid\r\n });\r\n };\r\n RestoreOption.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\r\n title: ecModel.getLocale(['toolbox', 'restore', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return RestoreOption;\r\n }(ToolboxFeature));\r\n registerFeature('restore', RestoreOption);\r\n registerAction({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n ecModel.resetOption('recreate');\r\n });\n\n var DEFAULT_OPTION = {\r\n label: {\r\n enabled: true\r\n },\r\n decal: {\r\n show: false\r\n }\r\n };\r\n var inner$g = makeInner();\r\n var decalPaletteScope = {};\r\n function ariaVisual(ecModel, api) {\r\n var ariaModel = ecModel.getModel('aria');\r\n if (!ariaModel.get('enabled')) {\r\n return;\r\n }\r\n var defaultOption = clone(DEFAULT_OPTION);\r\n merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\r\n merge(ariaModel.option, defaultOption, false);\r\n setDecal();\r\n setLabel();\r\n function setDecal() {\r\n var decalModel = ariaModel.getModel('decal');\r\n var useDecal = decalModel.get('show');\r\n if (useDecal) {\r\n var paletteScopeGroupByType_1 = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\r\n if (!decalScope) {\r\n decalScope = {};\r\n paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\r\n }\r\n inner$g(seriesModel).scope = decalScope;\r\n });\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n if (typeof seriesModel.enableAriaDecal === 'function') {\r\n seriesModel.enableAriaDecal();\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n if (seriesModel.useColorPaletteOnData) {\r\n var dataAll_1 = seriesModel.getRawData();\r\n var idxMap_1 = {};\r\n var decalScope_1 = inner$g(seriesModel).scope;\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap_1[rawIdx] = idx;\r\n });\r\n var dataCount_1 = dataAll_1.count();\r\n dataAll_1.each(function (rawIdx) {\r\n var idx = idxMap_1[rawIdx];\r\n var name = dataAll_1.getName(rawIdx) || (rawIdx + '');\r\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\r\n var specifiedDecal = data.getItemVisual(idx, 'decal');\r\n data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\r\n });\r\n }\r\n else {\r\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\r\n var specifiedDecal = data.getVisual('decal');\r\n data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\r\n }\r\n function mergeDecal(specifiedDecal, paletteDecal) {\r\n var resultDecal = specifiedDecal\r\n ? extend(extend({}, paletteDecal), specifiedDecal)\r\n : paletteDecal;\r\n resultDecal.dirty = true;\r\n return resultDecal;\r\n }\r\n });\r\n }\r\n }\r\n function setLabel() {\r\n var labelLocale = ecModel.getLocaleModel().get('aria');\r\n var labelModel = ariaModel.getModel('label');\r\n labelModel.option = defaults(labelModel.option, labelLocale);\r\n if (!labelModel.get('enabled')) {\r\n return;\r\n }\r\n var dom = api.getZr().dom;\r\n if (labelModel.get('description')) {\r\n dom.setAttribute('aria-label', labelModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = ecModel.getSeriesCount();\r\n var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\r\n var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n var withTitle = labelModel.get(['general', 'withTitle']);\r\n ariaLabel = replace(withTitle, {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = labelModel.get(['general', 'withoutTitle']);\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? labelModel.get(['series', 'multiple', 'prefix'])\r\n : labelModel.get(['series', 'single', 'prefix']);\r\n ariaLabel += replace(prefix, { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var withName = seriesName ? 'withName' : 'withoutName';\r\n seriesLabel = seriesCnt > 1\r\n ? labelModel.get(['series', 'multiple', withName])\r\n : labelModel.get(['series', 'single', withName]);\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n if (data.count() > maxDataCnt) {\r\n var partialLabel = labelModel.get(['data', 'partialData']);\r\n seriesLabel += replace(partialLabel, {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += labelModel.get(['data', 'allData']);\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\r\n dataLabels.push(replace(dataLabel, {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\r\n var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\r\n seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\r\n var middleSeparator = separatorModel.get('middle');\r\n var endSeparator = separatorModel.get('end');\r\n ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getTitle() {\r\n var title = ecModel.get('title');\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n function ariaPreprocessor(option) {\r\n if (!option || !option.aria) {\r\n return;\r\n }\r\n var aria = option.aria;\r\n if (aria.show != null) {\r\n aria.enabled = aria.show;\r\n }\r\n aria.label = aria.label || {};\r\n each(['description', 'general', 'series', 'data'], function (name) {\r\n if (aria[name] != null) {\r\n aria.label[name] = aria[name];\r\n }\r\n });\r\n }\n\n var PRIORITY_VISUAL_ARIA$1 = PRIORITY.VISUAL.ARIA;\r\n registerPreprocessor(ariaPreprocessor);\r\n registerVisual(PRIORITY_VISUAL_ARIA$1, ariaVisual);\n\n function createElement(name) {\r\n return document.createElementNS('http://www.w3.org/2000/svg', name);\r\n }\n\n var NONE = 'none';\r\n var mathRound = Math.round;\r\n var mathSin$4 = Math.sin;\r\n var mathCos$4 = Math.cos;\r\n var PI$7 = Math.PI;\r\n var PI2$8 = Math.PI * 2;\r\n var degree = 180 / PI$7;\r\n var EPSILON$4 = 1e-4;\r\n function round3(val) {\r\n return mathRound(val * 1e3) / 1e3;\r\n }\r\n function round4(val) {\r\n return mathRound(val * 1e4) / 1e4;\r\n }\r\n function isAroundZero$1(val) {\r\n return val < EPSILON$4 && val > -EPSILON$4;\r\n }\r\n function pathHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== NONE;\r\n }\r\n function pathHasStroke(style) {\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== NONE;\r\n }\r\n function setTransform(svgEl, m) {\r\n if (m) {\r\n attr(svgEl, 'transform', 'matrix('\r\n + round3(m[0]) + ','\r\n + round3(m[1]) + ','\r\n + round3(m[2]) + ','\r\n + round3(m[3]) + ','\r\n + round4(m[4]) + ','\r\n + round4(m[5])\r\n + ')');\r\n }\r\n }\r\n function attr(el, key, val) {\r\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\r\n el.setAttribute(key, val);\r\n }\r\n }\r\n function attrXLink(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\r\n }\r\n function attrXML(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\r\n }\r\n function bindStyle(svgEl, style, el) {\r\n var opacity = style.opacity == null ? 1 : style.opacity;\r\n if (pathHasFill(style)) {\r\n var fill = style.fill;\r\n fill = fill === 'transparent' ? NONE : fill;\r\n attr(svgEl, 'fill', fill);\r\n attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\r\n }\r\n else {\r\n attr(svgEl, 'fill', NONE);\r\n }\r\n if (pathHasStroke(style)) {\r\n var stroke = style.stroke;\r\n stroke = stroke === 'transparent' ? NONE : stroke;\r\n attr(svgEl, 'stroke', stroke);\r\n var strokeWidth = style.lineWidth;\r\n var strokeScale_1 = style.strokeNoScale\r\n ? el.getLineScale()\r\n : 1;\r\n attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\r\n attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\r\n attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\r\n var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\r\n if (lineDash) {\r\n var lineDashOffset = style.lineDashOffset;\r\n if (strokeScale_1 && strokeScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / strokeScale_1;\r\n });\r\n if (lineDashOffset) {\r\n lineDashOffset /= strokeScale_1;\r\n lineDashOffset = mathRound(lineDashOffset);\r\n }\r\n }\r\n attr(svgEl, 'stroke-dasharray', lineDash.join(','));\r\n attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke-dasharray', '');\r\n }\r\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\r\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\r\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke', NONE);\r\n }\r\n }\r\n var SVGPathRebuilder = (function () {\r\n function SVGPathRebuilder() {\r\n }\r\n SVGPathRebuilder.prototype.reset = function () {\r\n this._d = [];\r\n this._str = '';\r\n };\r\n SVGPathRebuilder.prototype.moveTo = function (x, y) {\r\n this._add('M', x, y);\r\n };\r\n SVGPathRebuilder.prototype.lineTo = function (x, y) {\r\n this._add('L', x, y);\r\n };\r\n SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\r\n this._add('C', x, y, x2, y2, x3, y3);\r\n };\r\n SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\r\n this._add('Q', x, y, x2, y2);\r\n };\r\n SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\r\n };\r\n SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\r\n var firstCmd = this._d.length === 0;\r\n var dTheta = endAngle - startAngle;\r\n var clockwise = !anticlockwise;\r\n var dThetaPositive = Math.abs(dTheta);\r\n var isCircle = isAroundZero$1(dThetaPositive - PI2$8)\r\n || (clockwise ? dTheta >= PI2$8 : -dTheta >= PI2$8);\r\n var unifiedTheta = dTheta > 0 ? dTheta % PI2$8 : (dTheta % PI2$8 + PI2$8);\r\n var large = false;\r\n if (isCircle) {\r\n large = true;\r\n }\r\n else if (isAroundZero$1(dThetaPositive)) {\r\n large = false;\r\n }\r\n else {\r\n large = (unifiedTheta >= PI$7) === !!clockwise;\r\n }\r\n var x0 = round4(cx + rx * mathCos$4(startAngle));\r\n var y0 = round4(cy + ry * mathSin$4(startAngle));\r\n if (isCircle) {\r\n if (clockwise) {\r\n dTheta = PI2$8 - 1e-4;\r\n }\r\n else {\r\n dTheta = -PI2$8 + 1e-4;\r\n }\r\n large = true;\r\n if (firstCmd) {\r\n this._d.push('M', x0, y0);\r\n }\r\n }\r\n var x = round4(cx + rx * mathCos$4(startAngle + dTheta));\r\n var y = round4(cy + ry * mathSin$4(startAngle + dTheta));\r\n if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\r\n return '';\r\n }\r\n this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\r\n };\r\n SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\r\n this._add('M', x, y);\r\n this._add('L', x + w, y);\r\n this._add('L', x + w, y + h);\r\n this._add('L', x, y + h);\r\n this._add('L', x, y);\r\n };\r\n SVGPathRebuilder.prototype.closePath = function () {\r\n if (this._d.length > 0) {\r\n this._add('Z');\r\n }\r\n };\r\n SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\r\n this._d.push(cmd);\r\n for (var i = 1; i < arguments.length; i++) {\r\n var val = arguments[i];\r\n if (isNaN(val)) {\r\n this._invalid = true;\r\n return;\r\n }\r\n this._d.push(round4(val));\r\n }\r\n };\r\n SVGPathRebuilder.prototype.generateStr = function () {\r\n this._str = this._invalid ? '' : this._d.join(' ');\r\n this._d = [];\r\n };\r\n SVGPathRebuilder.prototype.getStr = function () {\r\n return this._str;\r\n };\r\n return SVGPathRebuilder;\r\n }());\r\n var svgPath = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('path');\r\n el.__svgEl = svgEl;\r\n }\r\n if (!el.path) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path;\r\n if (el.shapeChanged()) {\r\n path.beginPath();\r\n el.buildPath(path, el.shape);\r\n el.pathUpdated();\r\n }\r\n var pathVersion = path.getVersion();\r\n var elExt = el;\r\n var svgPathBuilder = elExt.__svgPathBuilder;\r\n if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\r\n if (!svgPathBuilder) {\r\n svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\r\n }\r\n svgPathBuilder.reset();\r\n path.rebuildPath(svgPathBuilder, el.style.strokePercent);\r\n svgPathBuilder.generateStr();\r\n elExt.__svgPathVersion = pathVersion;\r\n }\r\n attr(svgEl, 'd', svgPathBuilder.getStr());\r\n bindStyle(svgEl, style, el);\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var svgImage = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var image = style.image;\r\n if (image instanceof HTMLImageElement) {\r\n var src = image.src;\r\n image = src;\r\n }\r\n if (!image) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var dw = style.width;\r\n var dh = style.height;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('image');\r\n el.__svgEl = svgEl;\r\n }\r\n if (image !== el.__imageSrc) {\r\n attrXLink(svgEl, 'href', image);\r\n el.__imageSrc = image;\r\n }\r\n attr(svgEl, 'width', dw + '');\r\n attr(svgEl, 'height', dh + '');\r\n attr(svgEl, 'x', x + '');\r\n attr(svgEl, 'y', y + '');\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var TEXT_ALIGN_TO_ANCHOR = {\r\n left: 'start',\r\n right: 'end',\r\n center: 'middle',\r\n middle: 'middle'\r\n };\r\n function adjustTextY$1(y, lineHeight, textBaseline) {\r\n if (textBaseline === 'top') {\r\n y += lineHeight / 2;\r\n }\r\n else if (textBaseline === 'bottom') {\r\n y -= lineHeight / 2;\r\n }\r\n return y;\r\n }\r\n var svgText = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (!text || isNaN(style.x) || isNaN(style.y)) {\r\n return;\r\n }\r\n var textSvgEl = el.__svgEl;\r\n if (!textSvgEl) {\r\n textSvgEl = createElement('text');\r\n attrXML(textSvgEl, 'xml:space', 'preserve');\r\n el.__svgEl = textSvgEl;\r\n }\r\n var font = style.font || DEFAULT_FONT;\r\n var textSvgElStyle = textSvgEl.style;\r\n textSvgElStyle.font = font;\r\n textSvgEl.textContent = text;\r\n bindStyle(textSvgEl, style, el);\r\n setTransform(textSvgEl, el.transform);\r\n var x = style.x || 0;\r\n var y = adjustTextY$1(style.y || 0, getLineHeight(font), style.textBaseline);\r\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\r\n || style.textAlign;\r\n attr(textSvgEl, 'dominant-baseline', 'central');\r\n attr(textSvgEl, 'text-anchor', textAlign);\r\n attr(textSvgEl, 'x', x + '');\r\n attr(textSvgEl, 'y', y + '');\r\n }\r\n };\n\n function diff(oldArr, newArr, equals) {\r\n if (!equals) {\r\n equals = function (a, b) {\r\n return a === b;\r\n };\r\n }\r\n oldArr = oldArr.slice();\r\n newArr = newArr.slice();\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n var indices = [];\r\n for (var i = 0; i < newArr.length; i++) {\r\n indices.push(i);\r\n }\r\n return [{\r\n indices: indices,\r\n count: newArr.length,\r\n added: false,\r\n removed: false\r\n }];\r\n }\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath;\r\n var addPath = bestPath[diagonalPath - 1];\r\n var removePath = bestPath[diagonalPath + 1];\r\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n var canAdd = addPath && addPath.newPos + 1 < newLen;\r\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\r\n basePath = clonePath(removePath);\r\n pushComponent(basePath.components, false, true);\r\n }\r\n else {\r\n basePath = addPath;\r\n basePath.newPos++;\r\n pushComponent(basePath.components, true, false);\r\n }\r\n oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\r\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n return buildValues(basePath.components);\r\n }\r\n else {\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n editLength++;\r\n }\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n function extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var newPos = basePath.newPos;\r\n var oldPos = newPos - diagonalPath;\r\n var commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n if (commonCount) {\r\n basePath.components.push({\r\n count: commonCount,\r\n added: false,\r\n removed: false,\r\n indices: []\r\n });\r\n }\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n }\r\n function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n components[components.length - 1] = {\r\n count: last.count + 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n };\r\n }\r\n else {\r\n components.push({\r\n count: 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n });\r\n }\r\n }\r\n function buildValues(components) {\r\n var componentPos = 0;\r\n var componentLen = components.length;\r\n var newPos = 0;\r\n var oldPos = 0;\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n var indices = [];\r\n for (var i = newPos; i < newPos + component.count; i++) {\r\n indices.push(i);\r\n }\r\n component.indices = indices;\r\n newPos += component.count;\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n }\r\n else {\r\n for (var i = oldPos; i < oldPos + component.count; i++) {\r\n component.indices.push(i);\r\n }\r\n oldPos += component.count;\r\n }\r\n }\r\n return components;\r\n }\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n function arrayDiff(oldArr, newArr, equal) {\r\n return diff(oldArr, newArr, equal);\r\n }\n\n var MARK_UNUSED = '0';\r\n var MARK_USED = '1';\r\n var Definable = (function () {\r\n function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\r\n this.nextId = 0;\r\n this._domName = '_dom';\r\n this.createElement = createElement;\r\n this._zrId = zrId;\r\n this._svgRoot = svgRoot;\r\n this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\r\n this._markLabel = markLabel;\r\n if (domName) {\r\n this._domName = domName;\r\n }\r\n }\r\n Definable.prototype.getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgRoot;\r\n var defs = this._svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n Definable.prototype.doUpdate = function (target, onUpdate) {\r\n if (!target) {\r\n return;\r\n }\r\n var defs = this.getDefs(false);\r\n if (target[this._domName] && defs.contains(target[this._domName])) {\r\n if (typeof onUpdate === 'function') {\r\n onUpdate(target);\r\n }\r\n }\r\n else {\r\n var dom = this.add(target);\r\n if (dom) {\r\n target[this._domName] = dom;\r\n }\r\n }\r\n };\r\n Definable.prototype.add = function (target) {\r\n return null;\r\n };\r\n Definable.prototype.addDom = function (dom) {\r\n var defs = this.getDefs(true);\r\n if (dom.parentNode !== defs) {\r\n defs.appendChild(dom);\r\n }\r\n };\r\n Definable.prototype.removeDom = function (target) {\r\n var defs = this.getDefs(false);\r\n if (defs && target[this._domName]) {\r\n defs.removeChild(target[this._domName]);\r\n target[this._domName] = null;\r\n }\r\n };\r\n Definable.prototype.getDoms = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return [];\r\n }\r\n var doms = [];\r\n each(this._tagNames, function (tagName) {\r\n var tags = defs.getElementsByTagName(tagName);\r\n for (var i = 0; i < tags.length; i++) {\r\n doms.push(tags[i]);\r\n }\r\n });\r\n return doms;\r\n };\r\n Definable.prototype.markAllUnused = function () {\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n dom[that._markLabel] = MARK_UNUSED;\r\n });\r\n };\r\n Definable.prototype.markDomUsed = function (dom) {\r\n dom && (dom[this._markLabel] = MARK_USED);\r\n };\r\n Definable.prototype.markDomUnused = function (dom) {\r\n dom && (dom[this._markLabel] = MARK_UNUSED);\r\n };\r\n Definable.prototype.isDomUnused = function (dom) {\r\n return dom && dom[this._markLabel] !== MARK_USED;\r\n };\r\n Definable.prototype.removeUnused = function () {\r\n var _this = this;\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var doms = this.getDoms();\r\n each(doms, function (dom) {\r\n if (_this.isDomUnused(dom)) {\r\n defs.removeChild(dom);\r\n }\r\n });\r\n };\r\n Definable.prototype.getSvgProxy = function (displayable) {\r\n if (displayable instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (displayable instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (displayable instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n };\r\n Definable.prototype.getSvgElement = function (displayable) {\r\n return displayable.__svgEl;\r\n };\r\n return Definable;\r\n }());\n\n function isLinearGradient(value) {\r\n return value.type === 'linear';\r\n }\r\n function isRadialGradient(value) {\r\n return value.type === 'radial';\r\n }\r\n function isGradient(value) {\r\n return value && (value.type === 'linear'\r\n || value.type === 'radial');\r\n }\r\n var GradientManager = (function (_super) {\r\n __extends(GradientManager, _super);\r\n function GradientManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\r\n }\r\n GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var value = displayable.style[fillOrStroke];\r\n if (isGradient(value)) {\r\n var gradient = value;\r\n var defs = that_1.getDefs(true);\r\n var dom = void 0;\r\n if (gradient.__dom) {\r\n dom = gradient.__dom;\r\n if (!defs.contains(gradient.__dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(gradient);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n GradientManager.prototype.add = function (gradient) {\r\n var dom;\r\n if (isLinearGradient(gradient)) {\r\n dom = this.createElement('linearGradient');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom = this.createElement('radialGradient');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return null;\r\n }\r\n gradient.id = gradient.id || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-gradient-' + gradient.id);\r\n this.updateDom(gradient, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n GradientManager.prototype.update = function (gradient) {\r\n if (!isGradient(gradient)) {\r\n return;\r\n }\r\n var that = this;\r\n this.doUpdate(gradient, function () {\r\n var dom = gradient.__dom;\r\n if (!dom) {\r\n return;\r\n }\r\n var tagName = dom.tagName;\r\n var type = gradient.type;\r\n if (type === 'linear' && tagName === 'linearGradient'\r\n || type === 'radial' && tagName === 'radialGradient') {\r\n that.updateDom(gradient, gradient.__dom);\r\n }\r\n else {\r\n that.removeDom(gradient);\r\n that.add(gradient);\r\n }\r\n });\r\n };\r\n GradientManager.prototype.updateDom = function (gradient, dom) {\r\n if (isLinearGradient(gradient)) {\r\n dom.setAttribute('x1', gradient.x + '');\r\n dom.setAttribute('y1', gradient.y + '');\r\n dom.setAttribute('x2', gradient.x2 + '');\r\n dom.setAttribute('y2', gradient.y2 + '');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom.setAttribute('cx', gradient.x + '');\r\n dom.setAttribute('cy', gradient.y + '');\r\n dom.setAttribute('r', gradient.r + '');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return;\r\n }\r\n if (gradient.global) {\r\n dom.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n }\r\n else {\r\n dom.setAttribute('gradientUnits', 'objectBoundingBox');\r\n }\r\n dom.innerHTML = '';\r\n var colors = gradient.colorStops;\r\n for (var i = 0, len = colors.length; i < len; ++i) {\r\n var stop_1 = this.createElement('stop');\r\n stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\r\n var color$1 = colors[i].color;\r\n if (color$1.indexOf('rgba') > -1) {\r\n var opacity = parse(color$1)[3];\r\n var hex = toHex(color$1);\r\n stop_1.setAttribute('stop-color', '#' + hex);\r\n stop_1.setAttribute('stop-opacity', opacity + '');\r\n }\r\n else {\r\n stop_1.setAttribute('stop-color', colors[i].color);\r\n }\r\n dom.appendChild(stop_1);\r\n }\r\n gradient.__dom = dom;\r\n };\r\n GradientManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n var gradient = displayable.style.fill;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n gradient = displayable.style.stroke;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n }\r\n };\r\n return GradientManager;\r\n }(Definable));\n\n function isPattern(value) {\r\n return value && (!!value.image || !!value.svgElement);\r\n }\r\n var patternDomMap = new WeakMap();\r\n var PatternManager = (function (_super) {\r\n __extends(PatternManager, _super);\r\n function PatternManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\r\n }\r\n PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var pattern = displayable.style[fillOrStroke];\r\n if (isPattern(pattern)) {\r\n var defs = that_1.getDefs(true);\r\n var dom = patternDomMap.get(pattern);\r\n if (dom) {\r\n if (!defs.contains(dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(pattern);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n PatternManager.prototype.add = function (pattern) {\r\n if (!isPattern(pattern)) {\r\n return;\r\n }\r\n var dom = this.createElement('pattern');\r\n pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-pattern-' + pattern.id);\r\n dom.setAttribute('x', '0');\r\n dom.setAttribute('y', '0');\r\n dom.setAttribute('patternUnits', 'userSpaceOnUse');\r\n this.updateDom(pattern, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n PatternManager.prototype.update = function (pattern) {\r\n if (!isPattern(pattern)) {\r\n return;\r\n }\r\n var that = this;\r\n this.doUpdate(pattern, function () {\r\n var dom = patternDomMap.get(pattern);\r\n that.updateDom(pattern, dom);\r\n });\r\n };\r\n PatternManager.prototype.updateDom = function (pattern, patternDom) {\r\n var svgElement = pattern.svgElement;\r\n if (svgElement instanceof SVGElement) {\r\n if (svgElement.parentNode !== patternDom) {\r\n patternDom.innerHTML = '';\r\n patternDom.appendChild(svgElement);\r\n patternDom.setAttribute('width', pattern.svgWidth + '');\r\n patternDom.setAttribute('height', pattern.svgHeight + '');\r\n }\r\n }\r\n else {\r\n var img = void 0;\r\n var prevImage = patternDom.getElementsByTagName('image');\r\n if (prevImage.length) {\r\n if (pattern.image) {\r\n img = prevImage[0];\r\n }\r\n else {\r\n patternDom.removeChild(prevImage[0]);\r\n return;\r\n }\r\n }\r\n else if (pattern.image) {\r\n img = this.createElement('image');\r\n }\r\n if (img) {\r\n var imageSrc = void 0;\r\n if (typeof pattern.image === 'string') {\r\n imageSrc = pattern.image;\r\n }\r\n else if (pattern.image instanceof HTMLImageElement) {\r\n imageSrc = pattern.image.src;\r\n }\r\n else if (pattern.image instanceof HTMLCanvasElement) {\r\n imageSrc = pattern.image.toDataURL();\r\n }\r\n if (imageSrc) {\r\n img.setAttribute('href', imageSrc);\r\n img.setAttribute('x', '0');\r\n img.setAttribute('y', '0');\r\n var hostEl = {\r\n dirty: function () { }\r\n };\r\n var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\r\n patternDom.setAttribute('width', img.width + '');\r\n patternDom.setAttribute('height', img.height + '');\r\n });\r\n if (createdImage && createdImage.width && createdImage.height) {\r\n patternDom.setAttribute('width', createdImage.width + '');\r\n patternDom.setAttribute('height', createdImage.height + '');\r\n }\r\n patternDom.appendChild(img);\r\n }\r\n }\r\n }\r\n var x = pattern.x || 0;\r\n var y = pattern.y || 0;\r\n var rotation = (pattern.rotation || 0) / Math.PI * 180;\r\n var scaleX = pattern.scaleX || 1;\r\n var scaleY = pattern.scaleY || 1;\r\n var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\r\n patternDom.setAttribute('patternTransform', transform);\r\n patternDomMap.set(pattern, patternDom);\r\n };\r\n PatternManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n if (isPattern(displayable.style.fill)) {\r\n _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\r\n }\r\n if (isPattern(displayable.style.stroke)) {\r\n _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\r\n }\r\n }\r\n };\r\n return PatternManager;\r\n }(Definable));\n\n function generateClipPathsKey(clipPaths) {\r\n var key = [];\r\n if (clipPaths) {\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n key.push(clipPath.id);\r\n }\r\n }\r\n return key.join(',');\r\n }\r\n function hasClipPath(displayable) {\r\n var clipPaths = displayable.__clipPaths;\r\n return clipPaths && clipPaths.length > 0;\r\n }\r\n var ClippathManager = (function (_super) {\r\n __extends(ClippathManager, _super);\r\n function ClippathManager(zrId, svgRoot) {\r\n var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\r\n _this._refGroups = {};\r\n _this._keyDuplicateCount = {};\r\n return _this;\r\n }\r\n ClippathManager.prototype.markAllUnused = function () {\r\n _super.prototype.markAllUnused.call(this);\r\n for (var key in this._refGroups) {\r\n this.markDomUnused(this._refGroups[key]);\r\n }\r\n this._keyDuplicateCount = {};\r\n };\r\n ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\r\n if (!hasClipPath(displayable)) {\r\n return;\r\n }\r\n var clipPaths = displayable.__clipPaths;\r\n var keyDuplicateCount = this._keyDuplicateCount;\r\n var clipPathKey = generateClipPathsKey(clipPaths);\r\n if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\r\n keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\r\n keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\r\n keyDuplicateCount[clipPathKey]++;\r\n }\r\n return this._refGroups[clipPathKey]\r\n || (this._refGroups[clipPathKey] = this.createElement('g'));\r\n };\r\n ClippathManager.prototype.update = function (displayable, prevDisplayable) {\r\n var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\r\n if (clipGroup) {\r\n this.markDomUsed(clipGroup);\r\n this.updateDom(clipGroup, displayable.__clipPaths);\r\n }\r\n return clipGroup;\r\n };\r\n ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\r\n if (clipPaths && clipPaths.length > 0) {\r\n var defs = this.getDefs(true);\r\n var clipPath = clipPaths[0];\r\n var clipPathEl = void 0;\r\n var id = void 0;\r\n if (clipPath._dom) {\r\n id = clipPath._dom.getAttribute('id');\r\n clipPathEl = clipPath._dom;\r\n if (!defs.contains(clipPathEl)) {\r\n defs.appendChild(clipPathEl);\r\n }\r\n }\r\n else {\r\n id = 'zr' + this._zrId + '-clip-' + this.nextId;\r\n ++this.nextId;\r\n clipPathEl = this.createElement('clipPath');\r\n clipPathEl.setAttribute('id', id);\r\n defs.appendChild(clipPathEl);\r\n clipPath._dom = clipPathEl;\r\n }\r\n var svgProxy = this.getSvgProxy(clipPath);\r\n svgProxy.brush(clipPath);\r\n var pathEl = this.getSvgElement(clipPath);\r\n clipPathEl.innerHTML = '';\r\n clipPathEl.appendChild(pathEl);\r\n parentEl.setAttribute('clip-path', 'url(#' + id + ')');\r\n if (clipPaths.length > 1) {\r\n this.updateDom(clipPathEl, clipPaths.slice(1));\r\n }\r\n }\r\n else {\r\n if (parentEl) {\r\n parentEl.setAttribute('clip-path', 'none');\r\n }\r\n }\r\n };\r\n ClippathManager.prototype.markUsed = function (displayable) {\r\n var _this = this;\r\n if (displayable.__clipPaths) {\r\n each(displayable.__clipPaths, function (clipPath) {\r\n if (clipPath._dom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._dom);\r\n }\r\n });\r\n }\r\n };\r\n ClippathManager.prototype.removeUnused = function () {\r\n _super.prototype.removeUnused.call(this);\r\n var newRefGroupsMap = {};\r\n for (var key in this._refGroups) {\r\n var group = this._refGroups[key];\r\n if (!this.isDomUnused(group)) {\r\n newRefGroupsMap[key] = group;\r\n }\r\n else if (group.parentNode) {\r\n group.parentNode.removeChild(group);\r\n }\r\n }\r\n this._refGroups = newRefGroupsMap;\r\n };\r\n return ClippathManager;\r\n }(Definable));\n\n var ShadowManager = (function (_super) {\r\n __extends(ShadowManager, _super);\r\n function ShadowManager(zrId, svgRoot) {\r\n var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\r\n _this._shadowDomMap = {};\r\n _this._shadowDomPool = [];\r\n return _this;\r\n }\r\n ShadowManager.prototype._getFromPool = function () {\r\n var shadowDom = this._shadowDomPool.pop();\r\n if (!shadowDom) {\r\n shadowDom = this.createElement('filter');\r\n shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\r\n var domChild = this.createElement('feDropShadow');\r\n shadowDom.appendChild(domChild);\r\n this.addDom(shadowDom);\r\n }\r\n return shadowDom;\r\n };\r\n ShadowManager.prototype.update = function (svgElement, displayable) {\r\n var style = displayable.style;\r\n if (hasShadow(style)) {\r\n var shadowKey = getShadowKey(displayable);\r\n var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\r\n if (!shadowDom) {\r\n shadowDom = this._getFromPool();\r\n this._shadowDomMap[shadowKey] = shadowDom;\r\n }\r\n this.updateDom(svgElement, displayable, shadowDom);\r\n }\r\n else {\r\n this.remove(svgElement, displayable);\r\n }\r\n };\r\n ShadowManager.prototype.remove = function (svgElement, displayable) {\r\n if (displayable._shadowDom != null) {\r\n displayable._shadowDom = null;\r\n svgElement.style.filter = '';\r\n }\r\n };\r\n ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\r\n var domChild = shadowDom.children[0];\r\n var style = displayable.style;\r\n var globalScale = displayable.getGlobalScale();\r\n var scaleX = globalScale[0];\r\n var scaleY = globalScale[1];\r\n if (!scaleX || !scaleY) {\r\n return;\r\n }\r\n var offsetX = style.shadowOffsetX || 0;\r\n var offsetY = style.shadowOffsetY || 0;\r\n var blur = style.shadowBlur;\r\n var color = style.shadowColor;\r\n domChild.setAttribute('dx', offsetX / scaleX + '');\r\n domChild.setAttribute('dy', offsetY / scaleY + '');\r\n domChild.setAttribute('flood-color', color);\r\n var stdDx = blur / 2 / scaleX;\r\n var stdDy = blur / 2 / scaleY;\r\n var stdDeviation = stdDx + ' ' + stdDy;\r\n domChild.setAttribute('stdDeviation', stdDeviation);\r\n shadowDom.setAttribute('x', '-100%');\r\n shadowDom.setAttribute('y', '-100%');\r\n shadowDom.setAttribute('width', '300%');\r\n shadowDom.setAttribute('height', '300%');\r\n displayable._shadowDom = shadowDom;\r\n var id = shadowDom.getAttribute('id');\r\n svgElement.style.filter = 'url(#' + id + ')';\r\n };\r\n ShadowManager.prototype.removeUnused = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var shadowDomsPool = this._shadowDomPool;\r\n for (var key in this._shadowDomMap) {\r\n var dom = this._shadowDomMap[key];\r\n shadowDomsPool.push(dom);\r\n }\r\n this._shadowDomMap = {};\r\n };\r\n return ShadowManager;\r\n }(Definable));\r\n function hasShadow(style) {\r\n return style\r\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\r\n }\r\n function getShadowKey(displayable) {\r\n var style = displayable.style;\r\n var globalScale = displayable.getGlobalScale();\r\n return [\r\n style.shadowColor,\r\n (style.shadowBlur || 0).toFixed(2),\r\n (style.shadowOffsetX || 0).toFixed(2),\r\n (style.shadowOffsetY || 0).toFixed(2),\r\n globalScale[0],\r\n globalScale[1]\r\n ].join(',');\r\n }\n\n function parseInt10$1(val) {\r\n return parseInt(val, 10);\r\n }\r\n function getSvgProxy(el) {\r\n if (el instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (el instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (el instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n }\r\n function checkParentAvailable(parent, child) {\r\n return child && parent && child.parentNode !== parent;\r\n }\r\n function insertAfter(parent, child, prevSibling) {\r\n if (checkParentAvailable(parent, child) && prevSibling) {\r\n var nextSibling = prevSibling.nextSibling;\r\n nextSibling ? parent.insertBefore(child, nextSibling)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function prepend(parent, child) {\r\n if (checkParentAvailable(parent, child)) {\r\n var firstChild = parent.firstChild;\r\n firstChild ? parent.insertBefore(child, firstChild)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function remove(parent, child) {\r\n if (child && parent && child.parentNode === parent) {\r\n parent.removeChild(child);\r\n }\r\n }\r\n function removeFromMyParent(child) {\r\n if (child && child.parentNode) {\r\n child.parentNode.removeChild(child);\r\n }\r\n }\r\n function getSvgElement(displayable) {\r\n return displayable.__svgEl;\r\n }\r\n var SVGPainter = (function () {\r\n function SVGPainter(root, storage, opts, zrId) {\r\n this.type = 'svg';\r\n this.refreshHover = createMethodNotSupport('refreshHover');\r\n this.pathToImage = createMethodNotSupport('pathToImage');\r\n this.configLayer = createMethodNotSupport('configLayer');\r\n this.root = root;\r\n this.storage = storage;\r\n this._opts = opts = extend({}, opts || {});\r\n var svgDom = createElement('svg');\r\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svgDom.setAttribute('version', '1.1');\r\n svgDom.setAttribute('baseProfile', 'full');\r\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\r\n var bgRoot = createElement('g');\r\n svgDom.appendChild(bgRoot);\r\n var svgRoot = createElement('g');\r\n svgDom.appendChild(svgRoot);\r\n this._gradientManager = new GradientManager(zrId, svgRoot);\r\n this._patternManager = new PatternManager(zrId, svgRoot);\r\n this._clipPathManager = new ClippathManager(zrId, svgRoot);\r\n this._shadowManager = new ShadowManager(zrId, svgRoot);\r\n var viewport = document.createElement('div');\r\n viewport.style.cssText = 'overflow:hidden;position:relative';\r\n this._svgDom = svgDom;\r\n this._svgRoot = svgRoot;\r\n this._backgroundRoot = bgRoot;\r\n this._viewport = viewport;\r\n root.appendChild(viewport);\r\n viewport.appendChild(svgDom);\r\n this.resize(opts.width, opts.height);\r\n this._visibleList = [];\r\n }\r\n SVGPainter.prototype.getType = function () {\r\n return 'svg';\r\n };\r\n SVGPainter.prototype.getViewportRoot = function () {\r\n return this._viewport;\r\n };\r\n SVGPainter.prototype.getSvgDom = function () {\r\n return this._svgDom;\r\n };\r\n SVGPainter.prototype.getSvgRoot = function () {\r\n return this._svgRoot;\r\n };\r\n SVGPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n SVGPainter.prototype.refresh = function () {\r\n var list = this.storage.getDisplayList(true);\r\n this._paintList(list);\r\n };\r\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this._backgroundRoot && this._backgroundNode) {\r\n this._backgroundRoot.removeChild(this._backgroundNode);\r\n }\r\n var bgNode = createElement('rect');\r\n bgNode.setAttribute('width', this.getWidth());\r\n bgNode.setAttribute('height', this.getHeight());\r\n bgNode.setAttribute('x', 0);\r\n bgNode.setAttribute('y', 0);\r\n bgNode.setAttribute('id', 0);\r\n bgNode.style.fill = backgroundColor;\r\n this._backgroundRoot.appendChild(bgNode);\r\n this._backgroundNode = bgNode;\r\n };\r\n SVGPainter.prototype.createSVGElement = function (tag) {\r\n return createElement(tag);\r\n };\r\n SVGPainter.prototype.paintOne = function (el) {\r\n var svgProxy = getSvgProxy(el);\r\n svgProxy && svgProxy.brush(el);\r\n return getSvgElement(el);\r\n };\r\n SVGPainter.prototype._paintList = function (list) {\r\n var gradientManager = this._gradientManager;\r\n var patternManager = this._patternManager;\r\n var clipPathManager = this._clipPathManager;\r\n var shadowManager = this._shadowManager;\r\n gradientManager.markAllUnused();\r\n patternManager.markAllUnused();\r\n clipPathManager.markAllUnused();\r\n shadowManager.markAllUnused();\r\n var svgRoot = this._svgRoot;\r\n var visibleList = this._visibleList;\r\n var listLen = list.length;\r\n var newVisibleList = [];\r\n for (var i = 0; i < listLen; i++) {\r\n var displayable = list[i];\r\n var svgProxy = getSvgProxy(displayable);\r\n var svgElement = getSvgElement(displayable);\r\n if (!displayable.invisible) {\r\n if (displayable.__dirty || !svgElement) {\r\n svgProxy && svgProxy.brush(displayable);\r\n svgElement = getSvgElement(displayable);\r\n if (svgElement && displayable.style) {\r\n gradientManager.update(displayable.style.fill);\r\n gradientManager.update(displayable.style.stroke);\r\n patternManager.update(displayable.style.fill);\r\n patternManager.update(displayable.style.stroke);\r\n shadowManager.update(svgElement, displayable);\r\n }\r\n displayable.__dirty = 0;\r\n }\r\n if (svgElement) {\r\n newVisibleList.push(displayable);\r\n }\r\n }\r\n }\r\n var diff = arrayDiff(visibleList, newVisibleList);\r\n var prevSvgElement;\r\n var topPrevSvgElement;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = visibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n hasClipPath(displayable) ? removeFromMyParent(svgElement)\r\n : remove(svgRoot, svgElement);\r\n }\r\n }\r\n }\r\n var prevDisplayable;\r\n var currentClipGroup;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n var isAdd = item.added;\r\n if (item.removed) {\r\n continue;\r\n }\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var clipGroup = clipPathManager.update(displayable, prevDisplayable);\r\n if (clipGroup !== currentClipGroup) {\r\n prevSvgElement = topPrevSvgElement;\r\n if (clipGroup) {\r\n prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\r\n : prepend(svgRoot, clipGroup);\r\n topPrevSvgElement = clipGroup;\r\n prevSvgElement = null;\r\n }\r\n currentClipGroup = clipGroup;\r\n }\r\n var svgElement = getSvgElement(displayable);\r\n prevSvgElement\r\n ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\r\n : prepend(currentClipGroup || svgRoot, svgElement);\r\n prevSvgElement = svgElement || prevSvgElement;\r\n if (!currentClipGroup) {\r\n topPrevSvgElement = prevSvgElement;\r\n }\r\n gradientManager.markUsed(displayable);\r\n gradientManager.addWithoutUpdate(svgElement, displayable);\r\n patternManager.markUsed(displayable);\r\n patternManager.addWithoutUpdate(svgElement, displayable);\r\n clipPathManager.markUsed(displayable);\r\n prevDisplayable = displayable;\r\n }\r\n }\r\n gradientManager.removeUnused();\r\n patternManager.removeUnused();\r\n clipPathManager.removeUnused();\r\n shadowManager.removeUnused();\r\n this._visibleList = newVisibleList;\r\n };\r\n SVGPainter.prototype._getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgDom;\r\n var defs = svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n SVGPainter.prototype.resize = function (width, height) {\r\n var viewport = this._viewport;\r\n viewport.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n viewport.style.display = '';\r\n if (this._width !== width || this._height !== height) {\r\n this._width = width;\r\n this._height = height;\r\n var viewportStyle = viewport.style;\r\n viewportStyle.width = width + 'px';\r\n viewportStyle.height = height + 'px';\r\n var svgRoot = this._svgDom;\r\n svgRoot.setAttribute('width', width + '');\r\n svgRoot.setAttribute('height', height + '');\r\n }\r\n if (this._backgroundNode) {\r\n this._backgroundNode.setAttribute('width', width);\r\n this._backgroundNode.setAttribute('height', height);\r\n }\r\n };\r\n SVGPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n SVGPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n SVGPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10$1(stl[wh]) || parseInt10$1(root.style[wh]))\r\n - (parseInt10$1(stl[plt]) || 0)\r\n - (parseInt10$1(stl[prb]) || 0)) | 0;\r\n };\r\n SVGPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this._svgRoot\r\n = this._backgroundRoot\r\n = this._svgDom\r\n = this._backgroundNode\r\n = this._viewport\r\n = this.storage\r\n = null;\r\n };\r\n SVGPainter.prototype.clear = function () {\r\n var viewportNode = this._viewport;\r\n if (viewportNode && viewportNode.parentNode) {\r\n viewportNode.parentNode.removeChild(viewportNode);\r\n }\r\n };\r\n SVGPainter.prototype.toDataURL = function () {\r\n this.refresh();\r\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/></g, '>\\n\\r<'));\r\n return 'data:image/svg+xml;charset=UTF-8,' + html;\r\n };\r\n return SVGPainter;\r\n }());\r\n function createMethodNotSupport(method) {\r\n return function () {\r\n logError('In SVG mode painter not support method \"' + method + '\"');\r\n };\r\n }\n\n registerPainter('svg', SVGPainter);\n\n exports.Axis = Axis;\n exports.List = List;\n exports.Model = Model;\n exports.PRIORITY = PRIORITY;\n exports.color = color;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose$1;\n exports.env = env;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.format = format$1;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.graphic = graphic$1;\n exports.helper = helper;\n exports.init = init$1;\n exports.innerDrawElementOnCanvas = brushSingle;\n exports.matrix = matrix;\n exports.number = number;\n exports.parseGeoJSON = parseGeoJSON;\n exports.parseGeoJson = parseGeoJson;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostInit = registerPostInit;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.throttle = throttle;\n exports.time = time;\n exports.util = ecUtil;\n exports.vector = vector;\n exports.version = version$1;\n exports.zrender = zrender;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]}