blob: b8c049bbc09e37fa2477cbbde801ce8fd9a67a7c [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","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","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","createObject","proto","properties","StyleCtor","hasOwn","own","noop","x","y","clone$1","v","add","out","v1","v2","sub","Math","sqrt","lenSquare","scale","normalize","distance","dist","distanceSquare","distSquare","lerp","applyTransform","m","min","max","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","transformCoordWithViewport","el","inX","inY","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","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","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","mul","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","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","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","strLen","iv","op","ep","fname","substr","params","split","alpha","hsla2rgba","hsla","rgba","lift","color","level","colorArr","stringify","arrColor","lum","backgroundLum","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","floor","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","scaleAndAdd","dot","negate","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","offset","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","random","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","ceil","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","B","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","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","L","Q","Z","R","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","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","leftIndex","lineXLeft","lineXRight","rightIndex","_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","bottom","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","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","registerPainter","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","numericToNumber","valFloat","isNumeric","getRandomIdBase","getGreatestCommonDividor","getLeastCommonMultiple","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","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","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getAttribute","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","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","count","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","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","img","boundingRect","aspect","pathRect","animateOrSetProps","animationType","animatableModel","isFrom","removeOpt","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","isAnimationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","isElementRemoved","fadeOutDisplayable","removeElementWithFadeOut","doRemove","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","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","q","dateGetterName","H","hoursGetterName","minutesGetterName","secondsGetterName","S","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","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","$vars","alias","convertToColorString","defaultColor","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","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","useUTC","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","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","creator","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","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","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","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","createTooltipMarkup","retrieveVisualColorForTooltipMarker","visualDrawType","defaultSeriesFormatTooltip","tooltipDims","mapDimensionsAll","tooltipDimLen","isValueArr","markerColor","inlineValue","inlineValueType","subBlocks","sortParam","formatArrResult","formatTooltipArrayValue","inlineValues","inlineValueTypes","blocks","seriesNameSpecified","inlineName","header","noHeader","markerType","noName","valueType","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","param","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","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","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","gaps","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","matrix","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","zrender","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","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","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","rate","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","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","baseAxis","getOtherAxis","valueStart","getValueStart","baseAxisDim","valueAxisDim","valueDim","baseDim","baseDataOffset","stacked","stackResultDim","dataDimsForPoint","getExtent","getStackedOnPoint","dataCoordInfo","stackedData","dataToPoint","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$4","mathMax$4","isPointNull","drawSegment","segLen","allLen","prevX","prevY","cpx0","cpy0","tmpK","ratioNextSeg","nextCpx0","nextCpy0","lenPrevSeg","lenNextSeg","ECPolylineShape","ECPolyline","getPointOn","xOrY","isDimX","nRoot","t_1","ECPolygonShape","ECPolygon","stackedOnPoints","stackedOnSmooth","createGridClipPath","cartesian","hasAnimation","getArea","isHorizontal","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","toGlobalCoord","dataToCoord","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","gradient","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","getViewLabels","tickValue","axisExtent","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","expandSize","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","boundaryGap","deduplication","alignWithLabel","splitNumber","minorTick","primary","logBase","axisDefault","category","OrdinalMeta","_needCollect","needCollect","_deduplication","createByAxisModel","dedplication","getOrdinal","_getOrCreateMap","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","getCategories","AxisModelCommonMixin","getNeedCrossZero","getCoordSysModel","CartesianAxisModel","extraOption","categorySortInfo","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","roundNumber","intervalScaleNiceTicks","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","dataNum","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","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","barMinHeight","isValueAxisH","valueAxisStart","getValueAxisStart","baseValue","baseCoord","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","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","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","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","freeze","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","PI$6","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","direction","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","content","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","ticksCoords","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","tickModel","getTicksCoords","minorTickModel","minorTicksCoords","getMinorTicksCoords","minorTickLineStyle","minorTicksEls","axisLabelShow","labelModel","labelMargin","labels","labelRotation","rawCategoryData","formattedLabel","rawLabel","itemLabelModel","rawCategoryItem","fixValue","axisInfo","getAxisInfo","axisPointerModel","useHandle","isHandleTrigger","coordSysAxesInfo","axesInfo","makeKey","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$4","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","getAxes","addAxis","cartesian2DDimensions","canCalculateAffineTransform","Cartesian2D","calcAffineTransform","_transform","_invTransform","xAxisScale","yAxisScale","xScaleExtent","yScaleExtent","xScaleSpan","yScaleSpan","translateX","translateY","axisX","axisY","toLocalCoord","containData","xVal","yVal","clampData","xScale","yScale","xAxisExtent","yAxisExtent","pointToData","coordToData","xExtent","getGlobalExtent","yExtent","inner$5","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","makeCategoryTicks","makeCategoryLabelsActually","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","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","fixExtentWithBands","getTickModel","tickVal","fixOnBandTicksCoords","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","littleThan","Axis2D","coordExtent","asc","Grid","_coordsMap","_coordsList","_axesMap","_axesList","axisPointerEnabled","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","boxLayoutParams","isContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","getTooltipAxes","baseAxes","otherAxes","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$5","mathMin$5","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","removeOnRenderedListener","_updateDrawMode","coordinateSystemType","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","animationModel","axis2DModel","_initSort","_onRendered","orderMap","_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","ShapeClass","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","nx","ny","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","DEFAULT_OPTION","inner$6","decalPaletteScope","ariaVisual","ariaModel","setDecal","setLabel","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","RegExp","ariaPreprocessor","PRIORITY_VISUAL_ARIA$1"],"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 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 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 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 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 clone$1(v) {\r\n return [v[0], v[1]];\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 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 function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[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 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 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 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 = [];\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, el, ex, ey)) {\r\n out.zrX = _calcOut[0];\r\n out.zrY = _calcOut[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 };\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(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(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 }\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(m, parent.transform, m);\r\n }\r\n else {\r\n copy(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(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(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 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 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 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 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 }\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 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 }\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(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 function delInstance(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 return zr;\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\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 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 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 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 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 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 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 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) {\r\n if (typeof color !== 'string') {\r\n return color;\r\n }\r\n var liftedColor = liftedColorCache.get(color);\r\n if (!liftedColor) {\r\n liftedColor = lift(color, -0.1);\r\n liftedColorCache.put(color, 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 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 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 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 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 }\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 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 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 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 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 }\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 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 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 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(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(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 }());\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 });\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 function createTooltipMarkup(type, option) {\r\n option.type = type;\r\n return option;\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 }\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 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 }\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 = '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, 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[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, 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 = {};\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[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(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances[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[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances[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 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$4 = Math.min;\r\n var mathMax$4 = 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$4(nextCpx0, mathMax$4(nextX, x));\r\n nextCpy0 = mathMin$4(nextCpy0, mathMax$4(nextY, y));\r\n nextCpx0 = mathMax$4(nextCpx0, mathMin$4(nextX, x));\r\n nextCpy0 = mathMax$4(nextCpy0, mathMin$4(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$4(cpx1, mathMax$4(prevX, x));\r\n cpy1 = mathMin$4(cpy1, mathMax$4(prevY, y));\r\n cpx1 = mathMax$4(cpx1, mathMin$4(prevX, x));\r\n cpy1 = mathMax$4(cpy1, mathMin$4(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 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 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 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 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 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 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 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([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul([], 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 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$4 = 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$4(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$4(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$4(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 inner$5 = 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$5(axis)[prop] || (inner$5(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$5(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$5(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$5(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 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$5 = Math.max;\r\n var mathMin$5 = 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$5(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$5(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$5(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$5(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$5(layout.r, coordSysClipArea.r);\r\n var r0 = mathMax$5(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 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$6 = 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$6(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$6(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 exports.PRIORITY = PRIORITY;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.init = init$1;\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.version = version;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]}